ДСВ по таблице
Вот набросал тут реализацию на коленке.
Код на Blitz3D. Прошу комментариев и конструктивнйо критики. Осбенно, с точки зрения ТеорВер-а (т.к. вариант - первый, что пришёл в голову, вполне возможно, я что-то не учёл). PHP код:
Есть четрые числа: 12, 11.1, 56, 78. Необходимо: случайным образом возвращать числа из набора, учитывая, что веротяность выпадения чисел разная, а именно: 20%, 30%, 40% и 10% соотвественно. Для наглядности, демо-код, слегка говнокоден: PHP код:
PBankHandle - дескриптор банка, содержащего нормированные вероятности событий. Т.е., в нашем случае, 0.2, 0.3, 0.4 и 0.1. turncnt - количество перестановок. Вообще говоря, от балды. Т.к. :crazy: Возвращает - сгенерированный банк для функции ImpRnd_DRVGet Function ImpRnd_DRVGet#(DRVBankHandle%,ValBankHandle%) DRVBankHandle% - банк, сгенерированный функцией ImpRnd_DRVBankCreate ValBankHandle% - банк, характеризующий каждое событие числом. В наше случае, это 12, 11.1, 56, 78. Возвращает одно из чисел, указанных в ValBankHandle, с частотой, соотвествующей его веротяности. Результаты выполнения демо-кода: Код:
1# 23 ~ 0.2 Аналогичную задачу проверёнм на другой таблице (0.01 0.5 0.09 0.4) Скорректируем округление в выоде и получим: для 1000 итераций: Код:
1# 7 ~ 0.01 Код:
1# 95 ~ 0.01 Код:
1# 991 ~ 0.01 |
Ответ: ДСВ по таблице
Кстати, вот вам подтверждение ЗБЧ (я про последний пример с разным кол-вом итераций)
|
Ответ: ДСВ по таблице
блин: ДСВ это не ДеньСвятогоВалентина, это ДискретнаяСлучайнаяВеличина
|
Ответ: ДСВ по таблице
здорово !! Мне нравится !!
|
Ответ: ДСВ по таблице
|
Ответ: ДСВ по таблице
Дискретная Случайная Величина
Закон Больших Чисел What The Fuck Че тут непонятного? Гоу в универ на тех. специальность. :-D |
Ответ: ДСВ по таблице
PHP код:
Для рассмотренного в 1ом посте, код можно переписать как: Код:
Local B%=CreateBank(16) |
Часовой пояс GMT +4, время: 07:29. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot