1. ホーム
  2. javascript

[解決済み] JSがランダムなブール値を生成

2022-02-02 13:11:54

質問

単純な質問ですが、ここのニュアンスに興味があります。

自分で思いついた以下の方法でランダムなブーリアンを生成しています。

const rand = Boolean(Math.round(Math.random()));

いつ random() が現れると、必ず落とし穴があるようです。本当のランダムではない、何か他のものに邪魔されている、などなど。 そこで、教えていただきたいのですが。

a) 上記はベストプラクティスの方法でしょうか?

b) 私は考えすぎているのでしょうか?

c) 私は考えが足りないのだろうか?

d) 私の知らない、より良い、より速い、より優雅な方法があるのだろうか?

(また、BとCが相互に排他的である場合、多少興味があります)。

更新情報

もし違いがあれば、私はこれをAIキャラクターの動きに使っています。

解決方法は?

比較することができます。 Math.random() から 0.5 の範囲として、直接 Math.random()[0, 1) (これは「0を含む0から1の範囲で、1ではない」という意味です)。この範囲を分割して [0, 0.5)[0.5, 1) .

var random_boolean = Math.random() < 0.5;

// Example
console.log(Math.random() < 0.1); //10% probability of getting true
console.log(Math.random() < 0.4); //40% probability of getting true
console.log(Math.random() < 0.5); //50% probability of getting true
console.log(Math.random() < 0.8); //80% probability of getting true
console.log(Math.random() < 0.9); //90% probability of getting true