процентный шанс php
Это действительно больше вопрос подхода, но я представляю это в php.
Предположим, у нас был список из четырех процентов, что событие итера будет происходить на итерации.
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. Этот тип изменяет способ записи процентов.
Есть ли какой-либо подход, который бы сохранял идентичность значений как реальную вероятность их выбора, а не диапазонов? Это определенно сделало бы код более настраиваемым, так как я должен сделать эти значения регулируемыми. Пожалуйста, дайте мне знать, если я был слишком расплывчатым.