Комментарии 19
Никогда не интересовался генераторами Фибоначчи, но няп в той формуле сумма рекурсивно полученных значений, а у вас - цикл с делением на 17. Похоже что эта программа не от этой задачи ;)
Нет необходимости в бесконечных циклах, достаточно взять счетчик миллисекунд и отфильтровать его через функцию, например через sin. Тригонометрические или другие функцию вычислимые из ряда можно заменить на этот самый ряд и упростить его.
И что получилось в результате? Сила ГПСЧ в том, что даже зная n предыдущих чисел, невозможно вычислить n+1. Даже если алгоритм генерации известен.
Не обязательно же требование. Если требуется просто получать последовательности обладающие некоторыми статистическими свойствами, то соббсно пофигу на состояние и его предсказуемость.
Сила ГПСЧ в том, что даже зная n предыдущих чисел, невозможно вычислить n+1
Вот это новость! А "Линейный конгруэнтный ГПСЧ" не считается? Стандартная формула, где n+1 вычисляется как раз от предыдущего n.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/0f3/262/704/0f3262704abb03b2d13d6aa0b10ea14f.png)
Ну и советую вам посмотреть примеры www.shadertoy.com, где основная функция для получения шума, среди прочих хешей, sin(n).
И хорошо бы дать ссылочку на известный труд Дональда Кнута, где описан конгруэнтный генератор, требования к нему, принципы создания, а также тесты, с помощью которых можно определить, "хороший" генератор или "плохой".
Да, забыл пример своего варианта привести
https://onlinegdb.com/222WaynlG
... Почему генерация случайных чисел в функциях языков программирования Не случайна? ...
Лично меня интересует иное, почему автор не дал определение понятия "случайность" прежде чем излагать это крайне безграмотное суждение???
Читаем научное определение:
СЛУЧАЙНОСТЬ – философская категория, выражающая один из предельных видов (классов) взаимосвязей и взаимоотношений в мире, характеризующийся отсутствием прямых закономерных связей в поведении и функционировании объектов и систем.
https://iphlib.ru/library/collection/newphilenc/document/HASHe582c0604b9932e6c8eae5
Как мы видим из определения, любое случайное событие является закономерным, но эта закономерность носит скрытый от наблюдателя характер, что создает у наблюдателя субъективное ощущение отсутствия закономерности.
По иному, понятие случайность определяют еще так:
Случайность, это непознанная закономерность.
Так, что любой генератор чисел, для наблюдателя незнающего его закономерность, генерирует всегда случайные числа.
Например, для наблюдателя незнакомому с арифметикой, генератор последовательности натуральных чисел от 0 до ထ , будет генерировать случайные числа. :)
Автор явно путает понятия "случайность" с понятиями "беспричинность" и "произвольность". :)
Случайность, как непознанная закономерность - это очень смело, но с этим сложно согласиться.
Скорее случайность - это заведомое отсутствие закономерности.
Иначе вам придётся поставить под соменение основы современной квантовой механики. И страшного в этом ничего нет, т.к. постулироваие случайности базовых процессов физики даёт весьма интересные результаты.
А вот то, что это отчасти философская категория - согласиться можно. Но тоже с оговоркой, поскольку случайности вполне можно дать как математическую так и физическую интерпритацию.
Однако, если этот наблюдатель не знающий арифметику попросит вас нарисовать график вашей случайной последовательности он скажет "я вижу явную закономерность".
На этом палятся многие ГПСЧ, что на их графиках зачастую можно увидеть рисунки-паттерны.
Однако, если этот наблюдатель не знающий арифметику попросит вас нарисовать график вашей случайной последовательности он скажет "я вижу явную закономерность".
...
Совершенно верно. :)
Любой хаос обладает этим свойством - если наблюдатель, не знающий закономерность данного хаоса, попросит, знающего закономерность данного хаоса, нарисовать график закономерности данного хаоса, он скажет "я вижу явную закономерность". :)
Случайность, это непознанная закономерность.
Кстати, понятие "неопределенность", которым пытаются козырять невежественные "любители" квантовой теории, также указывает на непознанную закономерность:
НЕОПРЕДЕЛЕННОСТЬ - неполнота определяющих факторов.
Идеографический словарь русского языка. — М.: Издательство ЭТС. Баранов О.С.. 1995
Именно по этой причине в квантовой теории, в отношении принципа неопределенности Гейзенберга, преобладает интерпретация, в виде теории скрытых параметров. Т.е. мы в очередной раз видим, что случайность, это непознанная закономерность. :)
Одна из нужных фич широко используемых ГПСЧ - для одного и того-же значения seed, всегда получаем одну и ту-же последовательность чисел, какой-бы длинной она нам не была-бы нужна.
Всякий, кто питает слабость к арифметическим методам получения случайных чисел, грешен вне всяких сомнений.
Само собой, не совсем в тему о ГПСЧ, но "красивое":)
обычным алгоритмом, программно, получить истинно случайное число - невозможно
Интуитивно вроде бы так чувствуется, но доказать не могу. Существует ли доказательство сего факта?
Очень замечательная функция. И обладает замечательным свойством.
Для любых A и B таких, что A <= 0 <= B, gen_random_int(A,B) = 0. В любое время года :)
Генерация псевдослучайных чисел в программировании. И как у меня псевдо-получилось их сгенерировать