よく見たわけじゃないですが端数切捨てではなく四捨五入なので超えることがありそうですね。
とはいえお手上げ…というほどの話ではなく
コード: 全て選択
Math.floor(Math.random() * 5) + 16)
コード: 全て選択
Math.floor(Math.random() * 5) + 16)
回答ありがとうございますWTR さんが書きました:ダメージ計算式は Math.floor ではなく Math.round 処理が入っていました。
よく見たわけじゃないですが端数切捨てではなく四捨五入なので超えることがありそうですね。
とはいえお手上げ…というほどの話ではなくとすればいいだけではないでしょうか。コード: 全て選択
Math.floor(Math.random() * 5) + 16)
コード: 全て選択
Math.floor(Math.random() * 5 + 16)
回答ありがとうございますWTR さんが書きました:すみません、カッコが余計でしたコード: 全て選択
Math.floor(Math.random() * 5 + 16)
いいえ。nekunyan さんが書きました: 代わりに
Math.floor(Math.random() * (Max - Min + 1) + Min)
の式を使ってする場合は
誤差に左右されずに最小値と最大値を決めて
その間の乱数を出してくれるということでしょうか?
合っています。 ((10-1+1) は 自身で計算できるはずなので計算したほうがいいと思いますが)見た感じだと
Maxに最大値
Minに最小値
を入れればいいのでしょうか?
1~10にしたい場合は
Math.floor(Math.random() * (10 - 1 + 1) + 1)
回答ありがとうございますecf5DTTzl6h6lJj02 さんが書きました:WTR さんの書き込みで、解決していますが、
質問されたことに、回答しておきます。いいえ。nekunyan さんが書きました: 代わりに
Math.floor(Math.random() * (Max - Min + 1) + Min)
の式を使ってする場合は
誤差に左右されずに最小値と最大値を決めて
その間の乱数を出してくれるということでしょうか?
この場合でも、丸め誤差によって、本来出ないはずの上限値がでる可能性はあります。
WTRさんの検証結果のように、ほぼ、出ないと言っていいような確率ですが。
合っています。 ((10-1+1) は 自身で計算できるはずなので計算したほうがいいと思いますが)見た感じだと
Maxに最大値
Minに最小値
を入れればいいのでしょうか?
1~10にしたい場合は
Math.floor(Math.random() * (10 - 1 + 1) + 1)