Не поверите восне увидел как Менделеев:)
И решил да пош.. все эти формулы и прочий мусор..
Просто взял 3 генератора и Чудо
Даже если вскроется пароль от макроса аналогов не найти;)
Вид для печати
Ясно, вся ценность в уникальности!
ParuSnow
pop70
Владимир Ситников
Для чего ГСЧ в ПР? Что им делать в электроавтоматике?:confused:
В ПК понятно: пароли, шифрование, и т.д.
Если ГСЧ "имени ParuSnow" будет возвращать 90% единиц и 10% нулей, то у вас повернётся язык назвать такой генератор "случайным"? Разумеется, уже есть готовые библиотеки подобных статистических тестов (не для ОЛ, а для генераторов на Си), и тест на "равномерность нулей и единиц" далеко не единственный.
Алексей Геннадьевич, вы же видели прошлый балаган про xorshift128, oscat и ГСЧ.
Вообще говоря, ГСЧ может быть полезным для:
1) Отложенного запуска. Например, нездорово будет, если запускать всю нагрузку в одно и то же время. Пусковые токи и все дела. Можно, конечно, запускать ровно по расписанию (1-ый вход через 1 сек, второй через 2 сек и т.п.). Но тогда 10 ПРок запустят 1ый вход каждая в эту самую 1-ую секунду и получили то же самое -- синхронный запуск нагрузки в один момент времени.
Если же запускать со случайной разбежкой, то вероятность одновременного запуска ниже.
2) Моделирования системы, для генерации "внешних событий". Например, тестируем схему-макрос для какого-нибудь усреднения. Что подавать на вход? Можно подавать константу, а можно некую "случайную" величину.
3) Фиг знает где ещё. Но если уж и делать генераторы, то лучше уж книжные, а не "абы-какие". В истории была куча примеров, когда из-за неправильности ГСЧ либо эксперимент неправильно шёл, либо вообще делались неверные выводы. Так сказать, "делай хорошо, плохо само получится".
Да Вы бы послушали Ситникова, как раз он поведает о ситуации которая случилась со мной, я долго пытался его вынудить показать генератор для целочисленных в программируемых устройствах, типа плк, пр. Как раз надеялся что столкнется с переполнением диапазона, ан нет, предлагаемый им генератор работает с 24 битами. Это к тому что Вы обращаете вниание на 16битные счетчики в системе с типами данных только двойное слово
Ну какое может быть переполнение в ГСЧ на "кольце"?
Вы когда "в бутылочку" играете ждёте "переполнения"? :)
По его же мнению, ГСЧ, работающий с 24 из 32 битов, таковым являться не может, т.к., всегда выдаёт одно и то же значение в 8 битах, которые не использует :)
И как можно не обращать внимание на ФБ, ограничивающий возможности среды программирования, без всяких объективных на то оснований?
Я, может быть, не прав, но обоснований почему в ОЛ не может быть 32хразрядного счётчика, я не увидел, а реализованные такие счётчики увидел, и сам легко реализовал.
В каких ещё ФБ зарыты подобные грабли (невозможность работы с полным диапазоном переменной)?
Но-но!
Обсуждение ГСЧ никакой пользы "макросам ОЛ" (см название текущей темы) не принесет, а народ получит кучу спама. Наверняка есть море подписанных на эту тему.
Поэтому предлагаю ГСЧ тут не обсуждать.
Разумеется, capzap прав (с 24 битами речь была про float, и действительно в одно random float значение можно только 24 бита запихнуть). Ну и я тоже, разумеется, прав. Если есть желание пообсуждать ГСЧ -- создавайте тему в курилке.
Если честно, то я не понимаю смысла выкладывать в этой теме ГСЧ непонятного качества, когда есть проверенные алгоритмы типа xorshift128. Если это проект типа "мой первый макрос в ОЛ" -- не вопрос, пущай будет в отдельной теме. Но зачем подкладывать свинью другим? Много же кто просто возьмёт макрос и прилепит в проект.
А потом окажется, что постоянно перегорает "красная" лампочка, т.к. она на ГСЧ "чаще выпадает".
Владимир Ситников...
Что-то не так?
Вы сначало проверьте потом утверждайте что не рабочий.:)
Я не утверждаю что он чёткий!
PS:
Но предупреждаю что перед использованием в проектах хорошенько проверьте на ошибки;)
Кстати он генерирует числа от 1 до 10
У него вместо нуля 10^
Ну, если неправильно использовать даже "самый-самый правильный ГСЧ", то легко пережечь только одну лампочку :)
Задай диапазон ГСЧ 1-10, и включай зелёную только при 11 :)
Оно, конечно, несколько офтоп. :) Но для полного понимания. Если Ваш ГСЧ пишет только 24 бита, то и "случайным" он может быть только в дискретных точках в этом диапазоне. И не важно как потом представлять эти биты - флоатом, или интом, попугаями или ещё как. 2^24 степени вариантов - и не больше. 24 бита "случайности".
Если "1 бит случайности", то отношение количества 0 и 1 в длинной последовательности выбора стремится к 1.
Если не к 1, то просто "случайности" МЕНЬШЕ ОДНОГО БИТА. (Вспоминаем теорию информации). Но! Это не значит, что случайности нет, или она "неправильная".
"Правильность" её определяется другим - отсутствием зависимости результата генерации от любого числа предыдущих генераций.
Т.е., невозможностью однозначного вычисления результата , зная даже все предыдущие.
Вот поэтому, все детерминированные алгоритмы умеют только "псевдослучайные", с более или менее длинной последовательностью.
Для настоящей случайности, нужна случайность недетерминированная ничем (внешний источник), а задача алгоритма только максимально точно её "размазать" по диапазону, определённому этим алгоритмом, чтобы этот диапазон не заузить. - чтобы 24 бита, в которые алгоритм пишет эту случайность оказались случайными на все 24 бита, а не на 23.5, например.
"Правильный" ГСЧ на 32 бита интов более "случаен", чем на 24 бита флоатов. Просто потому, что диапазон шире.
Это как с возмущениями тут на отсутствие ФБ на равенство флоатов. Ну да! "В натуре" такое равенство разных чисел вообще невероятно, а для флоат-переменных, ограниченных длиной записи, вероятно ровно настолько же, насколько равенство интов этой же длины.
"В натуре" 0.999(9) строго равно 1, а в программе такого не бывает никогда. :)
вот и займитесь, http://www.owen.ru/forum/attachment....0&d=1469091643, перенесите в ОЛ
Ключевое слово правильное называете. Особенно, если помните что-то про эту теорию.
Обычно, за эталон берут равномерный генератор.Цитата:
Сообщение от Wikipedia
Все эти "энтропия есть, а распределения могут быть не только равномерными" это липовые отмазки. Если автор ожидает, что генератор имеет специфическое распределение, то это и нужно упоминать в прилагаемом описании. Раз никаких примечаний не было, то вполне логично предполагать равномерное.
Повторюсь, обычно принято делать равномерные генераторы, а уже на основе них делать уже те распределения, которые нужны.
Тут же под видом ГСЧ пытаются подсунуть генератор неизвестного качества.
Повторюсь, есть куча инструментов, которые по входной последовательности проводят тесты на случайность и говорят какие из тестов проходят, а какие нет.
И, если ParuSnow утверждает, что у него ГСЧ хороший, то пусть прогонит результат своего ГСЧ через эти инструменты (хотя бы через 1).
А без таких проверок качество этого ГСЧ сомнительное.
Да, может оказаться, что генератор у ParuSnow хороший. Но может же оказаться, что ГСЧ плохой? И что тогда?
Разумеется, нет смысла пользоваться сомнительными ГСЧ, когда есть проверенные временем и тестами ГСЧ.
Тут не я (и не capzap) должны доказывать, что "ГСЧ плох". А сам автор (ну или ещё кто-то кому не лень тратить время) должен провести тесты и показать какие тесты этот ГСЧ проходит.
У вас пробелы в "теорией информации". Вы путаете "объём состояния" и "размер выхода". Ещё раз: все остальные ваши отмазки -- в отдельную тему.
"Обычно, необычно" - это и есть отмазки.
Будете использовать для ГСЧ формулу вычисления пи?
А чё так?
Распределение равномерное, цикл бесконечен...
По всем "канонам" с "обычно" проходит. А "случайности" ("энтропии") 0 ;)
"В реальности всё совсем не так, как на самом деле"(с)
Я зделал макрос он работает где требуется...Цитата:
Сообщение от Владимир
Что касается проверки то Как говорится: пускай болит голова у дятла:)
Несогласен. В установке (любой) должен быть строгий порядок старта.
Сначала включаем транспорт, потом ещё один транспортёр, и только потом подачу материала...
В металлообрабатывающем станке - гидравлика, СОЖ, подача, вращение фрезы.
А "разнесённый пуск для снижения нагрузки на сеть" встречался на спец.фрезерном станке, на котором стояло 2 двигателя привода фрез по 70квт. Решается обычным реле времени. (одновременный их запуск гарантированно вышибал автомат защиты на шинопроводе)
Вам как математику виднее. Но нужны ещё и обработчик выходных данных, и сборщик их.Цитата:
2) Моделирования системы, для генерации "внешних событий". Например, тестируем схему-макрос для какого-нибудь усреднения. Что подавать на вход? Можно подавать константу, а можно некую "случайную" величину.
Возможно генератор помех.
Световые эффекты - отлично!
Что Вы прицепись, ну человек придумал что-то, ура, эврика, он же не принуждает ни кого это использовать, вот человек родился увидел этот мир в первый раз, он же не виноват в этом и он ещё не знает что кто-то уже видел это и существуют более красочные вещи!
Вопрос к знатокам можно ли сделать макрос на ПР200/ПР114 генератор с управлением от внешнего резистора. Есть два входа аналоговых. Подключил к ним переменные резисторы . Одним регулирую скважность другим частоту импульсов в программе.
Спасибо. Посмотрим.
Здравствуйте!
представляю макрос:
Генератор повторяющихся случайных чисел 3ГСЧ10
зделаный по тиории 3 генераторов
Вложение 32407
Поэтому генерирует числа от 1-10 ..
Результат выводиться целочисленно!
Принцип работы очень прост
Просто жмём на ввод и генератор начинает постоянно выводить числа.
Ваши предложения
почему не от 1 до 60 ? и вообще, нафига он нужен ?
Так вы что-то делаете для может быть ?. Глядя на рисунок, может проше взять секунды и наложить какую-нибудь формулу и будут всегда разные числа.
Вот, случайно картинка под руку попалась, можно и как-то так сделать:
Вложение 32441
Только целочисленной переменной достаточно, короче море вариантов, было бы желание!
Сергей0308..... К чему вы это выкладываете, в чём суть?
Не проще зделать полностью и выложить!
Главное это идею(и) подсказать, если кто не знает как сделать и обычно просят помочь, а не сделать за них, разница понятна?
У меня есть подобный макрос и я его выкладывал:
Вложение 32443
Есть и другие варианты:
Вложение 32445
Сергей0308.... 1 что такое dmulb и 2 mul
Для чего они служат?