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

Вниз

как сделать рандом с уклоном?   Найти похожие ветки 

 
Top ©   (2005-10-06 16:08) [0]

как сделать рандом с уклоном? чтобы например были числа от 1 до 40 но большие выпадали несколько реже.


 
evvcom ©   (2005-10-06 16:14) [1]

Например, создаешь массив из 70 элементов. Первые 60 заполняешь числами от 1 до 30 по 2 раза каждое, остальные от 31 до 40 по 1 разу. Делаешь random в диапазоне 1-70 (или 0-69) и из массива по этому индексу выбираешь значение. Таким образом числа от 31 до 40 будут выпадать несколько реже, чем 1-30. :) Получить можешь любое распределение.


 
MBo ©   (2005-10-06 16:15) [2]

>но большие выпадали несколько реже.
Насколько реже?
Т.е. какого вида должно быть распределение (плотность распределения)


 
Defunct ©   (2005-10-06 16:17) [3]

Top ©   (06.10.05 16:08)  

if Random( 9 ) < 8 then  // тут задаем вероятность выпадания большого числа
 Result := 1 + Random( 39 )
else
 Result := 1 + Random( 1000 )


 
Top ©   (2005-10-06 16:21) [4]

спасибо щас попробую предложенные решения


 
MBo ©   (2005-10-06 16:27) [5]

Квадратичное распределение:
Rnd:=1+Max(Random(40),Random(40));


 
Top ©   (2005-10-06 16:32) [6]


> MBo ©

отлично, это мне подходит :) спасибо


 
GuAV ©   (2005-10-06 16:50) [7]

Кстати, есть ли способ получить случайное число, зная плотность распределения ?


 
MBo ©   (2005-10-06 17:13) [8]

>GuAV ©   (06.10.05 16:50) [7]
Да, есть, преобразованием Смирнова (того, чей с Колмогоровым критерий в статистике известен)

Если можно проинтегрировать функцию, и взять от интеграла обратную функцию, то последнюю применяют для преобразования равномерно распределенного случайного числа.

Пример: нужно экспоненциальное распределение Exp(-x)
Интеграл -  -Exp(-x)
обратная функция -  -Ln(Y)
Значит, Rnd:=-Ln(Random); // где Random 0..1 (не включая границы)
даст экспоненциальное распределение (затухающее)


 
Jeer ©   (2005-10-06 18:48) [9]

MBo ©   (06.10.05 17:13) [8]

Так и называется "метод обратных функций"

Если не удается получить аналитическое выражение, то используются различного рода аппроксимации.
Бусленко Н.П. был разработан метод кусочно-линейной аппр.

Еще есть метод "отбора" - предложен  Дж.Нейманом.
Известен метод "суперпозиции" -  Butler J.W. (1956)
а также их комбинации.


 
GuAV ©   (2005-10-06 21:58) [10]

Ясно. Спасибо.



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

Форум: "Основная";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.046 c
14-1128662254
syte_ser78
2005-10-07 09:17
2005.10.30
аналог Автосхемы


3-1126851290
ZSergey
2005-09-16 10:14
2005.10.30
Помогите настроить кодировку ...


14-1128624735
Bogdan1024
2005-10-06 22:52
2005.10.30
помогите пощитать


4-1125186966
graveyard
2005-08-28 03:56
2005.10.30
как снять атрибут с файла


14-1128591568
konda
2005-10-06 13:39
2005.10.30
Запись в событиях WinXP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский