WTR さんの書き込みで、解決していますが、
質問されたことに、回答しておきます。
代わりに
Math.floor(Math.random() * (Max - Min + 1) + Min)
の式を使ってする場合は
誤差に左右されずに最小値と最大値を決めて
その間の乱数を出してくれるということでしょうか?
いいえ。
この場合でも、丸め誤差によって、本来出ないはずの上限値がでる可能性はあります。
WTRさんの検証結果のように、ほぼ、出ないと言っていいような確率ですが。
見た感じだと
Maxに最大値
Minに最小値
を入れればいいのでしょうか?
1~10にしたい場合は ...
検索結果 22 件
- 2021年6月28日(月) 14:59
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
- 2021年6月28日(月) 14:47
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
Re: (Math.random() * 3) + 1について
回答ありがとうございますWTR さんが書きました:すみません、カッコが余計でしたコード: 全て選択
Math.floor(Math.random() * 5 + 16)
そちらの式でダメージが通りました
何度かテストで使った感じでも
上限を超えて出ることはないので恐らく大丈夫だと思います
どこで式を使うかによって仕様が色々違うんですね
勉強になります
とても助かりました
ありがとうございます
- 2021年6月28日(月) 14:35
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
Re: (Math.random() * 3) + 1について
回答ありがとうございますWTR さんが書きました:ダメージ計算式は Math.floor ではなく Math.round 処理が入っていました。
よく見たわけじゃないですが端数切捨てではなく四捨五入なので超えることがありそうですね。
とはいえお手上げ…というほどの話ではなくとすればいいだけではないでしょうか。コード: 全て選択
Math.floor(Math.random() * 5) + 16)
今その式でテストしたところ
”モンスター名”にダメージを与えられない
という風に出てしまいました
そのままコピーペーストしたので式の間違いはないと思うのですが・・・
- 2021年6月28日(月) 14:21
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
Re: (Math.random() * 3) + 1について
こんにちは。
横から失礼します。
(Math.random() * 6) + 25
この式で何度かしていたのですが
基本は上記にある解釈通り
6 + 25 = 31 - 1 = 30
つまり25~30がほとんどだったのが
たまに31になることがありました
恐らく、浮動小数点の丸め誤差によるものです。
コンピュータでは、数値を2進法で表す関係上、小数点をうまく表すことができずに、誤差が生じることがあります。
このため、浮動小数点数を含んだ計算結果が正確な数値にならない可能性があります。
例えば、
a = 0.999999999999999999 * 6
という計算式を実行して ...
横から失礼します。
(Math.random() * 6) + 25
この式で何度かしていたのですが
基本は上記にある解釈通り
6 + 25 = 31 - 1 = 30
つまり25~30がほとんどだったのが
たまに31になることがありました
恐らく、浮動小数点の丸め誤差によるものです。
コンピュータでは、数値を2進法で表す関係上、小数点をうまく表すことができずに、誤差が生じることがあります。
このため、浮動小数点数を含んだ計算結果が正確な数値にならない可能性があります。
例えば、
a = 0.999999999999999999 * 6
という計算式を実行して ...
- 2021年6月28日(月) 14:16
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
Re: (Math.random() * 3) + 1について
つまり25~30がほとんどだったのが
たまに31になることがありました
そんなはずはないと思いますが…
Math.random() * 6 は最大で0.99... * 6 = 5.99...
これに 25 を足しても 30.99... にしかなりません。切り捨てれば30にしかならないはずです。
やっていることをそのまま全部見せてもらえれば確認できると思います。
変数の操作ではないのですかね?
回答ありがとうございます
やってることはスキルの計算式に入れて
そのスキルを使ったときに
(Math.random() * 6) + 25
つまり25~30がほとんどだったのが ...
たまに31になることがありました
そんなはずはないと思いますが…
Math.random() * 6 は最大で0.99... * 6 = 5.99...
これに 25 を足しても 30.99... にしかなりません。切り捨てれば30にしかならないはずです。
やっていることをそのまま全部見せてもらえれば確認できると思います。
変数の操作ではないのですかね?
回答ありがとうございます
やってることはスキルの計算式に入れて
そのスキルを使ったときに
(Math.random() * 6) + 25
つまり25~30がほとんどだったのが ...
- 2021年6月28日(月) 11:42
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
Re: (Math.random() * 3) + 1について
//40~100までの乱数を発生させる
Math.floor( Math.random() * 61) + 40
→Math.floorの部分はあってもなくても影響なしと思われる
あってもなくても影響ないのはゲーム変数に入れたときだけです。
イベントコマンドの変数の操作で代入するとき
内部的には setValue() というメソッドが呼ばれますが、このメソッドが実は Math.floor() を一緒にやっています。
変数1にMath.random() * 5
変数2にMath.random() * 5
を入れた場合、変数1も変数2もどちらも切り捨て処理されて最大値が 4 になるため ...
Math.floor( Math.random() * 61) + 40
→Math.floorの部分はあってもなくても影響なしと思われる
あってもなくても影響ないのはゲーム変数に入れたときだけです。
イベントコマンドの変数の操作で代入するとき
内部的には setValue() というメソッドが呼ばれますが、このメソッドが実は Math.floor() を一緒にやっています。
変数1にMath.random() * 5
変数2にMath.random() * 5
を入れた場合、変数1も変数2もどちらも切り捨て処理されて最大値が 4 になるため ...
- 2021年6月28日(月) 10:37
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
Re: (Math.random() * 3) + 1について
(Math.random() * 5) + 16
で16~20になります。
(Math.random() * 20) + 16
だと16~35が範囲になりますね。
http://rpgmaker-script-wiki.xyz/mvscriptwiki.php#7
こちらの「変数の操作」項目で解説されています。
回答ありがとうございます
昔から算数や数学がどうしても苦手で
この手の計算式がなかなか理解できないもので
回答いただいたものやリンク先を見て
自分なりに解釈したので掲載します
(Math.random() * 20) + 16
を例にします ...
で16~20になります。
(Math.random() * 20) + 16
だと16~35が範囲になりますね。
http://rpgmaker-script-wiki.xyz/mvscriptwiki.php#7
こちらの「変数の操作」項目で解説されています。
回答ありがとうございます
昔から算数や数学がどうしても苦手で
この手の計算式がなかなか理解できないもので
回答いただいたものやリンク先を見て
自分なりに解釈したので掲載します
(Math.random() * 20) + 16
を例にします ...
- 2021年6月26日(土) 03:01
- フォーラム: MV:質問
- トピック: 【WTR様により解決済み】(Math.random() * 3) + 1について
- 返信数: 15
- 閲覧数: 5433
【WTR様により解決済み】(Math.random() * 3) + 1について
ステータスを参照しないで乱数ダメージを与えたくて調べたら
(Math.random() * 3) + 1
を見つけたました
1~3の中からランダムでダメージを与える
と書いてある通りだったのですが
(Math.random() * 20) + 16
にした場合
16~20の間で収まらず20を超えてしまう(26など)のですがなぜでしょうか?
よろしくお願いします
(Math.random() * 3) + 1
を見つけたました
1~3の中からランダムでダメージを与える
と書いてある通りだったのですが
(Math.random() * 20) + 16
にした場合
16~20の間で収まらず20を超えてしまう(26など)のですがなぜでしょうか?
よろしくお願いします
- 2021年6月26日(土) 02:48
- フォーラム: MV:質問
- トピック: 【Plasma Dark様により解決済み】ステート有効度について
- 返信数: 4
- 閲覧数: 2597
Re: ステート有効度について
Game_Action.prototype.itemEffectAddNormalState
というのが何なのかがわかりません
これは一旦気にしなくても問題ありません。
js/rpg_objects.js に書かれた、ステート付与成否の判定処理コードのことです。
エネミーによっては魔法回避率を設定してます
なので魔法攻撃にすると恐らくその確率が判定になってしまうのではないでしょうか?
物理攻撃の場合は命中率と回避率で判定されると書いてあるのですが
それは通常攻撃(所謂スキルID1)などで使われている命中率と回避率の判定になってしまうんでしょうか?
仰るとおりです ...
というのが何なのかがわかりません
これは一旦気にしなくても問題ありません。
js/rpg_objects.js に書かれた、ステート付与成否の判定処理コードのことです。
エネミーによっては魔法回避率を設定してます
なので魔法攻撃にすると恐らくその確率が判定になってしまうのではないでしょうか?
物理攻撃の場合は命中率と回避率で判定されると書いてあるのですが
それは通常攻撃(所謂スキルID1)などで使われている命中率と回避率の判定になってしまうんでしょうか?
仰るとおりです ...
- 2021年6月25日(金) 16:42
- フォーラム: MV:質問
- トピック: 【Plasma Dark様により解決済み】ステート有効度について
- 返信数: 4
- 閲覧数: 2597
Re: ステート有効度について
使用スキルが必中になっていませんか?
ステート付与の判定は Game_Action.prototype.itemEffectAddNormalState に書かれています。
ステート有効度は判定の際に、付与の確率に対してかかる倍率なので、0であればそのステートにかかりません。
(また、この有効度のあとで運の差による耐性倍率もかかるため、有効度を50%としたからと言って、50%でステートにかかるというわけではありません)
ただし、ステートを付与する行動が 必中 である場合は、この有効度を無視して、行動に設定されたステート付与確率で判定を行います。
回答ありがとうございます
Game ...
ステート付与の判定は Game_Action.prototype.itemEffectAddNormalState に書かれています。
ステート有効度は判定の際に、付与の確率に対してかかる倍率なので、0であればそのステートにかかりません。
(また、この有効度のあとで運の差による耐性倍率もかかるため、有効度を50%としたからと言って、50%でステートにかかるというわけではありません)
ただし、ステートを付与する行動が 必中 である場合は、この有効度を無視して、行動に設定されたステート付与確率で判定を行います。
回答ありがとうございます
Game ...