Да Вы бы послушали Ситникова, как раз он поведает о ситуации которая случилась со мной, я долго пытался его вынудить показать генератор для целочисленных в программируемых устройствах, типа плк, пр. Как раз надеялся что столкнется с переполнением диапазона, ан нет, предлагаемый им генератор работает с 24 битами. Это к тому что Вы обращаете вниание на 16битные счетчики в системе с типами данных только двойное слово
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Ну какое может быть переполнение в ГСЧ на "кольце"?
Вы когда "в бутылочку" играете ждёте "переполнения"?
По его же мнению, ГСЧ, работающий с 24 из 32 битов, таковым являться не может, т.к., всегда выдаёт одно и то же значение в 8 битах, которые не использует
И как можно не обращать внимание на ФБ, ограничивающий возможности среды программирования, без всяких объективных на то оснований?
Я, может быть, не прав, но обоснований почему в ОЛ не может быть 32хразрядного счётчика, я не увидел, а реализованные такие счётчики увидел, и сам легко реализовал.
В каких ещё ФБ зарыты подобные грабли (невозможность работы с полным диапазоном переменной)?
Но-но!
Обсуждение ГСЧ никакой пользы "макросам ОЛ" (см название текущей темы) не принесет, а народ получит кучу спама. Наверняка есть море подписанных на эту тему.
Поэтому предлагаю ГСЧ тут не обсуждать.
Разумеется, capzap прав (с 24 битами речь была про float, и действительно в одно random float значение можно только 24 бита запихнуть). Ну и я тоже, разумеется, прав. Если есть желание пообсуждать ГСЧ -- создавайте тему в курилке.
Если честно, то я не понимаю смысла выкладывать в этой теме ГСЧ непонятного качества, когда есть проверенные алгоритмы типа xorshift128. Если это проект типа "мой первый макрос в ОЛ" -- не вопрос, пущай будет в отдельной теме. Но зачем подкладывать свинью другим? Много же кто просто возьмёт макрос и прилепит в проект.
А потом окажется, что постоянно перегорает "красная" лампочка, т.к. она на ГСЧ "чаще выпадает".
Владимир Ситников...
Что-то не так?
Вы сначало проверьте потом утверждайте что не рабочий.
Я не утверждаю что он чёткий!
PS:
Но предупреждаю что перед использованием в проектах хорошенько проверьте на ошибки
Кстати он генерирует числа от 1 до 10
У него вместо нуля 10^
Последний раз редактировалось ParuSnow; 31.07.2017 в 18:07.
вот и займитесь, http://www.owen.ru/forum/attachment....0&d=1469091643, перенесите в ОЛ
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Ну, если неправильно использовать даже "самый-самый правильный ГСЧ", то легко пережечь только одну лампочку
Задай диапазон ГСЧ 1-10, и включай зелёную только при 11
Оно, конечно, несколько офтоп.Но для полного понимания. Если Ваш ГСЧ пишет только 24 бита, то и "случайным" он может быть только в дискретных точках в этом диапазоне. И не важно как потом представлять эти биты - флоатом, или интом, попугаями или ещё как. 2^24 степени вариантов - и не больше. 24 бита "случайности".
Если "1 бит случайности", то отношение количества 0 и 1 в длинной последовательности выбора стремится к 1.
Если не к 1, то просто "случайности" МЕНЬШЕ ОДНОГО БИТА. (Вспоминаем теорию информации). Но! Это не значит, что случайности нет, или она "неправильная".
"Правильность" её определяется другим - отсутствием зависимости результата генерации от любого числа предыдущих генераций.
Т.е., невозможностью однозначного вычисления результата , зная даже все предыдущие.
Вот поэтому, все детерминированные алгоритмы умеют только "псевдослучайные", с более или менее длинной последовательностью.
Для настоящей случайности, нужна случайность недетерминированная ничем (внешний источник), а задача алгоритма только максимально точно её "размазать" по диапазону, определённому этим алгоритмом, чтобы этот диапазон не заузить. - чтобы 24 бита, в которые алгоритм пишет эту случайность оказались случайными на все 24 бита, а не на 23.5, например.
"Правильный" ГСЧ на 32 бита интов более "случаен", чем на 24 бита флоатов. Просто потому, что диапазон шире.
Это как с возмущениями тут на отсутствие ФБ на равенство флоатов. Ну да! "В натуре" такое равенство разных чисел вообще невероятно, а для флоат-переменных, ограниченных длиной записи, вероятно ровно настолько же, насколько равенство интов этой же длины.
"В натуре" 0.999(9) строго равно 1, а в программе такого не бывает никогда.![]()
Последний раз редактировалось pop70; 31.07.2017 в 18:06.
Ключевое слово правильное называете. Особенно, если помните что-то про эту теорию.
Обычно, за эталон берут равномерный генератор.Сообщение от Wikipedia
Все эти "энтропия есть, а распределения могут быть не только равномерными" это липовые отмазки. Если автор ожидает, что генератор имеет специфическое распределение, то это и нужно упоминать в прилагаемом описании. Раз никаких примечаний не было, то вполне логично предполагать равномерное.
Повторюсь, обычно принято делать равномерные генераторы, а уже на основе них делать уже те распределения, которые нужны.
Тут же под видом ГСЧ пытаются подсунуть генератор неизвестного качества.
Повторюсь, есть куча инструментов, которые по входной последовательности проводят тесты на случайность и говорят какие из тестов проходят, а какие нет.
И, если ParuSnow утверждает, что у него ГСЧ хороший, то пусть прогонит результат своего ГСЧ через эти инструменты (хотя бы через 1).
А без таких проверок качество этого ГСЧ сомнительное.
Да, может оказаться, что генератор у ParuSnow хороший. Но может же оказаться, что ГСЧ плохой? И что тогда?
Разумеется, нет смысла пользоваться сомнительными ГСЧ, когда есть проверенные временем и тестами ГСЧ.
Тут не я (и не capzap) должны доказывать, что "ГСЧ плох". А сам автор (ну или ещё кто-то кому не лень тратить время) должен провести тесты и показать какие тесты этот ГСЧ проходит.
У вас пробелы в "теорией информации". Вы путаете "объём состояния" и "размер выхода". Ещё раз: все остальные ваши отмазки -- в отдельную тему.
Последний раз редактировалось Владимир Ситников; 31.07.2017 в 18:48.
"Обычно, необычно" - это и есть отмазки.
Будете использовать для ГСЧ формулу вычисления пи?
А чё так?
Распределение равномерное, цикл бесконечен...
По всем "канонам" с "обычно" проходит. А "случайности" ("энтропии") 0
"В реальности всё совсем не так, как на самом деле"(с)
Последний раз редактировалось pop70; 31.07.2017 в 19:05.