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