Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить

Чт сен 18, 2008 18:37:30

ваш "генератор" судя даже по вашему примеру, генерирует последовательность монотонно возрастающих чисел, что есть закономерность, т.е. от случайности очень далеко. скажем, вот пример случайной последовательности: 950, 7, 2, 16, 35, 7, 2005, 11, 7, 3, 88, 1, 460...

Вс сен 28, 2008 20:41:53

Нет необходимости забивать память случайными числами (сей труд неблагодарен). "Хоровиц/Хилл" второй том, глава 9,35 очень просто и понятно всё описывает. Строится рекурентный сдвиговый регистр (регистр с обратными связями), на вход которого подаётся результат сложения_по_модулю_2 (исключающее ИЛИ) от некоторых разрядов этого-же регистра. Приведу табличку из этой книги. Формат: ДР/ТП/ДП (ДлиннаРегистра/ТочкаПодключения/ДлиннаПоследовательности)
3/2/7
4/3/15
5/3/31
6/5/63
7/6/127
9/5/511
10/7/1023
15/14/32767
17/14/131071
18/11/262143
20/17/1048575
22/21/4194303
23/18/8388607
25/22/33554431
28/25/268435455
31/28/2147483647
Если выбирить длинну регистра кратной байту то для получения последовательности максимальной длинны требуется более 2 точек подключения.
Формат: ДР/ТП,ТП,ТП/ДП
8/4,5,6/255
16/4,13,15/65535
24/17,22,23/16777215
Используйте кольцевой сдвиг трёх(четырёх)байтной переменной и сложение по искл/ИЛИ соответствующих бит. 16 миллионов комбинаций от трёхбайтной переменной - помоему этого больше чем достаточно для имитиции настоящей случайности.

Вс сен 28, 2008 20:50:15

bagira писал(а):Нет необходимости забивать память случайными числами
разумеется :) я об этом (о программно-математическом-формульно-вычислительном способе генерации случайных чисел) писал ранее :)
а теперь на своем сайте разместил конкретный пример реализации этого подхода... на Си :)

Вс сен 28, 2008 21:04:32

Если в PROTEUS запустить проектик - можно шум послушать на ПК.

Вс сен 28, 2008 21:10:41

tych писал(а):Если в PROTEUS запустить проектик - можно шум послушать на ПК.
слушали? я только спектр смотрел на графике... :)

Вс сен 28, 2008 21:20:13

ARV писал(а):
tych писал(а):Если в PROTEUS запустить проектик - можно шум послушать на ПК.
слушали? я только спектр смотрел на графике... :)

Нет. Я в других проектах слушал музычку - динамик нужно на схему "кинуть" и подключить к сигналу.

А еслиб послушал то конечно проектик бы прицепл к посту.

Вт окт 07, 2008 20:37:22

Как-то, с год-два тому, тоже была необходимость построить ГПСЧ, так тогда нагуглилась такая простая штука - Linear Feedback Shift Registers. Это элементарный перевод старых генераторов, построенных на сдвиговых, в софт. Там есть ссылки на таблицы, позволяющие построить софтовый ГПСЧ на весьма длинные последовательности. Программа, что понятно из названия метода, элементарная, вся построена на сдвигах/сложениях - реализуется просто, работает на ура. Да там и пример есть.
Времени на написание уйдет меньше, чем на генерацию в экселе и перенос затем в память, да и памяти, кстати сказать, займет, ну, ооочень немного. ;)

Вт окт 07, 2008 21:41:58

Yellow Tiger писал(а):Как-то, с год-два тому, тоже была необходимость построить ГПСЧ, так тогда нагуглилась такая простая штука - Linear Feedback Shift Registers. Это элементарный перевод старых генераторов, построенных на сдвиговых, в софт. Там есть ссылки на таблицы, позволяющие построить софтовый ГПСЧ на весьма длинные последовательности. Программа, что понятно из названия метода, элементарная, вся построена на сдвигах/сложениях - реализуется просто, работает на ура. Да там и пример есть.
Времени на написание уйдет меньше, чем на генерацию в экселе и перенос затем в память, да и памяти, кстати сказать, займет, ну, ооочень немного. ;)
вы пропустили - я уже давал ссылку на реализацию этого метода в своем проекте...

Ср окт 08, 2008 00:04:30

ARV писал(а):вы пропустили - я уже давал ссылку на реализацию этого метода в своем проекте...
Вы знаете, всё даже ещё хуже - прочтя вашу предыдущую реплику, я несколько раз просмотрел обе страницы этой темы и не смог найти эту ссылку... :shock: Уж не знаю, как это у меня получается, но, может, вы мне её покажете, раз такое дело?

Ср окт 08, 2008 08:08:47

Yellow Tiger, для вас:
ARV писал(а):а теперь на своем сайте разместил конкретный пример реализации этого подхода... на Си :)
ну а сама ссылочка "под кнопкой www" (©tych) :)))

