Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница: 1 |

 

  Вопрос: RND гауссового распределения Добавлено: 06.11.05 00:17  

Автор вопроса:  Victor | Web-сайт: vt-dbnz.narod.ru | ICQ: 345743490 
Вопрос очень простой.
Как получить гауссово распределение случайно сгенерированых чисел? То есть, какую формулу надо применить к результату Rnd, чтобы получить распределение плотности вероятности типа Exp(-x^2) (такое там распределение вроде...)?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 06.11.05 03:45
Реши уравнение int(exp(-x*x),x=0..X) = rnd(), где X - искомое число. Плотность распределения таких X будет гауссовой.

Ответить

Номер ответа: 2
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #2
Добавлено: 07.11.05 19:39

int(exp(-x*x),x=0..X) = rnd()
Ни фига не понял.
Int равен Rnd только когда Rnd=0 или Rnd = 1, что случается крайне редко (вроде вообще никогда). Как же решать это уравнение?

Ответить

Номер ответа: 3
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #3 Добавлено: 07.11.05 19:42
А разве Log(Rnd) не даст гауссовое распределение?

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 08.11.05 22:01
int в смысле интеграл, после запятой диапазон

Ответить

Номер ответа: 5
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #5
Добавлено: 11.11.05 22:41
Я кажется понял. Там есть проблема такая. Итнеграл от exp(-x*x) от нуля до бесконечности вовсе не равен единице. По сему надо производить нормировку. Если я правильно помню, то exp(..) надо домножить на 2/sqr(pi). И к тому же, неплохо еще менять рандомно знак, так как вышеописанный метод даст лишь положительные числа.
Спасибо. А итегралить придется численно :(

Ответить

Номер ответа: 6
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #6
Добавлено: 11.11.05 22:43
А разве Log(Rnd) не даст гауссовое распределение?
Нет. Хотя если эту формулу изменить на симметричную, то она даст распределение, довольно похожее на гауссово.

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 13.11.05 01:50
> f(x):=exp(-x^2/2)/sqrt(2*Pi);
                              /  1  2\  ;(1/2)
                           exp|- - x | 2    
                              \  2   /      
                   f(x) := ------------------
                                   ;(1/2)    
                               2 Pi          
> int(f(x),x=-infinity..+infinity);
                               1

Ответить

Номер ответа: 8
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #8 Добавлено: 07.12.05 23:56
Cos(Atn(x)) - тоже довольно интересная кривая. Интересно, какое это распределение получается...

Ответить

Номер ответа: 9
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #9
Добавлено: 15.01.06 03:30
Такое же, как от 1/sqr(1+x^2). :)

Ответить

Номер ответа: 10
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #10 Добавлено: 15.01.06 22:16
Угу. Графики идентичны. Тока писал бы уж x*x, кто ж во вторую степень возводит...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам