![]() |
|
|
![]()
|
|
| chaosty |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
Есть двумерный массив, с идентификатором и % "срабатывания"
Задачка каждый раз выбирать "случаный" ид из массива, но увеличивать шанс срабатывания в зависимости от %... то есть к примеру из 10 итераций, 5 раз должно повезти $arr[1], возможны небольшие расхождения. никак не могу представить формулу в голове :( форум посмотрел, но не нашел такого. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
||||
|
||||
| chaosty |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
Гм, а есть экземпляр на С или php\perl? Я к сожалению не математик)
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
у меня нет, но можешь посмотреть исходники boost::random, там есть реализация многих распределений случайных чисел, в том числе, ЕМНИП, и этого. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
предположим у нас есть возможность генерировать псевдослучайное целое число из 0..9 с одинаковой вероятностью для каждого значения
всего у нас 10 возможных значений разобьём их на 4 группы: 0..4, 5..6, 7..8, 9 тогда вероятности, что число попадёт в один из отрезков такие: 0 - 50% 1 - 20% 2 - 20% 3 - 10% конечно, здесь не получится смоделировать вероятности типа 25% - тогда нужно будет использовать числа хотя бы из 0..19, ну и т.д. -------------------- qqq |
|||
|
||||
| chaosty |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
Допер) на самом деле все проще, просто делаем еще один массив, из 100 элементов, заполняем его Ключами первого массива в соотношении %
тоесть к примеру $arr[0] - $arr[50] будет равнятся 1, с 50 по 70 будет 2 ну и так далее.. потом просто берем рандом от 0 до 100, и получаем % срабатывания.. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Зачем? делаем просто массив соответствия вероятностей: конвертируется в 0 - from 0 to 0.5 1 - from 0.5 to 0.7 2 - from 0.7 to 0.9 3 - from 0.9 to 1 и смотри, куда попал очередной rnd() -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| chaosty |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
я массив указал просто для вида, он может быть и на 50 записей, проценты могут быть любыми. то есть задается динамически.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
а какая разница? и вообще - какого рожна проценты? что, трудно в доли пересчитать? тогда делаешь сумму с накоплением - и ты в шоколаде. PS. А будешь планировать на целые значения - не забывай о завалах RND по краям, а то ждут тебя сюрпризы -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |