|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Обозначим ДСЧ0 датчик случайных чисел "мощности" 1000, который за первые 1000 последовательных вызовов выдаёт в случайном порядке числа от 0 до 999 (например: 666, 1, 113 ...), а потом "зацикливается", то есть начинает повторно выдавать ту же последовательность чисел (666, 1, 113...), и далее так и выдает их такими "циклами" по 1000 чисел. Построим на основе ДСЧ0 следующий датчик случайных чисел ДСЧ: 1) возьмем массив размером 1000 ( M(0 to 999) ) и заполним его как-нибудь числами от 0 до 999, например, по возрастанию (0, 1, 2, 3 ... 999); 2) создадим переменную А ("адрес") с начальным значением 0; 3) при каждом вызове ДСЧ будем поступать следующим образом: а) вызываем ДСЧ0: Х0 = ДСЧ0(); б) увеличиваем А на Х0 по модулю 1000: А = (А + Х0) mod 1000; в) берем число по адресу А в качестве "выхода" ДСЧ: ДСЧ = М(А); г) сохраняем Х0 в ячейке А (вместо "использованного" значения): М(А) = Х0. Вопрос: будет ли "зацикливаться" ДСЧ, а если будет, то начиная с какого "шага" (вызова) и с каким периодом? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 17:46 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Думаю посчитать будет сложновасто. Если хочешь просто увеличить период - возьми несколько ГПСЧ с периодами простых чисел типа 991 и 997 и композицией их получишь новый ГПСЧ с периодом 988027. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 18:29 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Читаю всю эту мутотень и не могу понять: нужен генератор длиннопериодных последовательностей или, всё-таки, генератор псведо случайных чисел? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 19:02 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS Вопрос: будет ли "зацикливаться" ДСЧ, а если будет, то начиная с какого "шага" (вызова) и с каким периодом? А вот период.... Ну с ходу, мне так кажется что это будет N^N. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 19:37 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
поэкспериментировал с небольшими массивами, примерно с 3N/2 шага приходят к циклу длиной N. интересная задачка для теоретического обоснования. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 20:01 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS, Будет зацикливаться. Цикл из 2000 чисел (или возможно, какой-то делитель 2000) после первых 2000 возможно не повторяющихся. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 20:18 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Читаю всю эту мутотень и не могу понять: нужен генератор длиннопериодных последовательностей или, всё-таки, генератор псведо случайных чисел? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 20:25 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Имя пользователя1 интересная задачка для теоретического обоснования. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 20:37 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Barlone Так любой генератор псведо случайных чисел генерирует периодическую последовательность, вопрос только в ее длине P.S. Если вопрос только в периоде, то чем не угодил вихрь Мерсена или что-там ещё придумано? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 21:18 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Barlone За два цикла адрес вернется к 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 23:28 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Barlone, идея состоит в том, чтобы случайные числа, порождаемые генератором "малой мощности", падали в буфер, откуда они выдергивались бы "на выход" случайным образом -- так что некоторые из них будут "расходоваться" быстро, а некоторые -- задерживаться в буфере непонятно-сколько-долго. Интуиция подсказывает, что таким образом "мощность" генератора можно сильно увеличить. В описанной в посте конкретной реализации этой идеи конкретные порождаемые ею параметры 499500 и 1000 получились соразмеримы, и из-за этого "увеличение мощности" оказалось незначительным. Но ведь можно сделать размер буфера не 1000,а 997 (например)... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 00:13 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
... Но ведь можно сделать размер буфера не 1000,а 997 (например)... Или не экономить на вызовах ДСЧ0 и реализовать схему: А=ДСЧ0() ДСЧ=М(А) М(А)=ДСЧ0() -- которая концептуально даже проще (тем, что не нужно заморачиваться с "арифметикой" приращения адреса А) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 08:29 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS, давайте начнём с простого, какими свойствами должна обладать выходящая последовательность? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:26 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
kealon(Ruslan), 1) должна быть основана на "слабом" датчике случайных чисел (с коротким циклом); 2) должна иметь намного больший цикл, в пределе -- вообще его не иметь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:42 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS 1) должна быть основана на "слабом" датчике случайных чисел (с коротким циклом); Огромный период (факториалы от разрядности чисел) вообще ничего не говорит о статистических свойствах ГСЧ. Которые - гораздо гораздее. Особенно в такой фуфлообразной области, как финансовый анализ. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 10:38 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Basil A. Sidorov На конечном множестве чисел (конечная разрядная сетка) период ГСЧ будет конечным просто по определению Обозначим для простоты последовательность, повторения которой мы ждём, -- 1, 2, ... N. Предположим, что после неё -- не позже чем через N*ЧислоПерестановок(N) вызовов ГСЧ -- мы наконец снова увидели эту ( 1, 2, ... N ) последовательность. Но появится ли после неё (после значения N) то же самое следующее значение, которые появилось -- после N -- в первый раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 11:38 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, понятно, что если однажды при некотором значении А0=ДСЧ0() -- "состояние" массива М будет в точности (во всех ячейках!) тем же самым, которое было ранее при некотором предыдущем появлении этого А0, то в этой точке ряд значений ДСЧ зациклится. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 11:44 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS kealon(Ruslan), 1) должна быть основана на "слабом" датчике случайных чисел (с коротким циклом); 2) должна иметь намного больший цикл, в пределе -- вообще его не иметь. Я так понимаю распределение должно быть равномерным - т.е. на большом интервале все цифры должны быть примерно в равных количествах. Это так или допустимы другие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 12:40 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS Обозначим ДСЧ0 датчик случайных чисел "мощности" 1000, который за первые 1000 последовательных вызовов выдаёт в случайном порядке числа от 0 до 999 ... Это уже неслучайные числа, зная первые 999 можно назвать следующее ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 12:48 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Давайте идею Ивана классифицируем. Конечный автомат? Бесконечный? Я думаю что сама идея генерации длинных последовательностей на базе коротких - вполне себе летает. Но добротность данных на выходе пострадает настолько что нельзя будет ее использовать не только в криптографии а вообще - нигда. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 12:51 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
kealon(Ruslan) распределение должно быть равномерным - т.е. на большом интервале все цифры должны быть примерно в равных количествах. Это так или допустимы другие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 13:33 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS Да, равномерное, точнее -- такое же, как и у ДСЧ0; а поскольку оно равномерное, то и от ДСЧ мы вправе требовать равномерности. распределение равномерное -> возьмём последовательность желаемой длины, состоящую из циклического повторения всех выходящих чисел задача: нужно их перемешать -> это приведёт к нужному нам результату смотрим алгоритмы перемешивания, например, Тасование Фишера — Йетса Код: plaintext 1. 2. 3.
опс, нужен генератор с сопоставимыми требуемому характеристиками авторСуществует альтернативный метод — каждому элементу множества присваивается случайное число, а затем множество сортируется согласно присвоенным числам. тут наверное нужен метод с отличной периодикой, взаимнопростой с исходной, тогда получистя генератор с периодом P1*P2 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 14:01 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
kealon(Ruslan) возьмём последовательность желаемой длины я говорю: в трубе течёт вода, нужно делать с этой водой то-то и то-то. мне отвечают: сколько там той воды! вырой бассейн, собери в него всю воду и делай спокойно с водой в бассейне своё "то-то и то-то". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 14:10 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS kealon(Ruslan) возьмём последовательность желаемой длины я говорю: в трубе течёт вода, нужно делать с этой водой то-то и то-то. мне отвечают: сколько там той воды! вырой бассейн, собери в него всю воду и делай спокойно с водой в бассейне своё "то-то и то-то". Скорее тут другое: стесняются спросить, откуда взялась задача? Чему в реальной жизни эта задача соответствует, какую реальную проблему вы решаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 15:45 |
|
|
start [/forum/topic.php?fid=16&fpage=2&tid=1339642]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 418ms |
0 / 0 |