Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.044 c
2-1154371871
Alral
2006-07-31 22:51
2006.08.20
CanClose


2-1154426141
Батя
2006-08-01 13:55
2006.08.20
Стили в Delphi


4-1146479765
Kukuruza
2006-05-01 14:36
2006.08.20
Registry и DWORD


1-1152515177
Stanislav
2006-07-10 11:06
2006.08.20
Запуск службы от имени пользователя


1-1152179934
Dmitry_177
2006-07-06 13:58
2006.08.20
Как можно прочитать сообщения из окна icq?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский