Главная страница
    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-1128603393
Layner
2005-10-06 16:56
2005.10.30
Понятие расстояния в нашей стране (Россия)


14-1128946381
NewWonder
2005-10-10 16:13
2005.10.30
Визитка группы :(


1-1128334065
Ugrael
2005-10-03 14:07
2005.10.30
как вывести в about номер билда ?


4-1124883088
DMitryFox
2005-08-24 15:31
2005.10.30
Непонятки с адресацией


14-1128763750
Buss
2005-10-08 13:29
2005.10.30
Сайт





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