Ну, если неправильно использовать даже "самый-самый правильный ГСЧ", то легко пережечь только одну лампочку
Задай диапазон ГСЧ 1-10, и включай зелёную только при 11
Оно, конечно, несколько офтоп.Но для полного понимания. Если Ваш ГСЧ пишет только 24 бита, то и "случайным" он может быть только в дискретных точках в этом диапазоне. И не важно как потом представлять эти биты - флоатом, или интом, попугаями или ещё как. 2^24 степени вариантов - и не больше. 24 бита "случайности".
Если "1 бит случайности", то отношение количества 0 и 1 в длинной последовательности выбора стремится к 1.
Если не к 1, то просто "случайности" МЕНЬШЕ ОДНОГО БИТА. (Вспоминаем теорию информации). Но! Это не значит, что случайности нет, или она "неправильная".
"Правильность" её определяется другим - отсутствием зависимости результата генерации от любого числа предыдущих генераций.
Т.е., невозможностью однозначного вычисления результата , зная даже все предыдущие.
Вот поэтому, все детерминированные алгоритмы умеют только "псевдослучайные", с более или менее длинной последовательностью.
Для настоящей случайности, нужна случайность недетерминированная ничем (внешний источник), а задача алгоритма только максимально точно её "размазать" по диапазону, определённому этим алгоритмом, чтобы этот диапазон не заузить. - чтобы 24 бита, в которые алгоритм пишет эту случайность оказались случайными на все 24 бита, а не на 23.5, например.
"Правильный" ГСЧ на 32 бита интов более "случаен", чем на 24 бита флоатов. Просто потому, что диапазон шире.
Это как с возмущениями тут на отсутствие ФБ на равенство флоатов. Ну да! "В натуре" такое равенство разных чисел вообще невероятно, а для флоат-переменных, ограниченных длиной записи, вероятно ровно настолько же, насколько равенство интов этой же длины.
"В натуре" 0.999(9) строго равно 1, а в программе такого не бывает никогда.![]()






Ответить с цитированием
