Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Генерирование пары независимых равномерно распределенных чисел   Найти похожие ветки 

 
Mictian   (2006-07-02 17:25) [0]

Привет всем!!! Очень прошу о помощи, как сделать на Delphi, чтобы сгенерировать пару независимых равномерно распределенных чисел a,b из отрезка (-1,1). Я уже все голову сломал, а времени осталось мало =(


 
DrPass ©   (2006-07-02 17:31) [1]

a:= random * 2 - 1;
b:= random * 2 - 1;
правда, это пара псевдослучайных, а не случайных и независимых чисел


 
RzCoDer ©   (2006-07-02 17:39) [2]

добавить Randomize вперёд и будет вам случайность ;)


 
RzCoDer ©   (2006-07-02 17:39) [3]

добавить Randomize вперёд и будет вам случайность ;)


 
Ketmar ©   (2006-07-02 17:40) [4]

ПСЕВДОслучайность.


 
PSPF2003 ©   (2006-07-02 17:42) [5]


> ПСЕВДОслучайность.

Есть другие варианты?


 
Mictian   (2006-07-02 17:47) [6]

Т.е. просто  
randomize;
a:=random;
b:=random; - ???

А как же соблюдения отрезка???


 
Джо ©   (2006-07-02 17:48) [7]

> А как же соблюдения отрезка???

А что с ним не так? :)


 
Mictian   (2006-07-02 17:50) [8]

Понимаешь, я просто не до каонца понимаю что это ваще такое =) Че за отрезок от -1 до 1, то что random и randomize надо юзать, эт я сразу понял, но вот этот отрезок он сбивает с толку...


 
Mictian   (2006-07-02 17:52) [9]

Да, а если просто так писать, то только положительные получаются...


 
Ketmar ©   (2006-07-02 17:54) [10]

>PSPF2003 ©   (02.07.06 17:42) [5]
немеряно.


 
MBo ©   (2006-07-02 18:05) [11]

>Да, а если просто так писать, то только положительные получаются...

В первом же посте тебе написали, как делать.


 
Mictian   (2006-07-02 18:12) [12]

Да, пасибо, все работает, формулы подставил, сейчас буду рисовать графики ;)


 
PSPF2003 ©   (2006-07-02 18:17) [13]


> немеряно.

Например?


 
Ketmar ©   (2006-07-02 19:00) [14]

>PSPF2003 ©   (02.07.06 18:17) [13]
например, использовать программно-аппаратные решения.


 
RzCoDer ©   (2006-07-02 19:10) [15]

ну можно конечно сделать завиимость от движения пользователя мышкой - самое дешёвое из более менее случайных


 
Mictian   (2006-07-03 11:43) [16]

Алгоритм генерирования псевдослучайных чисел с нормальным законом распределения с нулевым математическим ожиданием и единичным среднеквадратичным отклонением.
Вначале генерируется пара независимых равномерно распределенных чисел U, V из отрезка (-1, 1). Затем, если S=U^2+V^2<1, то пара чисел Znach1:=u*sqrt(-2*ln(s)/s), Znach2:=v*sqrt(-2*ln(s)/s) являются независимыми нормально распределенными псевдослучайными числами и помещаются в массив r.

