реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Генератор псевдослучайных чисел
Макс_Мат
сообщение Mar 26 2007, 13:37
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Цитата(bve @ Mar 25 2007, 19:13) *
А кто-нибудь знает БЫСТРЫй генератор с нормальным распределением?


А куда быстрее ГПСП, а результат накпливающая сумма за несколько сдвигов?
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Mar 26 2007, 22:08
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



Один из самых быстрых способов получить нормальное распределение - метод Бокса-Мюллера (нелинейное преобразование двух псевдослучайных последовательностей с равномерным распределением на интервале 0..1). Делал такую штуку на блекфине, вычисление одной выборки (включая генераторы ПСП) занимает 73 такта на выборку(выборка двухканальная). Для вычисления нелинейных преобразований использовал кусочно-линейную аппроксимацию. Подозреваю, что на ПЛИС скорость будет просто бешеная.


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
Макс_Мат
сообщение Mar 27 2007, 11:58
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Молодой человек, скорости скоростями, но ко всему надо подходить с головой. На ГПСП на том же блэкфине результат получается за максимум 2-4 такта. Так куда быстрее то?
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Mar 27 2007, 13:41
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



Макс_Мат Результат чего?!


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
Макс_Мат
сообщение Mar 28 2007, 14:19
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Цитата(Pathfinder @ Mar 27 2007, 14:41) *
Макс_Мат Результат чего?!


нормально распределенные числа вообщето. О них же речь, насколько я понимаю
Go to the top of the page
 
+Quote Post
bve
сообщение Mar 28 2007, 18:44
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



Цитата(Макс_Мат @ Mar 26 2007, 14:37) *
А куда быстрее ГПСП, а результат накпливающая сумма за несколько сдвигов?

Сумма 12-15 равномернораспределенных отсчетов для моей задачи на сигнальном процессоре - долгонько. Вот и ищу "прямой" метод тактов на 3-4 на отсчет.....
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Mar 29 2007, 14:57
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



Макс_Мат, а ну-ка просветите, что это вы там такое за 2-4 такта считаете??? сумму двух псп что-ли?


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
Макс_Мат
сообщение Apr 4 2007, 15:08
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Мне интересно, кто сможет дать определение нормального распределения на конечном множестве?
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 4 2007, 15:58
Сообщение #24


Гуру
******

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



Цитата(Макс_Мат @ Apr 4 2007, 16:08) *
Мне интересно, кто сможет дать определение нормального распределения на конечном множестве?


Нет, нет, давайте все-таки двигаться вперед по-порядку. Раз люди в этой ветке что-то обсуждали, значит, возможно, они понимали, о чем беседуют. Вы нарисовались, такой весь из себя красивый и умный, сказали (почти) что все вокруг необразованные болваны, и что нормальное распределение можно генерировать за 4 такта некоего процессора. У меня лично возникло серьезное подозрение, что Вы под нормальным распределением понимали нечто, что другие люди совершенно нормальным распределением назвать не могут даже с очень большой натяжкой, и уж заведомо не подразумевали при обсуждении в этой ветке. Поэтому прежде, чем мы с Вами дойдем до обсуждения смысла использованных ранее в этой ветке уважаемыми собеседниками терминов, а также предельных переходов и аппроксимации непрерывных распределений дискретными, пожалуйста, разъясните все-таки подробно, что именно Вы подразумевали, когда утверждали, что некоторое "нормальное распределение" можно генерировать за 4 такта?


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Макс_Мат
сообщение Apr 4 2007, 17:00
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Такое ощущение, что я попал не в профессиональный форум, а в общеобразовательный. Идею дал - мало, "на пальцах" покажи. Надеюсь матлабная модели хватит? Для непосвященных - здесь 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;
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 4 2007, 17:51
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 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 отсчет. Почему-то Вы об это важнейшее свойство упомянуть забыли. Кстати, ранее в этой ветке предлагалось суммирование нескольких равномерно распределенных отсчетов для получения приближения к нормальному распределению.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Макс_Мат
сообщение Apr 5 2007, 09:21
Сообщение #27


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Нигде выше не сказано о корреляционных свойствах последовательности. Вот какое важное значение имеет строгость в высказываниях. Но уважаемый Олдринг, а для чего существуют литература, знания, опыт, мышление и т.д.? Что мешает нам сделать указанную последовательность "белой"? (Хотя, конечно, строго белым нельзя называть функции на конечных множествах). Что мешает нам рандомизировать знак? А, именно, либо использовать второй псп либо использовать для этого произвольно выбраный разряд генератора (кроме первого разумеется). Посмотрите что получится. И довольствуйтесь приобретенным опытом.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 5 2007, 11:07
Сообщение #28


Гуру
******

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



Цитата(Макс_Мат @ Apr 5 2007, 10:21) *
Нигде выше не сказано о корреляционных свойствах последовательности. Вот какое важное значение имеет строгость в высказываниях. Но уважаемый Олдринг, а для чего существуют литература, знания, опыт, мышление и т.д.? Что мешает нам сделать указанную последовательность "белой"? (Хотя, конечно, строго белым нельзя называть функции на конечных множествах). Что мешает нам рандомизировать знак? А, именно, либо использовать второй псп либо использовать для этого произвольно выбраный разряд генератора (кроме первого разумеется). Посмотрите что получится. И довольствуйтесь приобретенным опытом.


За четыре такта?

А для чего Вы вообще что-то пишете? Какой в этом смысл?
Лично мне от Вас был интересен только способ быстрого построения генератора с нормальным распределением. Больше ничего. Я подумал, что может быть Вы знаете нечто, что другие в это ветке не знают? Оказалось, что Ваш способ с заковыкой и по сути мало отличается от описанного коллегами ранее. Нет, конечно, для некоторых узкоспециализированных задач он подойдет - но, скорее всего, в этих задачах было бы достаточно просто выходы LFSR.

P.S. Надеюсь, написав про невозможность получения белой случайной последовательности на конечных множествах, Вы имели в виду не то, что написали? Формализуйте, пожалйста, Ваше высказывание.

P.P.S. Что получится в результате экспериментов - разъясните, пожалуйста. Мне очень интересно. Кроме увеличения времени вычисления, конечно.

P.P.P.S. Здесь редко формулируют теоремы с математической точностью. Хороший тон - думать о том, что люди еще и подразумевают. Независимость отсчетов - это обычное требование для хороших генераторов.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Макс_Мат
сообщение Apr 5 2007, 11:28
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 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 только сейчас пришло в голову, может вам еще и код для сигнальника выложить? Говорите для какого? А может тогда вообще возьмете меня к себе на подработку? Сдается мне, что пока у нас в стране такие "спецы", долго еще будем после китая и кореи находиться
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 5 2007, 12:13
Сообщение #30


Гуру
******

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



Цитата(Макс_Мат @ Apr 5 2007, 12:28) *
Я показал вам генератор, в котором можно не то что разрядность чисел регулировать, а также(!) корреляционные свойства. Если вам нужны зависимые отчеты, пожалуйста, если нужны не зависимые, то тоже пожалуйста! Количество операций при этом константа и выгодно отличается от приведенных выше!


Нет, спасибо, код для сигнальника не нужен. Матлабовского скрипта достаточно.
Какие могут быть обиды? У меня, например, складывается впечатление, что Вы, пытаясь советовать коллегам алгоритмы генерации случайных чисел, не читали Кнута. Потому что пытаетесь порождать на лету методы генерации откровенно плохих случайных чисел. Может быть, Вам стоит с ознакомиться с этой классической книгой? Без обид?

Знаете, был когда-то такой популярный в СССР компьютер - ZX Spectrum. Если для него написать программу, в которой последовательно генерируемые числа рисовать в виде точек на экране - попарно X и Y координаты, то точки начинали вастраиваться в сетку линий. Такой тест - один из простейших критериев качества генератора случайных чисел, описанный в Кнуте. Называется критерием серий.

Для вашего генератора получается крест.

Прикрепленное изображение


Будет ли это крест на Вашем генераторе, или этот генератор можно будет использовать в конкретном алгоритме - зависит от алгоритма. Но обнаружить побочные эффекты будет, конечно, несколько сложнее. За счет некоторого замедления времени работы первоначального генератора.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01469 секунд с 7
ELECTRONIX ©2004-2016