Перейти к содержанию
    

Генератор случайных чисел на STM32

Добрый день.
Есть необходимость генерации последовательности случайных чисел в диапазоне 2^128.
Ключевое требование нет повторений, и нет элементарных чисел типа 00000....001 и т.п.
Есть ресурсы где можно почитать про это? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

32 минуты назад, mplata сказал:

Есть ресурсы где можно почитать про это? 

User manual на ваш STM32. Раздел "Генератор случайных".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, jcxz сказал:

User manual на ваш STM32. Раздел "Генератор случайных".

Не у всех STM32 он есть аппаратный. Пока ТС не уточнит, какие именно STM32 он рассматривает, то что-то определённое предложить сложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все не так просто. К сожалению мне нужна последовательность случайных чисел без повторов. А не просто генератор. 

В данном стм нет аппаратного генератора. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что, mplata сказал:

В данном стм нет аппаратного генератора. 

Тогда изучать работу АЦП в своём МК и строить генератор на нём.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, jcxz said:

Тогда изучать работу АЦП в своём МК и строить генератор на нём.

Базовое число начала последовательности будет опираться на серийный номер изделия который уникален. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, mplata сказал:

Базовое число начала последовательности будет опираться на серийный номер изделия который уникален. 

Натравите на него + время хорошую хэш-функцию и получите искомое. Если нужна безопасность, то зашейте в прошивку ещё и уникальный сид.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 минут назад, makc сказал:

Натравите на него + время хорошую хэш-функцию и получите искомое.

Это будет псевдослучайная последовательность Автору же вроде нужна случайная.

Ни на каком хеше или алгоритме генератор случайных не построить. Только на аппаратном источнике шума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, jcxz сказал:

Это будет псевдослучайная последовательность Автору же вроде нужна случайная.

Псевдослучайная последовательность всё же случайная для внешнего наблюдателя, не знающего закон её формирования. К тому же в изначальном вопросе ни слова про истинно-случайную последовательность (непредсказуемую априори) не написано.

29 минут назад, jcxz сказал:

Тогда изучать работу АЦП в своём МК и строить генератор на нём.

Ваш вариант, кстати, тоже псевдослучаен, пока не будут доказаны его свойства и не будет дано теоретико-вероятностное обоснование, в том числе пока не будет построена и доказна математическая модель случайного процесса. Увы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по моему без повторов делается перемешиванием, называется "random permutation"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 минут назад, makc сказал:

Ваш вариант, кстати, тоже псевдослучаен

У моего варианта вряд-ли возможно гарантированное повторение последовательности с некоторым периодом. Что характерно для любого генератора ПСЧ. Только если уж руки совсем кривые, что не смогли построить адекватную схему генератора шума на входе АЦП. Т.е. - с моим вариантом нужно ещё "постараться", чтобы он стал псевдослучаен.  :wink:

А вот различные математические алгоритмы - гарантированно псевдослучайны. Хотя период их может быть достаточно большим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

47 минут назад, mplata сказал:

Все не так просто. К сожалению мне нужна последовательность случайных чисел без повторов. А не просто генератор. 

Ваш, @jcxz, вариант на АЦП, к сожалению, не отвечает этому требованию. Вообще у ТС задача очень похожа на задачу получения GUID/UUID и по-моему поэтому не стоит мудрить.

6 минут назад, jcxz сказал:

У моего варианта вряд-ли возможно гарантированное повторение последовательности с некоторым периодом. Что характерно для любого генератора ПСЧ.

Это пока, к сожалению, только умозрительная оценка. Я, например, наблюдал на выходе аппаратного генератора случайных чисел МК от Миландра К1986ВК025 далеко не случайные последовательности типа 0xDEADBEEF и т.п. Сильно удивлялись вместе с коллегами и смеялись, а потом оказалось, что количество энтропии там мало, поэтому получались всякие смешные комбинации. Если энтропию копить и правильно обрабатывать (размешивать и т.п.), то результат получается сильно лучше. В предлагаемом вами варианте нет никаких гарантий отсутствия повторений, т.к. если основным источником шума в АЦП будет помеха от работы какого-либо узла платы или от самого МК, то увы, повторения будут, вопрос размера выборки.

6 минут назад, jcxz сказал:

А вот различные математические алгоритмы - гарантированно псевдослучайны. Хотя период может быть достаточно большим.

Да, и именно это обеспечивает гарантию отсутствия повторений за заданное время.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, mplata сказал:

Все не так просто. К сожалению мне нужна последовательность случайных чисел без повторов. А не просто генератор. 

Для 2^128 вероятность повтора примерно равномерно распределенного случайного события в обозримой истории ничтожно мала. По сути там работает закон больших чисел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, artemkad said:

Для 2^128 вероятность повтора примерно равномерно распределенного случайного события в обозримой истории ничтожно мала. По сути там работает закон больших чисел.

Тем не менее. Важно чтобы в течение максимального периода не было повторений. Важно именно максимально увеличить период без повторений. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...