Всякий раз, когда мне нужно, чтобы что-то произошло на основе фиксированной вероятности, я обычно имею дело с точкой с плавающей точкой между 0 и 1, аналогично Math.random()
выводит случайное значение.
Я получаю повторно Вы написали свою программу для учета вероятностей, но, если хотите, нет ничего плохого в работе с процентами. Я просто думаю, что умножение на 100 не очень полезно, и это не делает программу более читабельной (по крайней мере, для меня).
Есть одно отличное видео, которое я долго смотрел, go, которое описывает это сама концепция.
Основы вероятности - природа кода Автор: Дэниел Шиффман (YouTube)
var desiredRecord = 0.8; // 1: record everything,
// 0: record nothing
var check = Math.random(); // check will be anywhere between 0 and 1
if (check > desiredRecord) { // will be true if check is between 0.81 and 0.99
// but false if check is below 0.8
// which is more probable since 80 is the
// majority or the percentile
disable_recording();
}
Приведенный выше код будет работать и большую часть времени, disable_recording()
не вызывается, так как, скорее всего, функция random()
выведет значения меньше 0,8. Но иногда (в 20% случаев) функция вызывается.