Подсчет вхождений целого числа из случайного результата - PullRequest
3 голосов
/ 16 января 2020

Я довольно новичок в кодировании и у меня есть такая практика, которую я не могу понять в последней части. Я бросаю три кубика и должен посчитать, сколько суммарных значений семерок я получу при 1000-м броске. Должен ли я создать массив? намек был дан на создание счетчика переменной. Но я не могу найти никакого решения. Я знаю, это должно быть что-то простое. Мне нужно ваше руководство!

var getRandomInt = function(x) {
    var result = 0;
    result = Math.floor((Math.random() * x) + 1);
    return result;
};

//variables I need
var diceOne = 0;
var diceTwo = 0;
var diceThree = 0;
var diceSum = 0;
var roll = 0;
var average = 0;


for (var i = 1; i <= 1000; i++) {

    //Simulate a Dice Roll

    diceOne = getRandomInt(6);
    diceTwo = getRandomInt(6);
    diceThree = getRandomInt(6);
    roll = roll + 1;
    diceSum = diceOne + diceTwo + diceThree;
    average += diceSum / 1000;

    console.log("Roll #" + roll);
    console.log("Value of Dice 1 is " + diceOne);
    console.log("Value of Dice 2 is " + diceTwo);
    console.log("Value of Dice 3 is " + diceThree);
    console.log("The Sum of the Dice is " + diceSum);


    // Announce average and count of 7s

    if (i == 1000) {
        console.log("The Average is " + average);


    }

}

Ответы [ 3 ]

3 голосов
/ 16 января 2020

Если вам нужно посчитать, сколько 3 кубиков сложить до 7, вы можете создать переменную, чтобы отслеживать это.

Внутри вашего l oop вы увеличиваете его на единицу каждый раз diceSum равно 7.

var getRandomInt = function(x) {
    var result = 0;
    result = Math.floor((Math.random() * x) + 1);
    return result;
};

//variables I need
var diceOne = 0;
var diceTwo = 0;
var diceThree = 0;
var diceSum = 0;
var roll = 0;
var average = 0;
var sevenCount = 0;


for (var i = 1; i <= 1000; i++) {

    //Simulate a Dice Roll

    diceOne = getRandomInt(6);
    diceTwo = getRandomInt(6);
    diceThree = getRandomInt(6);
    roll = roll + 1;
    diceSum = diceOne + diceTwo + diceThree;
    average += diceSum / 1000;

    console.log("Roll #" + roll);

    console.log("The Sum of the Dice is " + diceSum);
    if(diceSum === 7){
      sevenCount = sevenCount + 1;
    }

    // Announce average and count of 7s

    if (i == 1000) {
        console.log("The Average is " + average);
        console.log("The seven count is " + sevenCount);
    }
}
0 голосов
/ 16 января 2020

Тебе не нужен счетчик бросков, потому что ты равняешь oop столько же, а тебе нужен счетчик для семерок. А вы можете взять переменную для sum и вычислить позже среднее значение. Это лучше с точки зрения числовой точности.

В конце покажите результат среднего и числа семерок.

var getRandomInt = function(x) {
        return Math.floor((Math.random() * x) + 1);
    },
    sum = 0,
    average = 0,
    sevens = 0;

for (var i = 1; i <= 1000; i++) {
    let diceSum = getRandomInt(6) + getRandomInt(6) + getRandomInt(6);
    sevens += diceSum === 7;
    sum += diceSum;
}

average = sum / 1000;
console.log("The Average is " + average);
console.log("The Count of Sevens " + sevens);
0 голосов
/ 16 января 2020

Они учат вас чему-то, что на самом деле очень полезно знать.

У вас нет , чтобы запомнить все значения для вычисления среднего или числа 7 с. Вам нужно только посчитать, сколько 7 вы видели, и сохранить другие переменные, которые являются суммой всех значений, которые вы видели.

Редактировать: если вы хотите посчитать количество 7, которые вы видели, вам нужно создать переменную, скажем count_7s, и каждый раз, когда вы видите 7, вы увеличиваете count_7s = count_7s + 1.

...