数学が好きなサラリーマンのブログ

数学が好きなサラリーマンのブログです。数学ネタから大学受験数学、ビジネスやライフスタイルまで数学が好きなサラリーマンの頭の中を大公開しています。

FORTNITEで計算演習


ボクはいい年をしていまだにゲームをしているような人間だ。中でもフFORTNITEには結構はまっている。今回は、そのFORTNITE(通称フォトナ)と数学、というか計算について細やかながら語ってみたい。というか、暗算力鍛えるゲームという解釈をしてみたい。

 

FORTNITEは、100人から始まって最後の一人に生き残ることを目指すバトルロイヤルゲームだ。ゲームモードにもよるが、基本的にはMAX200のゲージを0にすることで他の参加者を倒すことができる。与えることができるダメージは、武器とそのレアリティ、或いは当たる箇所(ヘッドかそれ以外)によって異なっている。

 

以前は1発で200を超えるダメージを与えることができる武器があったが、今は必ず複数回のダメージを与えないと倒せない仕様になっている。

 

例えば、とあるショットガンとサブマシンガンで戦うときのダメージを考えてみよう。
それぞれ武器の威力は、以下のとおりとする。
ショットガン:ヘッド→170 ヘッド以外→96
サブマシンガン:ヘッド→24 ヘッド以外→16
これだけみるとショットガンだけ使えばいいじゃないかと思うかもしれないが、一発撃った後次の弾が撃てるようになるまでの時間が異なり、基本的にショットガンは間隔がそれなりに空いてしまう一方で、サブマシンガンは連射することができるので、ショットガンを撃ったあとサブマシンガンに持ち替えて撃つことが(状況にもよるけど)一般的だ。
※ちなみにこのゲームは、相手に弾があたるとどれだけダメージを与えることができたか表示されるようになっている。

 

1発目にショットガンでヘッドショットが決まり、170のダメージを与えられたとしよう。
すると残り30与えればいい。サブマシンガンに持ち替えると、ヘッドでも1発では24で0にはできないので、2発撃つ必要がある。逆に2発撃つならヘッド以外でも32なので倒すことができる。つまりいつでもヘッドショットを狙う必要なんてなく、こんなときには当てればいいという感覚で十分だとわかる。先述した通り、画面には与えたダメージが表示され、まるでフラッシュ暗算が強いられるような状態になるけど、2,3発程度ならば容易いはずだ。

 

1発目にショットガンでヘッドショットは決まらず、96のダメージを与えた場合を考える。
残りは104ダメージ与えればいい。サブマシンガンで全部ヘッドだと5発(120)必要で、それ以外だと7発(112)必要となる。

 

さてちょっとここで立ち止まってみよう。いま、さらっと「サブマシンガンで全部ヘッドだと5発(120)必要で、それ以外だと7発(112)必要となる。」と書いたけど、この計算さくっとできるだろうか。そりゃ”さくっと”瞬間的でなければ多くの人ができるに違いない。フラッシュ暗算のような速さでなくても、「えーと」って言葉を発している間くらいには答えを得たい。

 

ここで気を付けたいのは、腕力のように計算力を捉えて頭の中で計算するスピードをあげようとしないことだ。それはそれで効果があるのかもしれないけど、あまりおもしろいものじゃない。

 

全部ヘッドの場合から考え直してみる。
24のダメージを何回当てたら104を超えるだろうか。日常生活的に25×4=100は覚えている人は多いはずだ(もし覚えていなかったら、これは覚えておきたい。英語でもquarterって単語が与えられている程有益な単位数だ)。25は当然24より1多いわけだけど、そんなちょっと多い数25が4つでも100で104には届かない。でも、もう一つあれば125で余裕だ。24ならば、塊ごとに1少ないだけなので、5セットならば勿論5少なくなる。
ということで、5発必要なことがわかって、もうほんのり考えると120という具体的な数字が計算できるはずだ。ゆめゆめ104÷24なんて計算をしてはいけない。

 

次に、全部ヘッドに当たらない場合を考える。
16のダメージを何回当てたら104を超えるだろうか。ここで使うのは、16=2^4ということだ。さっきの25が有名単位であるように、2の累乗も10乗くらいまでは抑えておきたい。PCやスマホ関連で容量を考えるとき、2の累乗は頻発する。iphoneのストレージ容量は、以前は16GB、32GBからあって(いまは64GB)、上は512GBや1TB(1024GB)まで存在する。これらはすべて2の累乗になっているからどことなく馴染みのある数字なはずだ。

 

104に近い2の累乗を考えると、64よりは大きくて128よりは小さい。配置を考えると、128よりの数だ。128から16を引くと112で、さらに引くと104を割り込んでしまう。
ということで、

$$128-16=2^7-2^4=2^4(2^3-1)=16×7$$

から7発必要でダメージは112とわかる。

 

こんな計算簡単じゃねーよとツッコミを受けそうだが、実際はこの計算のカッコの中しかやっていない。もう少し具体的に計算の流れを説明すると、さっきのiPhoneの話から128は16の倍数であることは明らかだ。でも3乗は16の掛け算を考えた時に1回分かけ過ぎだとわかったから、

$$2^3-1=7$$

と計算できる。最大のポイントは、iPhoneのそれぞれのストレージが2の何乗なのかという感覚を持っておくことだ。

 

いま、104のダメージを削減する方法として、全弾ヘッドに当たるか、全弾ヘッドに当たらないかの両極端な場合を考えた。それぞれ5発と7発なので、中途半端な回数ヘッドに当たれば6発で済むパターンが存在することがわかる。つまり、ヘッドショットの回数をx、ヘッドショット以外の回数をyとおくと
$$24x+16y \geq 104$$
となるような整数の組み合わせ(x,y)を考えればよいことになる。
両辺を8で割って、
$$3x+2y \geq 13$$
となることから、
$$y \geq \frac{13-3x}{2}$$
となる。いま考えるべきは、x=2,3,4のパターンだ。順番に代入すると、y=4,2,1とわかる。総弾数で言えば、順に6,5,5となる。

このことから、104を削る場合は5回中3回ヘッドショットが当たれば最も効率的に倒すことがわかった(サブマシンガンは連射武器だから4回も5回も大した違いはないけれど)。

 

こんな具合に、使っている武器の威力を把握していれば、どんなパターンで効率的に相手を倒すことができるか、途中で撃つてなくなったときにどれくらいゲージが残っているかを手早く計算することができる。

 

・・ってこれができたからって強くなるわけじゃないけど、「ゲームしながら勉強してんだよ!」って言い訳には使えるかもしれないということで。