это было сделано для конспирации... но для вас делаю персонально - ВОТ

Ср окт 08, 2008 18:29:24

Ключевые слова - "на своем сайте". :))) то есть, в репликах этой ветки не было ни ссылки на проект, ни ссылки на сайт - так? Ну, слава богу, а-то, я уже стал думать, что очевидных ссылок не замечаю. Ф-фуух! Отлегло... :lol:

За персонально предоставленную ссылку спасибо, вот только ГПСЧ мне уже "не к обеду", собственно, по этой причине я по ссылкам Изображение или Изображение и не следовал. :)

Если же вернуться к вопросу программной реализации, то пожалуй наши две ссылки не только не рождают коллизии, но еще и прекрасно дополняют друг-друга - в вашей дана одна, конкретная реализация, а материал, на который дал ссылку я, содержит как иллюстрированное пояснение к принципу работы этого алгоритма, так и большое количество готовых данных для построения ГПСЧ с максимальными периодами, удобно собранных в таблицы. :)

Ср окт 08, 2008 19:54:01

Yellow Tiger писал(а):Ключевые слова - "на своем сайте". :)))

Просто когда делаешь статьюдля сайта, то пишешь не торопясь, продумываешь, проверяешь - информация наверняка правильная получается.

А когда с ходу отвечаешь по сути в конфе то не трудно ошибиться и если даже ошибку исправят спустя некоторое время, то спрашивающий уже мог прочитать не верное, а вот прочитает ли исправленое не известно.

Сб ноя 01, 2008 19:35:52

Чё вы паритесь??? Генератор случайных чисел вшит в Excel :))

Сб ноя 29, 2008 01:22:10

Тот, который вшит в Ёксел - сущая дрянь, ради интереса - сгенерите на нем несколько тысяч реализаций и постройке гистограмму, потом корреляцией первого порядка определите период осцилляции: получите 1024, 2048 или 4096 в зависимости от версии софтинки. В топку.
Была высказана разумная мысль использовать сдвиговые регистры с обратной связь по модулю 2 ("исключающее ИЛИ") - это дело, особенно (что чрезвычайно просто) строить такой ген на базисе чисел Мёрсена, берете последнее известное число (оно опубликовано на сайте "Американского Математического Общества) - при любой практически реализуемой тактовой частоте сдвига (скажем 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000ГГц) (можете смело дописать еще несколько сотен нулей)
период "случайности" такого гена будет на много порядков превышать оставшийся срок жизни Вселенной (скажем 1000 миллиардов лет). Таким образом - вопрос исчерпывается.

Сб ноя 29, 2008 13:13:47

последний пост просто рассмешил :) еще Остап Бендер говорил "а мне не нужна вечная игла для примуса. я не собираюсь жить вечно"...

есть слово - достаточно. и на этом надо ограничиться. :)

Сб ноя 29, 2008 13:29:38

ARV писал(а):есть слово - достаточно. и на этом надо ограничиться. :)
К слову "достаточно" надо бы приписать, достаточно для чего?

Сб ноя 29, 2008 14:25:10

гм... достаточно для конкретных случаев использования. с моей точки зрения, даже для игровых автоматов достаточно десятков тысяч "неповторов"... сотни тысяч - это уже начало перебора в большинстве любительских случаев, имхо. ну а те порядки, о которых было сказано - это даже для математиков лишнее, представляет интерес не более, чем чисто научный - сродни вычислению знаков числа "пи" после запятой...

ну а вообще, конечно, каждый решает для себя и за себя :)

Сб ноя 29, 2008 14:58:50

Просто в детстве ещё читал книжку про Enigma - шифр, который использовали немцы в войну и про проблему получения случайных чисел, точнее псевдослучайных, т.к. понял, что случайные это предел которого никогда не достигнуть.

Сб ноя 29, 2008 15:32:43

Enigma - это не шифр, а шифровальная машинка :) но сути это не меняет. случайное число - это, имхо, математическая абстракция - в практической деятельности практически ничего случайного нет, а то, что действительно случайно в природе - не может быть никак использовано практически. например, место удара молнии случайно - и какая от этого польза? а любой генератор так или иначе использует некие закономерности, т.е. изначально предсказуем. и бесконечное стремление к идеалу - бессмыслица...

Сб ноя 29, 2008 17:26:55

ARV писал(а):Enigma - это не шифр, а шифровальная машинка :)

Точнее сказать целое семейство машинок. Я просто имел в виду принцип шифрования. Остальное согласен, кроме удара молнии. :)))
Вероятность её удара в более возвышенные места наиболее вероятно, а не равновероятно.
Тогда уж скажите, что вероятность попадание молнии в молниеотвод равна вероятности попадания в точку в метре от него. :)))

Заканчиваем, всё равно мы с Вами одинаково думаем насчёт всего этого. :)))
Ответить