Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Случайное число с заданной вероятностью.. Добавлено: 11.03.07 10:44  

Автор вопроса:  Sofist | ICQ: 291657044 
Помогите.. необходимо генерировать определнные числа с заданной вероятностью.. например число 5 нужно сгенерировать с вероятность 0,75, а число 7 - свероятностью 0,25.. как это написать на VB??

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 11.03.07 10:58
Круто сказано, ничего не понятно.

Возожно ты это имел ввиду..
Dim Percent As Long, Number As Long
Percent = Rnd * 100
If Percent <= 75 Then Number = 5
If Percent <= 25 Then Number = 7


Знаешь, то, что ты сказал, можно понять по-разному.

Ответить

Номер ответа: 2
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #2
Добавлено: 11.03.07 11:19
Хочешь лохотрон зделать

Ответить

Номер ответа: 3
Автор ответа:
 ANDREY Z5Z



Вопросов: 38
Ответов: 125
 Web-сайт: save-games.info
 Профиль | | #3
Добавлено: 11.03.07 12:19
Жалко математика с теорией вероятности у нас была 3 года назад, а то можно было бы сделать :)

Ответить

Номер ответа: 4
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #4
Добавлено: 11.03.07 16:41
На здесь штота есть
http://doc-source.pp.net.ua/_ld/0/1_Imovirni.rar

Ответить

Номер ответа: 5
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #5 Добавлено: 11.03.07 16:48
Как я понял, необходимо сделать дискретную функцию распределения с 2 уровнями?

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 11.03.07 23:29
В общем случае пусть тебе нужно число из интервала [a,b], а f(x) - функция распределения вероятности. Тогда C = \int_a^b{f(x)dx}. Генеришь случайное число r от 0 до C и решаешь уравнение \int_a^y{f(x)dx} = r. Число y и будет случайной величиной, полученной в соответствии с функцией распределения вероятности. Так, к примеру, получают случайные величины с нормальным распределением.

Если нужно дискретное распределение с небольшим числом значений, просто составляешь массив, в котором каждый элемент равен сумме вероятностей выпадения предыдущих чисел. После чего по случайному числу от 0 до 1 бинарным поиском находишь это число в таблице. Индекс элемента массива и будет искомым числом.

Пример:
1 0.1
2 0.2
3 0.3
4 0.4

Массив будет иметь вид 0.1, 0.3, 0.6, 1.0. Пусть случайное число от 0 до 1 - 0.8. Тогда тебе надо выбрать число 4. Если 0.2, то 2. Если 0.05, то 1.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам