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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.04 c
8-1117885721
Dr. Andrew
2005-06-04 15:48
2005.10.30
Как "перехватить" и сохранить wav от звуковой карты?


14-1128617265
Kinder_
2005-10-06 20:47
2005.10.30
Что можно почитать про оптимизацию кода ?


14-1128611218
Piter
2005-10-06 19:06
2005.10.30
Лекция в одном институте по теме "Интернет"


14-1128618000
LordOfRock
2005-10-06 21:00
2005.10.30
Заработок в интернете.


14-1128840322
Старшеклассник
2005-10-09 10:45
2005.10.30
Расчет IP адресов в локальных сетях





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