Повторю вопрос: для ПР какой алгоритм _уже_ реализован?
Помните я его задавал?
Не поленитесь и процитируйте.
Может, там уже xorshift128?
И, да: по-моему, учить принципам важнее, чем давать частные решения.
Например, Вольд и Алексей Геннадьевич запросто показывают не конкретный ответ, а направление/литературу. И это правильно.
о какой правоте идет речь, я требовал вначале тест для среды КДС, затем уже хотя бы решение этого метода для КДС, Вы целый день упирались. Малого того и даже сейчас в тесте, Вы не честны до конца, намеренно или нет, уж не знаю "уничтожили" главную идею генератора зависимость от времени, каким то нелепым прибавлением десятки.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Ну на счет Алексея вы загнули ,когда речь о реализации он реализует ,когда вопрос общий ,то и ответ соответствующий .
Я же дал скрин макроса ,чего более то,откройте рисунок ? там 4 элемента ...
электронщик до мозга костей и не только
Принцип простой -генерация псевдослучайного числа в пределах заданного диапазона ,но не более 32 бит в течении 1 цикла вычисления(для ПР) .Затем стробируем данную последовательность во времени с переменным периодом формирующимся опять же случайным образом.Получаем последовательность случайных чисел с еще большим разбросом ,напоминающий "белый шум"... с равноверояным распределением по времени ,если нужно ..
электронщик до мозга костей и не только
Константа это максимальное число -диапазон чисел от 0 до N (N<2 в степени 32 минус1),неужели так трудно понять ?Вы сначала сам макрос RND (от AI)изучите ,а уж потом заявления будите делать ,а не наоборот ,как всегда .
То есть макрос формирует пседо случайное число в заданном диапазоне в каждом цикле ПР,но максимальная верхняя граница не более чем представление в ПР(32 разряда).в виду ограниченно диапазона естественно ,что во времени могут попадаться одинаковые цепочки ,например 2,11 ,32 ,но при удлинении цепи анализа эти повторения устремятся к нулю ..Осталось понять (мне) как долго ждать ,что бы вся цепь чисел начала заново повторятся ..Тут мне силенок не хватает ..Я лишь констатирую то что наблюдаю ,а наблюдать вечность я не могу .Вот вы с вашим математическим складом ума и скажите ,сколько мне ждать что бы увидеть две одинаковые цепи(полные) случайных чисел в макросе от AI.
Но так как это чисто вычислительный метод в макросе ,который формирует одинаковую последовательность чисел при включении ПР ,то для перестраховки я и ввел еще временной фактор ,а так же последовательное соединение макросов .
Последний раз редактировалось rovki; 16.07.2016 в 15:00.
электронщик до мозга костей и не только
Вы не зазнавайтесь, а отвечайте на поставленный вопрос. Если не понимаете, что для ГСЧ константы крайне важны, то поймите же это наконец.
Нашёл макрос тут: 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?(минута ,час ,год..),а вы пишите на своем птичьем языке .
Последний раз редактировалось rovki; 16.07.2016 в 16:12.
электронщик до мозга костей и не только