A.V.Avtomat 54 May 9, 2024 Posted May 9, 2024 · Report post 2 часа назад, tgruzd сказал: хранить результат предыдущих 10^8 генераций, искать в них совпадение и перегенерировать если нашли. очевидно же) Физически реализовать такое сравнение проще, чем кажется: В памяти храним все стопицот значений, стартовым выбираем нуль, после чего сравнение с нулём становится элементарной задачей, рандомизируем адрес памяти, после каждого выбора и сравнения с 0, каждая выбранная ячейка стирается в 0. Это если скорость важна. Если не важна, то гемор с запоминанием тоже применим. Quote Share this post Link to post Share on other sites More sharing options...
FatRobot 8 May 9, 2024 Posted May 9, 2024 · Report post https://bashtage.github.io/randomgen/bit_generators/lcg128mix.html Quote Share this post Link to post Share on other sites More sharing options...
firstvald 51 May 9, 2024 Posted May 9, 2024 · Report post дико извиняюсь. длинный предлинный программный сдвиговый регистр (я делал 128 разрядов). с несколькими обратными связями с конца и какого то отвода от произвольной точке по исключающему или. можно несколько таких пар и их в свою очередь тоже по искл или на вход. понимаю что это псевдо. а дальше так. от выхода выводим на ножку и к телефону. если хорошее случайное - слышим шум. если не очень - в шуме будут периодические мурлыкания. и да в этот регистр грузим все случайное что подвернется в момент старта под руку. Quote Share this post Link to post Share on other sites More sharing options...
A.V.Avtomat 54 May 10, 2024 Posted May 10, 2024 · Report post Обратил внимание, что именно с 3-ей страницы обычно к теме подключаются участники, которым некогда читать первые две самые важные страницы. Создание самого ГСЧ здесь задача второстепенная и давно уже имеющая много различных решений. Топикстартеру нужен ГСЧ типа Спортлото, но с многими миллионами шариков. И это тоже сейчас не такая уж и проблема. Quote Share this post Link to post Share on other sites More sharing options...
thermit 5 May 10, 2024 Posted May 10, 2024 · Report post 12 часов назад, firstvald сказал: дико извиняюсь. длинный предлинный программный сдвиговый регистр (я делал 128 разрядов). с несколькими обратными связями с конца и какого то отвода от произвольной точке по исключающему или. можно несколько таких пар и их в свою очередь тоже по искл или на вход. понимаю что это псевдо. а дальше так. от выхода выводим на ножку и к телефону. если хорошее случайное - слышим шум. если не очень - в шуме будут периодические мурлыкания. и да в этот регистр грузим все случайное что подвернется в момент старта под руку. Произвольная точка не пойдет. Полином должен быть неприводимым примитивным. Например x^128+x^7+x^2+x+1. Тогда будет последовательность максимальной длины с периодом 2^128-1. Отсутствие повторений гарантируется. Quote Share this post Link to post Share on other sites More sharing options...
niXto 7 May 10, 2024 Posted May 10, 2024 · Report post On 5/8/2024 at 6:54 PM, blackfin said: А где хранить серийный номер размером 2,5 килобайт? Стикер клеить на корпус? 😉 У современных дешёвых микроконтроллеров объём ПЗУ начинается от 64 кБ Quote Share this post Link to post Share on other sites More sharing options...
firstvald 51 May 10, 2024 Posted May 10, 2024 · Report post 11 hours ago, A.V.Avtomat said: Обратил внимание, что именно с 3-ей страницы обычно к теме подключаются участники, которым некогда читать первые две самые важные страницы. Создание самого ГСЧ здесь задача второстепенная и давно уже имеющая много различных решений. Топикстартеру нужен ГСЧ типа Спортлото, но с многими миллионами шариков. И это тоже сейчас не такая уж и проблема. обычно к 3 странице все начавшие выдыхаются так и не упомянув очевидное решение. и да, в ряде случаев нужно не лучшее а хотябы какое решение , на поиск лучшего нету времени. обычно первое работающее остается в проекте навсегда. Quote Share this post Link to post Share on other sites More sharing options...
A.V.Avtomat 54 May 10, 2024 Posted May 10, 2024 · Report post 16 минут назад, firstvald сказал: обычно к 3 странице все начавшие выдыхаются так и не упомянув очевидное решение. и да, в ряде случаев нужно не лучшее а хотябы какое решение , на поиск лучшего нету времени. обычно первое работающее остается в проекте навсегда. Штука в том, что тут сразу не очевидно, как решение будет реализовано. Вы думаете, что это ПЛИС или МК, а топикстартер скорее всего ПЭВМ имеет в виду. Или наоборот, но менее вероятно. Quote Share this post Link to post Share on other sites More sharing options...
mplata 10 May 10, 2024 Posted May 10, 2024 · Report post 2 hours ago, niXto said: У современных дешёвых микроконтроллеров объём ПЗУ начинается от 64 кБ У моего 256к объем Флэш памяти. ( 1 hour ago, firstvald said: обычно к 3 странице все начавшие выдыхаются так и не упомянув очевидное решение. и да, в ряде случаев нужно не лучшее а хотябы какое решение , на поиск лучшего нету времени. обычно первое работающее остается в проекте навсегда. Ну пока решения нет, вот прям четкого и понятного с гарантированным неповторением в генерируемой последовательности. К сожалению. Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 May 10, 2024 Posted May 10, 2024 · Report post On 5/10/2024 at 5:06 PM, mplata said: Ну пока решения нет, вот прям четкого и понятного с гарантированным неповторением в генерируемой последовательности. Вы бы объяснили для чего вам нужны эти случайные числа.. От этого часто зависит решение задачи. Возможно, вы ищите там где фонарный столб, а не там, где потеряли.. Quote Share this post Link to post Share on other sites More sharing options...
mplata 10 May 10, 2024 Posted May 10, 2024 · Report post 9 minutes ago, blackfin said: Вы бы объяснили для чего вам нужны эти случайные числа.. От этого часто зависит решение задачи. Возможно, вы ищите там где фонарный столб, а не там, где потеряли.. По rfid прошивать уникальный код доступа электронного ключа скуд. Программаторы имеют уникальные серийные номера. Повторение приведет к тому что тот кто не должен тот получает доступ туда куда нельзя. Это если грубо. Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 May 10, 2024 Posted May 10, 2024 · Report post On 5/10/2024 at 5:19 PM, mplata said: По rfid прошивать уникальный код доступа электронного ключа скуд. Программаторы имеют уникальные серийные номера. Повторение приведет к тому что тот кто не должен тот получает доступ туда куда нельзя. Так для этого используют хеш-функции, например: SHA-3. Quote Share this post Link to post Share on other sites More sharing options...
mplata 10 May 10, 2024 Posted May 10, 2024 · Report post 2 minutes ago, blackfin said: Так для этого используют хэш-функции, например: SHA-3. Хэш это отлично, но там 256 разрядов минимум. А мне нужно максимум 128. Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 May 10, 2024 Posted May 10, 2024 · Report post On 5/10/2024 at 5:31 PM, mplata said: Хэш это отлично, но там 256 разрядов минимум. А мне нужно максимум 128. Ну так, посчитали 256 бит, сделали "xor" старших 128 бит с младшими 128 битами и получили нужный код. Quote Share this post Link to post Share on other sites More sharing options...
mplata 10 May 10, 2024 Posted May 10, 2024 · Report post Just now, blackfin said: Ну так, посчитали 256 бит, сделали "xor" старших 128 бит с младшими 128 битами и получили нужный код. А если после ксора будут одинаковые ключи? Quote Share this post Link to post Share on other sites More sharing options...