ページ 2 / 2
Re: (Math.random() * 3) + 1について
Posted: 2021年6月28日(月) 14:29
by WTR
ダメージ計算式は Math.floor ではなく Math.round 処理が入っていました。
よく見たわけじゃないですが端数切捨てではなく四捨五入なので超えることがありそうですね。
とはいえお手上げ…というほどの話ではなく
コード: 全て選択
Math.floor(Math.random() * 5) + 16)
とすればいいだけではないでしょうか。
Re: (Math.random() * 3) + 1について
Posted: 2021年6月28日(月) 14:35
by nekunyan
WTR さんが書きました:ダメージ計算式は Math.floor ではなく Math.round 処理が入っていました。
よく見たわけじゃないですが端数切捨てではなく四捨五入なので超えることがありそうですね。
とはいえお手上げ…というほどの話ではなく
コード: 全て選択
Math.floor(Math.random() * 5) + 16)
とすればいいだけではないでしょうか。
回答ありがとうございます
今その式でテストしたところ
”モンスター名”にダメージを与えられない
という風に出てしまいました
そのままコピーペーストしたので式の間違いはないと思うのですが・・・
Re: (Math.random() * 3) + 1について
Posted: 2021年6月28日(月) 14:38
by WTR
すみません、カッコが余計でした
コード: 全て選択
Math.floor(Math.random() * 5 + 16)
Re: (Math.random() * 3) + 1について
Posted: 2021年6月28日(月) 14:47
by nekunyan
WTR さんが書きました:すみません、カッコが余計でした
コード: 全て選択
Math.floor(Math.random() * 5 + 16)
回答ありがとうございます
そちらの式でダメージが通りました
何度かテストで使った感じでも
上限を超えて出ることはないので恐らく大丈夫だと思います
どこで式を使うかによって仕様が色々違うんですね
勉強になります
とても助かりました
ありがとうございます
Re: (Math.random() * 3) + 1について
Posted: 2021年6月28日(月) 14:51
by ecf5DTTzl6h6lJj02
WTR さんの書き込みで、解決していますが、
質問されたことに、回答しておきます。
nekunyan さんが書きました:
代わりに
Math.floor(Math.random() * (Max - Min + 1) + Min)
の式を使ってする場合は
誤差に左右されずに最小値と最大値を決めて
その間の乱数を出してくれるということでしょうか?
いいえ。
この場合でも、丸め誤差によって、本来出ないはずの上限値がでる可能性はあります。
WTRさんの検証結果のように、ほぼ、出ないと言っていいような確率ですが。
見た感じだと
Maxに最大値
Minに最小値
を入れればいいのでしょうか?
1~10にしたい場合は
Math.floor(Math.random() * (10 - 1 + 1) + 1)
合っています。 ((10-1+1) は 自身で計算できるはずなので計算したほうがいいと思いますが)
Re: (Math.random() * 3) + 1について
Posted: 2021年6月28日(月) 14:59
by nekunyan
ecf5DTTzl6h6lJj02 さんが書きました:WTR さんの書き込みで、解決していますが、
質問されたことに、回答しておきます。
nekunyan さんが書きました:
代わりに
Math.floor(Math.random() * (Max - Min + 1) + Min)
の式を使ってする場合は
誤差に左右されずに最小値と最大値を決めて
その間の乱数を出してくれるということでしょうか?
いいえ。
この場合でも、丸め誤差によって、本来出ないはずの上限値がでる可能性はあります。
WTRさんの検証結果のように、ほぼ、出ないと言っていいような確率ですが。
見た感じだと
Maxに最大値
Minに最小値
を入れればいいのでしょうか?
1~10にしたい場合は
Math.floor(Math.random() * (10 - 1 + 1) + 1)
合っています。 ((10-1+1) は 自身で計算できるはずなので計算したほうがいいと思いますが)
回答ありがとうございます
一つの答えを出すにも
様々な式があるのですね
まだまだわからないことだらけなので
教えていただいたことをうまく使っていけるようになりたいと思います
ありがとうございます