Как сделать так, чтобы четные числа были случайными или случайными? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь сделать чётные числа случайными или случайными, есть идеи? Я попытался поместить его в массив, но он слишком усложнился слишком быстро.

<html>
  <head>

    <script>

      function printEvenNums()

      {
                var start = document.getElementById("start").value;
        var end = document.getElementById("slut").value;
        var evenNums = "<br>Jämna nummer:<br>";

        for(i=start; i<=end; i++)
        {

          if(i % 2 == 0)
          {
            evenNums += i + "<br>";
          }
        }

        document.getElementById("result").innerHTML = evenNums;
      }

    </script>

  </head>
  <body>
    <h3>Grisen kan programera :)</h3>
    Start: <input type="number" min="0" id="start" value="1" />
    Slut: <input type="number" id="slut" min="1" value="20" />
    <input type="button" onclick="printEvenNums()" value="Få fram jämna nummer" />
    <div id="result"></div>
  </body>
</html> 

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Учтите, что это ваш массив четных чисел

var array=[2,4,6,12,8,10];

Кроме того, я создал метод генерации случайного числа в диапазоне. получил от здесь

function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

Использование вышеупомянутого

var randomArray=[];

    while(array.length>0)
    {
        var random=getRandomInt(0,array.length-1);
        randomArray.push(array[random]);
        array.splice(array.indexOf(array[random]),1);

    }
    console.log(randomArray)

Примечание: Это просто алгоритм, который вы можете использовать для рандомизации массива. Отдых у вас измените его под ваши требования

0 голосов
/ 24 апреля 2020

Вставьте четное число в случайную позицию массива результатов.

Подсказки:

  • на Math.random() * x, чтобы сгенерировать случайное число, меньшее x.
  • используйте Math.floor(), чтобы сделать случайное число целым числом.
  • с помощью splice() массива, вы можете вставить элемент в массив в нужной позиции.

function printEvenNums() {
  var start = parseInt(document.getElementById("start").value);
  var end = parseInt(document.getElementById("slut").value);
  var evenNums = "<br>Jämna nummer:<br>";

  var evens = [];
  for (var i=start+start%2, j=2; i<=end; i+=2, j++) {
    let posi = Math.floor(Math.random()*j);
    evens.splice(posi,0, i);
  }
  document.getElementById("result").innerHTML = evenNums+evens.join('<br>');
}
<html>
  <head>
  </head>
  <body>
    <h3>Grisen kan programera :)</h3>
    Start: <input type="number" min="0" id="start" value="1" />
    Slut: <input type="number" id="slut" min="1" value="20" />
    <input type="button" onclick="printEvenNums()" value="Få fram jämna nummer" />
    <div id="result"></div>
  </body>
</html> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...