|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#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 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS ответ: в литературе описано и существует в исходниках множество ДСЧ, в которых эта и другие проблемы решены. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 15:57 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, задача -- повысить "мощность" (имеющегося) ДСЧ, а не сделать (взять из литературы или даже из исходников) ДСЧ. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 16:02 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS, берите рецепт, а не лекарство ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 16:07 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS Aleksandr Sharahov, задача -- повысить "мощность" (имеющегося) ДСЧ, а не сделать (взять из литературы или даже из исходников) ДСЧ. Мне идея понятна но я против создания всяких временных массивов со ссылками. Это пошло. Даже криптографические функции и шифры стараются не потреблять лишнюю память и не вводить много инициализаций и состояний. У тебя есть свой ДСЧ с периодом 1000. Значит ты можешь просто искусственно создать 100 таких ДСЧ и ограничив их разными "взаимно не простыми" периодами получить легко произведение длинн. Композицию можешь делать через сложение по модулю 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 18:48 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
mayton, у меня в VB (VBA, на самом деле) один стандартный (и не клонируемый) ДСЧ -- Rnd(). Которому я доверяю в том смысле, что если он и косячит -- то это хотя бы не моя вина. (Да, у него, конечно, период не 1000, а типа 17 миллионов. 1000 я здесь взял просто для простоты.) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 20:29 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
ссылки на генераторы на VBA тут: https://stackoverflow.com/questions/61268164/which-random-number-generator-does-excel-vba-use ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 22:01 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS mayton, у меня в VB (VBA, на самом деле) один стандартный (и не клонируемый) ДСЧ -- Rnd(). Которому я доверяю в том смысле, что если он и косячит -- то это хотя бы не моя вина. (Да, у него, конечно, период не 1000, а типа 17 миллионов. 1000 я здесь взял просто для простоты.) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 10:40 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Barlone Если проблема в переполнении ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 11:20 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Я думаю с божьей помощью и с помощью старика Тьюринга мы сможем научить VBA делать сложение и умножение по модулю. Надо только задачу поставить. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 11:35 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Barlone, кстати, в вашей цитате очень мило прозвучало "чтобы получить миллионы и миллионы случайных чисел"... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 11:41 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS Barlone, кстати, в вашей цитате очень мило прозвучало "чтобы получить миллионы и миллионы случайных чисел"... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 11:56 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Практическая задача для которой недостаточно периода в 17 миллионов так и не названа. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 14:07 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS kealon(Ruslan) возьмём последовательность желаемой длины я говорю: в трубе течёт вода, нужно делать с этой водой то-то и то-то. мне отвечают: сколько там той воды! вырой бассейн, собери в него всю воду и делай спокойно с водой в бассейне своё "то-то и то-то". т.е. в такой постановке задача нерешаема, так как нерешаема равноценная задача ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 14:34 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
kealon(Ruslan) отсюда следует простой вывод: "на одном генераторе это не сделать" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 15:13 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Практическая задача для которой недостаточно периода в 17 миллионов так и не названа. Требования на мощность ДСЧ возникают потому, что на каждую проверяемую точку в монтекарловом пространстве "расходуется" 100 вызовов ДСЧ, то есть формально от "мощности" 16 миллионов остается 16М/100 = 160К. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 15:17 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
У тебя-же VB.Net? Значит можно вызвать дотнетовские https://docs.microsoft.com/en-us/dotnet/api/system.random?view=net-5.0 или даже https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.rngcryptoserviceprovider?view=net-5.0 Должна быть там какая-то интероперабельность. Все таки родное. От МС. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 17:25 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
mayton, у меня всю дорогу VBA внутри MS Access 2003 . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 18:05 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Это всё, конечно, замечательно, но, при необходимости, подтянутся маркет-мейкеры и ничего случайного в их действиях уже не будет. Ну а "шакалить по мелочи" можно и без матана. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 18:26 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, это пошёл оффтопик, но я полюбасу даже не мечтаю зарабатывать столько, чтобы у маркет-мейкеров возникала хоть какая-нибудь "необходимость подтянуться". ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 18:45 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
А вы-то тут причём??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 18:57 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, [продолжается оффтопик] значит я не (правильно) понял, про какую "при необходимости, подтянутся маркет-мейкеры" вы высказались... но не суть, объяснять не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 19:02 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Суть в том, что вы неспособны предвидеть неслучайную компоненту рынка. А значит все ваши потуги - мышиная возня. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 19:12 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS mayton, у меня всю дорогу VBA внутри MS Access 2003 . Как-то печально все. Уже второй топик идет борьба не с проблемой а со техно-стеком. Ты мог-бы смигрировать свою базу в MS-Express или нечто подобное и использовать языки на порядок более удобные. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 19:41 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, мне совершенно не нужно "предвидеть неслучайную компоненту рынка". Всё, что мне нужно -- это иметь статистическое преимущество в виде положительного математического ожидания среднего результата сделки, большее некоторого порогового значения. Впрочем, вы-то, кажется, думаете, что моя задача -- победить (и даже разгромить) маркетмейкеров. Ну, ква. Это примерно как объяснять скумбрии, что кашалоты всё равно съедят весь планктон. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 19:43 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, я вам больше скажу: мне настолько не нужно "предвидеть неслучайную компоненту рынка", что я даже не ощущаю потребности ни обдумывать, ни обсуждать, что это такое и существует ли она. Вы утверждаете, что маркетмейкеры "неслучайно" грызут друг друга? Мне наплевать. Вы утверждаете, что маркетмейкеры "неслучайно" поедают значительную часть, возможно даже большую часть мелких игроков? Мне наплевать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 20:06 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS kealon(Ruslan) отсюда следует простой вывод: "на одном генераторе это не сделать" т.е. как вы не извращайтесь с буфером, это всё сводится ко второму генератору, что противоречит постановке условия вашей задачи ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2021, 11:03 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
kealon(Ruslan), если я разделяю на "два потока" четные и нечетные члены ряда псевдослучайных чисел, выдаваемых ДСЧ0 (как я и предложил в 22354995 ) -- то это "один генератор" или "два генератора"? Иван FXS Или не экономить на вызовах ДСЧ0 и реализовать схему: А=ДСЧ0() ДСЧ=М(А) М(А)=ДСЧ0() -- которая концептуально даже проще (тем, что не нужно заморачиваться с "арифметикой" приращения адреса А) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2021, 12:11 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Иван FXS, выглядит интересно, в принципе можно просто на два взаимнопростых куска поделить но какой-то подвох чувствуется почему-то, надо проверять ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2021, 20:35 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
Или разбить на 3 части и решать из какого из 2-х потоков брать след число. Тогда оба источника будут более псевдослучайными. Но всё равно их будет 2 и общий поток станет ещё короче, и понадобятся ещё источники. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2021, 15:13 |
|
Задачка про ДСЧ с буфером
|
|||
---|---|---|---|
#18+
kealon(Ruslan), подвох состоит в том, что мы не можем так просто некоторое время пользоваться одним потоком и не пользоваться другим, потому что этот второй поток невозможно остановить, ибо каждое второе возвращаемое ДСЧ0 число полюбасу есть второй поток. То есть "остановленный" (за временной ненадобностью) поток нужно будет или буферизовать, или выбрасывать. Впрочем, в том варианте, который я обсуждаю: А=ДСЧ0() ДСЧ=М(А) М(А)=ДСЧ0() -- это не два совершенно независимых "потока", а просто разное использование четных и нечетных членов. Разное, но совместное. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2021, 22:52 |
|
|
start [/forum/topic.php?all=1&fid=16&tid=1339642]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 334ms |
0 / 0 |