私は乱数xを返すために乱数ジェネレータを使用します。他の計算にはxが必要なので、xは数字でなければなりません。私がisNaNメソッドを使用したことを確認する。したがって、私のループは、xが数字ではないので、長い間実行されるべきです。 しかし、ループは時々(ランダムに) "NaN"を返すので、isNaNメソッドは適切に機能していないようです。 あなたの誰かが賢いアイデアを持っているのですか?isNaNメソッドは、noneに対してtrueを返しません。
do {
do {
a = 2.0 * Math.random() - 1;
b = 2.0 * Math.random() - 1;
q = a * a + b * b;
} while (q === 0 && q >= 1)
p = Math.sqrt((-2 * Math.log(q))/q);
x = a * p;
} while (x <= -5.4 && isNaN(x))
return x;
他のすべての言語と同じように動作する場合、 'isNaN'は数値でないものに対してはtrueを返しません。これは文字列 'NaN'に対して真を返します。 'null'は' NaN'ではないので、falseを返します。 – Carcigenicate
'while(q === 0 && q> = 1)' - それとも? (また、すべての計算には何がありますか?xとyの間の乱数を返すのは普通1ライナーですが、関数の実際の出力はどうですか? – nnnnnn
これはnull、0/0、誰かを見つけるためにconsole.logを実行します.... –