2017-12-26 15 views
2

1から13の間の乱数を生成しています。これは問題なく動作します。私がしたいことは直前の番号と同じ番号を生成しません。だから、setInterval関数でMath.randomを使って以前にランダムに生成された数を見つける方法は?

function showRandomDotIcon() { 
    var randomDot = Math.floor(Math.random() * 13) + 1; 
    console.log(randomDot); 
} 

setTimeout(showRandomDotIcon, 3500); 

のようなもの:あなたが最後のランダムな値上closureを取ると、それに対してチェックでき

if(randomDot == previousDot) { 
    // skip to next number 
} 

答えて

4

function showRandomDotIcon() { 
 
    var last; 
 
    return function() { 
 
     var randomDot; 
 

 
     do { 
 
      randomDot = Math.floor(Math.random() * 13) + 1; 
 
     } while (last === randomDot) 
 
     last = randomDot; 
 
     console.log(randomDot); 
 
    }; 
 
} 
 

 
setInterval(showRandomDotIcon(), 1000);

+0

感謝感謝ニーナ、。 –

+0

数学ノート:リピートをスキップすると、イベントが予測しやすくなり、ランダム性が低下します。あなたがコイン投げのような2進の確率的結果でこのアプローチをとったとしたら、想像してみてください。 – Faust

関連する問題