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

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

2 часа назад, tgruzd сказал:

хранить результат предыдущих 10^8 генераций, искать в них совпадение и перегенерировать если нашли. очевидно же)

Физически реализовать такое сравнение проще, чем кажется:

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

Это если скорость важна. Если не важна, то гемор с запоминанием тоже применим.

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


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

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

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


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

Обратил внимание, что именно с 3-ей страницы обычно к теме подключаются участники, которым некогда читать первые две самые важные страницы.

Создание самого ГСЧ здесь задача второстепенная и давно уже имеющая много различных решений.

Топикстартеру нужен ГСЧ типа Спортлото, но с многими миллионами шариков. И это тоже сейчас не такая уж и проблема.

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


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

12 часов назад, firstvald сказал:

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

Произвольная точка не пойдет. Полином должен быть неприводимым примитивным. Например x^128+x^7+x^2+x+1. Тогда будет последовательность максимальной длины с периодом 2^128-1. Отсутствие повторений гарантируется.

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


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

On 5/8/2024 at 6:54 PM, blackfin said:

А где хранить серийный номер размером 2,5 килобайт? Стикер клеить на корпус? 😉

У современных дешёвых микроконтроллеров объём ПЗУ начинается от 64 кБ

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


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

11 hours ago, A.V.Avtomat said:

Обратил внимание, что именно с 3-ей страницы обычно к теме подключаются участники, которым некогда читать первые две самые важные страницы.

Создание самого ГСЧ здесь задача второстепенная и давно уже имеющая много различных решений.

Топикстартеру нужен ГСЧ типа Спортлото, но с многими миллионами шариков. И это тоже сейчас не такая уж и проблема.

обычно к 3 странице все начавшие выдыхаются так и не упомянув очевидное решение. и да,  в ряде случаев нужно не лучшее а хотябы какое решение ,  на поиск лучшего нету времени. обычно первое работающее остается в проекте навсегда.

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


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

16 минут назад, firstvald сказал:

обычно к 3 странице все начавшие выдыхаются так и не упомянув очевидное решение. и да,  в ряде случаев нужно не лучшее а хотябы какое решение ,  на поиск лучшего нету времени. обычно первое работающее остается в проекте навсегда.

Штука в том, что тут сразу не очевидно, как решение будет реализовано. Вы думаете, что это ПЛИС или МК, а топикстартер скорее всего ПЭВМ имеет в виду. Или наоборот, но менее вероятно.

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


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

2 hours ago, niXto said:

У современных дешёвых микроконтроллеров объём ПЗУ начинается от 64 кБ

У моего 256к объем Флэш памяти. (

1 hour ago, firstvald said:

обычно к 3 странице все начавшие выдыхаются так и не упомянув очевидное решение. и да,  в ряде случаев нужно не лучшее а хотябы какое решение ,  на поиск лучшего нету времени. обычно первое работающее остается в проекте навсегда.

Ну пока решения нет, вот прям четкого и понятного с гарантированным неповторением в генерируемой последовательности. К сожалению. 

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


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

On 5/10/2024 at 5:06 PM, mplata said:

Ну пока решения нет, вот прям четкого и понятного с гарантированным неповторением в генерируемой последовательности.

Вы бы объяснили для чего вам нужны эти случайные числа..

От этого часто зависит решение задачи.

Возможно, вы ищите там где фонарный столб, а не там, где потеряли..

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


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

9 minutes ago, blackfin said:

Вы бы объяснили для чего вам нужны эти случайные числа..

От этого часто зависит решение задачи.

Возможно, вы ищите там где фонарный столб, а не там, где потеряли..

По rfid прошивать уникальный код доступа электронного ключа скуд. Программаторы имеют уникальные серийные номера. 

Повторение приведет к тому что тот кто не должен тот получает доступ туда куда нельзя. 

Это если грубо. 

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


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

On 5/10/2024 at 5:19 PM, mplata said:

По rfid прошивать уникальный код доступа электронного ключа скуд. Программаторы имеют уникальные серийные номера. 

Повторение приведет к тому что тот кто не должен тот получает доступ туда куда нельзя. 

Так для этого используют хеш-функции, например: SHA-3.

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


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

2 minutes ago, blackfin said:

Так для этого используют хэш-функции, например: SHA-3.

Хэш это отлично, но там 256 разрядов минимум. А мне нужно максимум 128. 

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


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

On 5/10/2024 at 5:31 PM, mplata said:

Хэш это отлично, но там 256 разрядов минимум. А мне нужно максимум 128. 

Ну так, посчитали 256 бит, сделали "xor" старших 128 бит с младшими 128 битами и получили нужный код.

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


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

Just now, blackfin said:

Ну так, посчитали 256 бит, сделали "xor" старших 128 бит с младшими 128 битами и получили нужный код.

А если после ксора будут одинаковые ключи? 

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


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

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

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

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

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

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

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

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

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

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