Так давно бы реализовали и спора бы не было и получили спасибо от всех ,по такому пути и идти надо .
Вид для печати
Повторю вопрос: для ПР какой алгоритм _уже_ реализован?
Помните я его задавал?
Не поленитесь и процитируйте.
Может, там уже xorshift128?
И, да: по-моему, учить принципам важнее, чем давать частные решения.
Например, Вольд и Алексей Геннадьевич запросто показывают не конкретный ответ, а направление/литературу. И это правильно.
о какой правоте идет речь, я требовал вначале тест для среды КДС, затем уже хотя бы решение этого метода для КДС, Вы целый день упирались. Малого того и даже сейчас в тесте, Вы не честны до конца, намеренно или нет, уж не знаю "уничтожили" главную идею генератора зависимость от времени, каким то нелепым прибавлением десятки.
Ну на счет Алексея вы загнули ,когда речь о реализации он реализует ,когда вопрос общий ,то и ответ соответствующий .
Я же дал скрин макроса ,чего более то,откройте рисунок ? там 4 элемента ...
Принцип простой -генерация псевдослучайного числа в пределах заданного диапазона ,но не более 32 бит в течении 1 цикла вычисления(для ПР) .Затем стробируем данную последовательность во времени с переменным периодом формирующимся опять же случайным образом.Получаем последовательность случайных чисел с еще большим разбросом ,напоминающий "белый шум"... с равноверояным распределением по времени ,если нужно ..
Константа это максимальное число -диапазон чисел от 0 до N (N<2 в степени 32 минус1),неужели так трудно понять ?Вы сначала сам макрос RND (от AI)изучите ,а уж потом заявления будите делать ,а не наоборот ,как всегда .
То есть макрос формирует пседо случайное число в заданном диапазоне в каждом цикле ПР,но максимальная верхняя граница не более чем представление в ПР(32 разряда).в виду ограниченно диапазона естественно ,что во времени могут попадаться одинаковые цепочки ,например 2,11 ,32 ,но при удлинении цепи анализа эти повторения устремятся к нулю ..Осталось понять (мне) как долго ждать ,что бы вся цепь чисел начала заново повторятся ..Тут мне силенок не хватает ..Я лишь констатирую то что наблюдаю ,а наблюдать вечность я не могу .Вот вы с вашим математическим складом ума и скажите ,сколько мне ждать что бы увидеть две одинаковые цепи(полные) случайных чисел в макросе от AI.
Но так как это чисто вычислительный метод в макросе ,который формирует одинаковую последовательность чисел при включении ПР ,то для перестраховки я и ввел еще временной фактор ,а так же последовательное соединение макросов .
Вы не зазнавайтесь, а отвечайте на поставленный вопрос. Если не понимаете, что для ГСЧ константы крайне важны, то поймите же это наконец.
Нашёл макрос тут: http://www.owen.ru/forum/showthread....ll=1#post98377
Посмотрел константу -- она равна 4294967291
В двоичном виде это 11111111111111111111111111111011, в hex это fffffffb. Т.е. константа на 4 меньше, чем 232-1.
Прогнал алгоритм через nist -- тест показал, что алгоритм плохой.
На С он имеет вид
unsigned int res;
res = ((unsigned int)(res * 4294967291)) + 1;
"mod(...)" я не добавлял -- считаем, что генерируется число от минимально возможного, до максимально возможного.
В итоге (без стробирования, просто анализ последовательных значений):
Frequency -- FAIL (0s = 515754 1s = 484246)
CumulativeSums -- FAIL
Runs -- FAIL
LongestRun -- FAIL (3 of 10 pass)
Rank -- FAIL
FFT -- FAIL
NonOverlappingTemplate -- FAIL
OverlappingTemplate -- FAIL
ApproximateEntropy -- FAIL
BlockFrequency -- PASS
Universal -- PASS
Serial -- PASS
LinearComplexity -- PASS
Поймите же наконец, невозможно сделать нормальный ГСЧ на одном блоке умножения и одном сложения. Так не работает.
Я в очередной раз оказался прав, что упомянутый "генератор AI" -- плохой генератор.
И это было очевидно с самого начала.
Это не такой важный критерий.
Например, у генератора x = x+1 "вся цепь начнёт повторяться аж через ~ 232 значений. Но "хорошим" это данный генератор никак не делает.
С временным фактором уж как повезёт. Или как "не повезёт". Можно "надеяться и верить", что "временной фактор уж точно сделает последовательность случайной". А можно с самого начала использовать алгоритм, который даже без временного фактора возвращает хорошие значения.
В электроники именно на временном факторе и делали ГСЧ ,ввиду флуктуации времени задержки элемента и питания .
Опыт не чистый ,поставьте все как в макросе (MODE) именно остаток от деления имеет значение ,как и делимое .Именно остаток от деления является случайным числом!А не результат умножения .В двух соснах заблудились .
Ну и как всегда -своего лучшего проекта (реализации) нет для ПР ,только критика чужих вариантов .
Вы не зазнавайтесь ,а отвечайте на поставленный вопрос - " Цитата Сообщение от rovki Посмотреть сообщение
как долго ждать ,что бы вся цепь чисел начала заново повторятся" если цикл ПР-1мс в макросе от AI?(минута ,час ,год..),а вы пишите на своем птичьем языке .