|
Инициализация псевдослучайной последовательности, как это сделать? |
|
|
|
Mar 11 2011, 05:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Отправная точка: миниатюрное устройство, где каждый новый компонент - лишний. устройство формирует ряд "случайных" сигналов, используя rand(). в сущности, алгоритм генерации ПСПЧ не принципиален. но есть большая проблема: два одинаковых устройства, включенные одновременно, генерируют абсолютно одинаковые "случайные" последовательности, что очень плохо. более того, после подачи питания устройство всегда стартует с одного и того же "места", что тоже очень плохо.
есть, конечно, функция srand(), которая могла бы помочь, но для нужного результата эту функцию нужно передать случайное число... круг замкнулся.
вопрос знатокам: посоветуйте, какими простыми и дешевыми средствами реализовать получение хотя бы одного-единственного, но на самом деле случайного числа в программе?
сразу ограничу круг советов: надежда на то, что после включения питания ячейки ОЗУ содержат случайные данные, не срабатывает, в подавляющем большинстве у одного и того же контроллера при более-менее одинаковых условиях содержимое ОЗУ после подачи питания так же более-менее одинаковое, вариации крайне недостаточные для того, чтобы считать их действительно случайными - проверено на некотором количестве atmega32.
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
 |
Ответов
|
Mar 19 2011, 18:24
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
снова у меня проблема rand() вместе с srand() не втискиваются в память микроконтроллера. уже несколько дней ищу более-менее адекватную замену - и не могу найти  задача очень проста: получить псевдослучайное число в пределах от 1 до 7. все мои попытки сделать генератор ПСПЧ с заданными параметрами дают чрезвычайно короткий цикл - буквально пару десятков чисел, после чего последовательность повторяется  я делаю на "регистре сдвига с XOR-обратными связями по простому полиному", после чего маскирую 3 младших бита, и если результат равен 0 - повторяю. уже сделал открытие, что avr-gcc может с легкостью выбросить volatile register переменные из кода, если моя функция случайного числа объявлена как static... но вот качественной последовательности (мне хватило бы длины цикла хотя бы больше сотни) получить не могу  то ли полиномы у меня не те, то ли что-то не то в алгоритме... посодействуйте, пожалуйста...
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
Сообщений в этой теме
ARV Инициализация псевдослучайной последовательности Mar 11 2011, 05:42 Taradov Alexander У Атмела есть аппнот на эту тему, номер не помню п... Mar 11 2011, 06:29 ARV пока что не нашел такого апноута... с АЦП я пробов... Mar 11 2011, 06:53 Taradov Alexander QUOTE (ARV @ Mar 11 2011, 09:53) но для о... Mar 11 2011, 07:55 314 Висящий в воздухе вывод АЦП лихо реагирует на влаж... Mar 11 2011, 07:04 ARV в том-то и дело, что висящий вход лихо на все реаг... Mar 11 2011, 07:08 Petka Цитата(ARV @ Mar 11 2011, 08:42) есть, ко... Mar 11 2011, 07:24 ARV Цитата(Petka @ Mar 11 2011, 10:24) На сам... Mar 11 2011, 07:52 DpInRock Согласен с предыдущим оратором.
Хуже того, набор 1... Mar 11 2011, 08:05 rx3apf Цитата(ARV @ Mar 11 2011, 08:42) вопрос з... Mar 11 2011, 08:07 ARV Цитата(rx3apf @ Mar 11 2011, 11:07) Уника... Mar 11 2011, 08:20 domowoj Если говорить о псевдослучвайной последовательност... Mar 11 2011, 15:27 rx3apf Цитата(domowoj @ Mar 11 2011, 18:27) Если... Mar 11 2011, 15:56 domowoj Тогда усилить шумы стабилитрона
и оцифровать Mar 11 2011, 17:19 muravei Цитата(domowoj @ Mar 11 2011, 20:19) Тогд... Mar 13 2011, 09:53  SKov Цитата(muravei @ Mar 13 2011, 12:53) А ес... Mar 13 2011, 09:59   demiurg_spb Уважайте поиск! :-)
В ветке AVR по слову RAND ... Mar 13 2011, 10:12 zombi Цитата(ARV @ Mar 11 2011, 08:42) Отправна... Mar 11 2011, 18:51 forever_student Цитата(ARV @ Mar 11 2011, 08:42) ... посо... Mar 13 2011, 10:51 HALFer дребезг контактов (геркон, реле). обмотку на выход... Mar 14 2011, 01:06 ARV не смотря на то, что лично для меня тема исчерпана... Mar 14 2011, 05:56 =AK= Цитата(ARV @ Mar 14 2011, 16:26) 1. однов... Mar 14 2011, 06:22 rx3apf Цитата(ARV @ Mar 14 2011, 08:56) 5. кнопо... Mar 14 2011, 09:41  demiurg_spb Цитата(rx3apf @ Mar 14 2011, 12:41) Еще в... Mar 14 2011, 11:17   rx3apf Цитата(demiurg_spb @ Mar 14 2011, 14:17) ... Mar 14 2011, 11:29 defunct Цитата(ARV @ Mar 19 2011, 20:24) посодейс... Mar 19 2011, 21:22 forever_student Цитата(ARV @ Mar 19 2011, 21:24) ...посод... Mar 19 2011, 21:43  ARV Цитата(forever_student @ Mar 20 2011, 00... Mar 20 2011, 09:54   rx3apf Цитата(ARV @ Mar 20 2011, 12:54) мне нуже... Mar 20 2011, 12:29    ARV Цитата(rx3apf @ Mar 20 2011, 15:29) У мен... Mar 20 2011, 13:38     rx3apf Цитата(ARV @ Mar 20 2011, 16:38) скажите ... Mar 20 2011, 14:05   defunct Цитата(ARV @ Mar 20 2011, 11:54) требующи... Mar 20 2011, 14:53 Warlockwolf Кодu32 iran;
u8 Radom(){
iran=(iran*... Mar 19 2011, 21:51 ARV всем в очередной раз спасибо. как обычно, в попытк... Mar 21 2011, 09:07 Метценгерштейн а не лучше ли использовать алгоритм ПСП, например ... Mar 2 2012, 13:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|