процентный шанс 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. Этот тип изменяет способ записи процентов.

Есть ли какой-либо подход, который бы сохранял идентичность значений как реальную вероятность их выбора, а не диапазонов? Это определенно сделало бы код более настраиваемым, так как я должен сделать эти значения регулируемыми. Пожалуйста, дайте мне знать, если я был слишком расплывчатым.

Ответы на вопрос(4)

Ваш ответ на вопрос