Как понизить шанс выпадения числа? Например у нас есть числа от 0 до 15. Я делаю getrandomint(0,15) и получаю рандомное число из этой выборки. Но тут при определенных условиях мне нужно понизить шанс выпадени цифер от 1 до 7. Т.е мне так же нужно рандомное число от 0 до 15, но что бы шанс выпадения чисел от 1 до 7 был меньше. Первое что пришло в голову это заполнять массив этими числами и делать рандомную выбору уже оттуда, но эта идея не очень хорошо работала. Может предложите свой алгоритм реализации? Можно и с массивом, но что бы работало)
Один из способов понизить шанс выпадения чисел от 1 до 7 - это отфильтровать эти числа из доступной выборки и делать выбор из оставшихся чисел. Например, вы можете сгенерировать случайное число от 0 до 15, и если это число попадает в диапазон от 1 до 7, то генерировать его заново. Таким образом, вы уменьшите шанс выпадения чисел от 1 до 7.
Пример на JavaScript:
function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } function getRandomNumberWithLowerChance(min, max, lessChanceRange) { let randomNumber = getRandomInt(min, max); while (lessChanceRange.includes(randomNumber)) { randomNumber = getRandomInt(min, max); } return randomNumber; } const min = 0; const max = 15; const lessChanceRange = [1, 2, 3, 4, 5, 6, 7]; console.log(getRandomNumberWithLowerChance(min, max, lessChanceRange));
Этот код сначала генерирует случайное число от 0 до 15, а затем проверяет, не попадает ли оно в диапазон чисел от 1 до 7. Если число попадает в этот диапазон, то генерируется новое число.
Один из способов понизить шанс выпадения чисел от 1 до 7 - это отфильтровать эти числа из доступной выборки и делать выбор из оставшихся чисел. Например, вы можете сгенерировать случайное число от 0 до 15, и если это число попадает в диапазон от 1 до 7, то генерировать его заново. Таким образом, вы уменьшите шанс выпадения чисел от 1 до 7.
Пример на JavaScript:
function getRandomInt(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min;
}
function getRandomNumberWithLowerChance(min, max, lessChanceRange) {
let randomNumber = getRandomInt(min, max);
while (lessChanceRange.includes(randomNumber)) {
randomNumber = getRandomInt(min, max);
}
return randomNumber;
}
const min = 0;
const max = 15;
const lessChanceRange = [1, 2, 3, 4, 5, 6, 7];
console.log(getRandomNumberWithLowerChance(min, max, lessChanceRange));
Этот код сначала генерирует случайное число от 0 до 15, а затем проверяет, не попадает ли оно в диапазон чисел от 1 до 7. Если число попадает в этот диапазон, то генерируется новое число.