DpInRock 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Есть пикпроцессор. Внешних устройств - нет. Требуется после старта программы сгенерировать случайный байт. Старт программы осуществляется присоединением батарейки. Число требуется ровно одно. У двух одинаковых устройств после подсоединения батарейки должны генерироваться 2 разных числа. Возможно ли такое? :07: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба С точки зрения теории, всегда существует хоть и малая, вероятность, что числа будут одинаковыми. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Дени© 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Если имеется АЦП, то возможно произвести измерение "весящей" в воздухе ноги и взять младший бит. И таким образом добрать до нужного количества бит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба У меня нет висящих ног. Но хотелось бы решить хитростью какой-нибудь. Там все очень стабильно (питание от батарейки). И АЦП даст слишком малую разницу. У меня впечатление, что это невозможно. Поэтому и обратился к мировому сообществу. Все синхронно. Была надежда что запись в память EPROM случайна по времени - но нет. Как-то одинаково все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okorok 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Есть пикпроцессор. Внешних устройств - нет. Требуется после старта программы сгенерировать случайный байт. Старт программы осуществляется присоединением батарейки. Число требуется ровно одно. У двух одинаковых устройств после подсоединения батарейки должны генерироваться 2 разных числа. Возможно ли такое? :07: Не забывайте: Разных байтов бывает всего лишь 256. Т.е. вероятность совпадения "случайных" чисел у двух разных устройств будет минимум 1/256. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Разумеется. Мне достаточно будет если ДВА разных устройства выдадут просто разные числа. Скажем от 1 до 10. Т.е. подсоединяем батарейку у двух устройств. А они с вероятностью хотя бы 50% выдают разные числа. (Хотелось бы вероятность побольше, но на худой конец хватит и такой). Поясню. При первом подключении батарейки устройство должно сгенерировать свой адрес - 1 байт. И все. При этом другое устройство (с понятной вероятностью) должно сгенерировать другой байт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flasher 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба а слабо еще серийник присвоить и завести его в механизм генерации. Плюс еще в епром писать для следующей генерации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Слабо. Надеюсь, что это на самом деле невозможно без внешнего источника случайного события. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Voice2001 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Вы бы дали информации побольше о своем устройстве. Возможно получилось бы откуда-нть достать это число Поясню. При первом подключении батарейки устройство должно сгенерировать свой адрес - 1 байт. нужен адрес устройства? может тогда задержать их во времени и по порядку присваивать адреса (ессно между собой их придется связать) гадать можно долго. Подробней расскажите Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Эти устройства никак не связаны друг с другом. Лежат себе на складе, никого не трогают. Приходит человек, берет устройство и уходит. Вставляет батарейку. Бабах - устройство придумало себе адрес. Потом, через год, этот человек берет другое устройство. Приходит к себе домой, вставляет батарейку - бабах - устройство придумало себе адрес. И с тем устройством, что уже у него имеется - не совпадает (с учетом вероятности). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.NoA 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба У меня нет висящих ног. Но хотелось бы решить хитростью какой-нибудь. Там все очень стабильно (питание от батарейки). И АЦП даст слишком малую разницу. Так есть АЦП или нет? Даже если его вход не висит в воздухе, все равно младший разряд скакать будет, поэтому делаете n измерений, в каждом из которых берете младший разряд, и их них составляете n-битное случайное число. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Идея такая. На входе АЦП RC-цепочка, соединённая с питанием. При включении засекаем время и мерим напряжение. Младший байт, я думаю, будет достаточно случайным. Ещё есть алгоритмы псевдослучайных последовательностей, можно использовать измеренное напряжение с АЦП для инициализации ПСП Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mmos 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Действительно, мало информации. Мои соображения: если не писать ничего уникального внутри контроллера и ничего не цеплять снаружи, то гарантировать случайность невозможно. Однако, автор вопроса лукавит. Ведь если устройство никуда не подключается, то зачем ему адрес? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kurtis 0 12 августа, 2008 Опубликовано 12 августа, 2008 · Жалоба Можно попробовать вычитывать содержимое ОЗУ перед инициализацией, теоретически оно будет случайно. А часы реального времени присутствуют???Если да, то тогда при условии что устройства не будут включатся одновременно, то можно просто складывать месяц + день + часы + минуты + секунды или что-то вроде того Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 12 августа, 2008 Опубликовано 12 августа, 2008 (изменено) · Жалоба Спасибо за идею составлять число из младшего бита АЦП. То, что нужно. Добавлю к нему считывание посередине преобразования. СПАСИБО. (Хотя, нет. не добавлю). Изменено 12 августа, 2008 пользователем DpInRock Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться