Это действительно больше вопрос подхода, но я представляю его в php.
Предположим, у нас был список из четырех процентов того, что на итерации будет происходить событие Give.
array=('walk the dog'=>.25,'read the paper'=>.25,'drink coffee'=>.0,'listen to music'=>.50)
(Ключи - это просто тесты - на практике это будет использоваться в шаблоне стратегии, который применяет различные методы к случайному объекту, используя call_user_func()
)
В цикле, что было бы лучшим способом выбрать одно из этих событий путем случайной корректировки выбора с учетом их соответствующих весов (т. Е. Для этой конкретной конфигурации будет прослушиваться много музыки, а не много кофе выпил)
В настоящее время у меня есть что-то вроде:
for($i=1;$i<=3;$i++){
$rand = 1/rand(1,10);
//choose from the list
}
Но для этого потребуется сопоставить проценты с диапазонами значений (50-100% становятся слушающими музыку, 0-25% выгуливают собаку и 25-50 читают газету), поскольку «значение» для этой итерации рассчитывается как Число с плавающей запятой от 0 до 1. Этот тип изменяет способ записи процентов.
Существует ли какой-либо подход, который бы сохранял идентичность значений в качестве реальной вероятности их выбора, а не диапазонов? Это определенно сделало бы код более настраиваемым, так как я должен сделать эти значения регулируемыми. Пожалуйста, дайте мне знать, если я был слишком расплывчатым.