2017-11-22 6 views
-2

以下のコードスニペットを使用して0から10までの乱数を生成できますが、他の任意の数と比較すると0と1の頻度を少なくします。JavaScriptで乱数を生成しますが、あまり頻繁でない数字はありません

Math.floor(Math.random() * 10) 

誰かが私に外部条件なしで解決策を提供してくれれば素晴らしいと思います。

+4

あなたは何を試してみましたか? 「外部条件」とはどういう意味ですか? –

+4

[ヘルプ]、特に[*どのように良い質問をしますか*](/ help/how-to-ask)を読んでください。そう、それを行ってください。 ***もし***あなたが立ち往生して、より多くの研究と検索をした後、元気が出ることができないなら、あなたの試みの[mcve]を投稿し、あなたがどこにいるのかを具体的に言う。人々は喜んで助けてくれるでしょう。がんばろう! –

+0

結果が0または1の場合、特に最後の15回に0または1が発生した場合は、結果の数値に条件を保持し、ランダムジェネレータを起動したくないです。 – KrishnaTeja

答えて

1

あなたは18の要因とそれの10で休息を取る2のオフセットでformularを取ることによって、数字の残りの半分と01の確率を取ることができます。

Math.floor(Math.random() * 18 + 2) % 10; 

結果はこのようなものです:

var i, 
 
    count = {}, 
 
    index; 
 

 
for (i = 0; i < 1e6; i++) { 
 
    index = Math.floor(Math.random() * 18 + 2) % 10; 
 
    count[index] = (count[index] || 0) + 1; 
 
} 
 

 
console.log(count);
.as-console-wrapper { max-height: 100% !important; top: 0; }

関連する問題