Проблема с расчетом матожидания и дисперсии, т.к. просто не знаю, как ее тут посчитать. Еще трабла с массивом. Исходник того, что есть прилагается (http://www.delphisources.ru/forum/attachment.php?attachmentid=18&d=1151911138)


 
MBo ©   (2006-07-03 12:18) [17]

>Mictian   (03.07.06 11:43) [16]
Пост непонятен - то ли делишься знаниями, то ли вопрос имеешь, а сентенция о том, что пара чисел являются норм. распределенными - вообще странная (для двух чисел нельзя говорить ни о каком законе распределения)

Если нужно нормальное распределение, используй RandG из модуля Math


 
Jeer ©   (2006-07-03 12:19) [18]

мат ожидание = среднее по реализации
дисперсия = среднее по квадратам (значение минус мат.ожидание) реализации


 
Mictian   (2006-07-03 12:20) [19]


> мат ожидание = среднее по реализации
> дисперсия = среднее по квадратам (значение минус мат.ожидание)
> реализации

Можно чуть, подробнее...


 
Jeer ©   (2006-07-03 12:20) [20]


> Алгоритм генерирования


Это один из методов.


 
Чапаев ©   (2006-07-03 12:21) [21]


> a:= random * 2 - 1;

Это будет [-1;1), а не (-1;1).


 
Mictian   (2006-07-03 12:21) [22]


> Пост непонятен - то ли делишься знаниями, то ли вопрос имеешь,
>  а сентенция о том, что пара чисел являются норм. распределенными
> - вообще странная (для двух чисел нельзя говорить ни о каком
> законе распределения)

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


 
Jeer ©   (2006-07-03 12:23) [23]

Mictian   (03.07.06 12:20) [19]

1. Возьми любой учебник по статистике.

2. В дельфи есть Mean, StdDev и тп.


 
Mictian   (2006-07-03 12:23) [24]


> Это будет [-1;1), а не (-1;1).

Предложили еще (random *2-1)/2


 
Jeer ©   (2006-07-03 12:24) [25]

Mictian   (03.07.06 12:21) [22]


> первый раз черьезно столкнулся с матиматикой


На какой скорости ?

Похоже с русским тоже было столкновение.


 
Mictian   (2006-07-03 12:26) [26]


> Похоже с русским тоже было столкновение.

Ладно, сори за оффтоп, опечатался =)


 
Чапаев ©   (2006-07-03 12:31) [27]


> Предложили еще (random *2-1)/2

Так ведь в любом случае область значений Random() [0;1), то есть "ноль" получить можно, а "один" -- нет.


 
MBo ©   (2006-07-03 12:53) [28]

>Чапаев ©   (03.07.06 12:21) [21]
>Это будет [-1;1), а не (-1;1).
Ну такими эффектами в большинстве случаев пренебрегают, хотя иногда эьо и бывает важно

>Mictian   (03.07.06 12:23) [24]
>Предложили еще (random *2-1)/2
Для чего предложили????

Из школьной математики известно, что точки отрезка 0..1 отображаются
на отрезок a..b путем применения линейного преобразования y = a + x*(b-a)
Линейность преобразования (x/(1-x) = (y-a)/(b-y)) ведет к сохранению распределения.


 
Mictian   (2006-07-03 14:06) [29]

Так как найти дисперсию и матожидание???
Я нашел, что в Math описана функция Total Variance для полной дисперсии, а как ее юзать??? Есть ли что-то для матожидания???


 
Mictian   (2006-07-03 14:11) [30]

Кстати, нет у кого-нибудь книги Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Паскаль (Версия 5.5) в электронном варианте???


 
MBo ©   (2006-07-03 14:40) [31]

>Так как найти дисперсию и матожидание???
Чего?

MeanAndStdDev из Math не устроит?


 
Mictian   (2006-07-03 14:53) [32]


> MeanAndStdDev из Math не устроит?

Ну не работал совсем с математикой, что это такое??? Как пользоваться этими функциями???


 
MBo ©   (2006-07-03 15:00) [33]

>Ну не работал совсем с математикой, что это такое???
Почитать книги и статьи

>Как пользоваться этими функциями???
Почитать хелп


 
Mictian   (2006-07-03 15:02) [34]


> Почитать книги и статьи

Времени не так много, я кое-что нашел Яндексом про распределение, а с остальным туго... А делать надо очень срочно =(


 
Jeer ©   (2006-07-03 15:26) [35]

Mictian   (03.07.06 14:53) [32]

> Ну не работал совсем с математикой


Ну и дальше не работай.


> А делать надо очень срочно


Нам не надо и даже не срочно.


 
Mictian   (2006-07-03 18:09) [36]

Ну заюзал я их, все конечно круто... Да вот че-то преподу надо, чтобы я сам описал по формуле =(


 
Mictian   (2006-07-03 20:36) [37]

Все сдалала =)))



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.062 c
1-1152113846
Muchacho
2006-07-05 19:37
2006.08.20
генератор отчетов для Delphi 2006 .NET


1-1152085849
JohnnySE
2006-07-05 11:50
2006.08.20
работа с DLL и ее интерфейсами


15-1153971454
Nic
2006-07-27 07:37
2006.08.20
Вопросик по php


2-1154595222
GEM
2006-08-03 12:53
2006.08.20
Не могу написать запросы. Нужна помощь


15-1153814754
Pazitron_Brain
2006-07-25 12:05
2006.08.20
Можно соединить КПК с