|
|
  |
Генератор псевдослучайных чисел |
|
|
|
Mar 26 2007, 13:37
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378

|
Цитата(bve @ Mar 25 2007, 19:13)  А кто-нибудь знает БЫСТРЫй генератор с нормальным распределением? А куда быстрее ГПСП, а результат накпливающая сумма за несколько сдвигов?
|
|
|
|
|
Mar 28 2007, 18:44
|
Местный
  
Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765

|
Цитата(Макс_Мат @ Mar 26 2007, 14:37)  А куда быстрее ГПСП, а результат накпливающая сумма за несколько сдвигов? Сумма 12-15 равномернораспределенных отсчетов для моей задачи на сигнальном процессоре - долгонько. Вот и ищу "прямой" метод тактов на 3-4 на отсчет.....
|
|
|
|
|
Apr 4 2007, 15:58
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Макс_Мат @ Apr 4 2007, 16:08)  Мне интересно, кто сможет дать определение нормального распределения на конечном множестве? Нет, нет, давайте все-таки двигаться вперед по-порядку. Раз люди в этой ветке что-то обсуждали, значит, возможно, они понимали, о чем беседуют. Вы нарисовались, такой весь из себя красивый и умный, сказали (почти) что все вокруг необразованные болваны, и что нормальное распределение можно генерировать за 4 такта некоего процессора. У меня лично возникло серьезное подозрение, что Вы под нормальным распределением понимали нечто, что другие люди совершенно нормальным распределением назвать не могут даже с очень большой натяжкой, и уж заведомо не подразумевали при обсуждении в этой ветке. Поэтому прежде, чем мы с Вами дойдем до обсуждения смысла использованных ранее в этой ветке уважаемыми собеседниками терминов, а также предельных переходов и аппроксимации непрерывных распределений дискретными, пожалуйста, разъясните все-таки подробно, что именно Вы подразумевали, когда утверждали, что некоторое "нормальное распределение" можно генерировать за 4 такта?
--------------------
Пишите в личку.
|
|
|
|
|
Apr 4 2007, 17:51
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Макс_Мат @ Apr 4 2007, 18:00)  Такое ощущение, что я попал не в профессиональный форум, а в общеобразовательный. Идею дал - мало, "на пальцах" покажи. Надеюсь матлабная модели хватит? Для непосвященных - здесь randint-128 генерит равномер, т.е. описывает состояние регистра псп
R=[]; s=0; delLine = zeros(32,1); for i=1:10000, v = randint(1,1,256)-128; s = s + v - delLine(end); delLine = [v; delLine(1:end-1)]; R=[R;s]; end; Спасибо, теперь стало понятно, что имеется в виду именно скользящее среднее по 32 равномерно распределенным независимым отсчетам. Это, конечно, не так плохо, как я подумал с самого начала. Распределение у такого генератора, конечно, близко к нормальному - но есть одна засада, из-за которой для многих приложений, для которых нужно именно нормальное распределение, он неприменим. От генераторов случайных чисел обычно требуют еще одно свойство - генерируемая последовательность должна быть белой. У этого же генератора автокорреляционная функция представляет собой аккуратный треугольник, простирающийся на +-31 отсчет. Почему-то Вы об это важнейшее свойство упомянуть забыли. Кстати, ранее в этой ветке предлагалось суммирование нескольких равномерно распределенных отсчетов для получения приближения к нормальному распределению.
--------------------
Пишите в личку.
|
|
|
|
|
Apr 5 2007, 11:07
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Макс_Мат @ Apr 5 2007, 10:21)  Нигде выше не сказано о корреляционных свойствах последовательности. Вот какое важное значение имеет строгость в высказываниях. Но уважаемый Олдринг, а для чего существуют литература, знания, опыт, мышление и т.д.? Что мешает нам сделать указанную последовательность "белой"? (Хотя, конечно, строго белым нельзя называть функции на конечных множествах). Что мешает нам рандомизировать знак? А, именно, либо использовать второй псп либо использовать для этого произвольно выбраный разряд генератора (кроме первого разумеется). Посмотрите что получится. И довольствуйтесь приобретенным опытом. За четыре такта? А для чего Вы вообще что-то пишете? Какой в этом смысл? Лично мне от Вас был интересен только способ быстрого построения генератора с нормальным распределением. Больше ничего. Я подумал, что может быть Вы знаете нечто, что другие в это ветке не знают? Оказалось, что Ваш способ с заковыкой и по сути мало отличается от описанного коллегами ранее. Нет, конечно, для некоторых узкоспециализированных задач он подойдет - но, скорее всего, в этих задачах было бы достаточно просто выходы LFSR. P.S. Надеюсь, написав про невозможность получения белой случайной последовательности на конечных множествах, Вы имели в виду не то, что написали? Формализуйте, пожалйста, Ваше высказывание. P.P.S. Что получится в результате экспериментов - разъясните, пожалуйста. Мне очень интересно. Кроме увеличения времени вычисления, конечно. P.P.P.S. Здесь редко формулируют теоремы с математической точностью. Хороший тон - думать о том, что люди еще и подразумевают. Независимость отсчетов - это обычное требование для хороших генераторов.
--------------------
Пишите в личку.
|
|
|
|
|
Apr 5 2007, 11:28
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378

|
R=[]; s=0; delLine = zeros(32,1); for i=1:10000, v = randint(1,1,256)-128; s = s + v - delLine(end); delLine = [v; delLine(1:end-1)]; g = s; if randint(1,1,2)==0, g = -g; end; R=[R;g]; end;
Что то я перестал вас понимать... "Лично мне от Вас был интересен только способ быстрого построения генератора с нормальным распределением". Я показал вам генератор, в котором можно не то что разрядность чисел регулировать, а также(!) корреляционные свойства. Если вам нужны зависимые отчеты, пожалуйста, если нужны не зависимые, то тоже пожалуйста! Количество операций при этом константа и выгодно отличается от приведенных выше!
ps Уважаемый Олдриг, мне кажется, Вы либо перемудрствуете, либо Вам необходимо заново пройти курс обучения статистической теории. Не обижайтесь конечно, но создается такое впечатление.
psps только сейчас пришло в голову, может вам еще и код для сигнальника выложить? Говорите для какого? А может тогда вообще возьмете меня к себе на подработку? Сдается мне, что пока у нас в стране такие "спецы", долго еще будем после китая и кореи находиться
|
|
|
|
|
Apr 5 2007, 12:13
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Макс_Мат @ Apr 5 2007, 12:28)  Я показал вам генератор, в котором можно не то что разрядность чисел регулировать, а также(!) корреляционные свойства. Если вам нужны зависимые отчеты, пожалуйста, если нужны не зависимые, то тоже пожалуйста! Количество операций при этом константа и выгодно отличается от приведенных выше! Нет, спасибо, код для сигнальника не нужен. Матлабовского скрипта достаточно. Какие могут быть обиды? У меня, например, складывается впечатление, что Вы, пытаясь советовать коллегам алгоритмы генерации случайных чисел, не читали Кнута. Потому что пытаетесь порождать на лету методы генерации откровенно плохих случайных чисел. Может быть, Вам стоит с ознакомиться с этой классической книгой? Без обид? Знаете, был когда-то такой популярный в СССР компьютер - ZX Spectrum. Если для него написать программу, в которой последовательно генерируемые числа рисовать в виде точек на экране - попарно X и Y координаты, то точки начинали вастраиваться в сетку линий. Такой тест - один из простейших критериев качества генератора случайных чисел, описанный в Кнуте. Называется критерием серий. Для вашего генератора получается крест.
Будет ли это крест на Вашем генераторе, или этот генератор можно будет использовать в конкретном алгоритме - зависит от алгоритма. Но обнаружить побочные эффекты будет, конечно, несколько сложнее. За счет некоторого замедления времени работы первоначального генератора.
--------------------
Пишите в личку.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|