エクセル雑感
「ポケモンを確実に見つける方法」をExcelで数学してみた

ExcelマクロVBAとエクセル関数についての私的雑感
最終更新日:2016-11-04

「ポケモンを確実に見つける方法」をExcelで数学してみた

ポケモンGO関連の記事をみていたら、


【ポケモンGO】かくれているポケモンを確実に見つける方法、という記事を読んだ。

普通にそうだなという感想なのですが、

もっとまじめに数学したら、もっと良い方法があるのではないかと。

元記事はあちこちで見た気がするが、多分これでしょ
「【ポケモンGO】かくれているポケモンを確実に見つける方法」
で探せば、直ぐに見つかります。
そこでの方法としては
Excel ポケモンGO
近くにいるポケモンに表示された地点を①
そこから、どっちの方向でも良いので真っ直ぐに進みポケモンが消える地点を②
今度は真逆に歩いて、ポケモンが表示されて、そして消える地点を③
※②から③までの距離を歩数等で測っておく
②と③の中間点Aを、直角に左右のどちらかに進めばポケモンがいる。


確かに、この考え方なら小学生でもわかる理屈です。
しかし、最後が2択になってしまい、反対に歩き出してしまうとかなり距離をロスしますね。
原因は、一直線に歩くからなのですか、
ちゃんと数学すれば、もっと確実にポケモンにたどり着けるのではないかという事で考えてみました。


高校生くらいになれば、もっとちゃんと数学できるでしょ、ということで、
もっと高度に、最短距離でポケモンにたどり着く方法を数学してみました。

まずは、

歩き方
Excel ポケモンGO
近くにいるポケモンに表示された地点を
そこから、どっちの方向でも良いので真っ直ぐに進みポケモンが消える地点を
今度は真逆に歩いて、ポケモンが表示されてから、もう少し進んだ地点を
※ここが重要、①まで戻る必要はない、ポケモンが確実に表示された地点で良い。

※②から③までの距離を歩数等で測っておく
③の地点を、直角に左右のどちらか(上図では右)に進んで、ポケモンが消える地点を
※③から④までの距離を歩数等で測っておく
ここです、この時点(②と④の地点を特定した時点)で、ポケモンの場所は特定されています。


ポケモンの場所を特定できる理由

二点を通る円で半径R(200m)の円は2つだけ。
この場合は、①③を内に含まなければならないので円は一つだけ。
つまり、円が特定されるので、中心点も特定できるという事です。
念の為書いておくと、
②と④を中心に、半径R(200m)の円を書いた交点が、二点を通る円の中心になります。
小学校で、コンパス使って良くやったやつですね。


さて、ここからがちょっと難しくなります。
④の地点から、ポケモンの場所へ進むには、どうすれば良いか。
距離は半径R(200m)で間違いない。
後は、方角だけです。
④の地点から、②の地点を向いて、何度の角度で歩き出せば良いかを計算します。
つまり、②と④と円の中心(ポケモンの場所)の角度が分かれば良いのです。


数学の始まり
ここからが数学になります。
ここが重要です。
補助線を引いてみましょう。

Excel ポケモンGO

円の中心から②④へ補助線を引いて、②と④の間にも引いてみます。
これで二等辺三角形の出来上がりです。

三角形だけを見てみると、

Excel ポケモンGO

辺AB(b)の長さは、半径(200m)です。
辺BC(a)の長さは、半径(200m)です。

辺AC(b)の長さは、②④の距離になるので、

Excel ポケモンGO
超有名な定理、ピタゴラスの定理(三平方の定理)を使って、
②④二乗 = ②③二乗 + ③④二乗
これで求まります。

三角形の3辺の長さが求まれば、
余弦定理
これで計算できます。


すみません、
余弦定理の理屈までは、ちょっと説明できません。
私は現役退いて長いので、さすがに余弦定理までは・・・
多分、高1か高2くらいの数学だったはず。


Excelで計算してみた

Excel ポケモンGO

bの計算式は、
=SQRT(B4^2+B5^2)
(②③二乗 + ③④二乗)の平方根

角Aの計算式は、
=DEGREES(ACOS((B3^2+B4^2-B2^2)/(2*B3*B4)))

ACOS関数
アークコサイン
ACOS(数値)
そのコサインが数値であるような角度をラジアンで返します。
DEGREES関数
ディグリーズ
DEGREES(角度)
ラジアンを度に変換します。
余弦定理を使った数式については、
ググって、あちこち見て回った計算式を、Excelの関数で作成しました。
多分あっているとは思うのですが、胸を張って言える程の自身は無いです。

上記では、
②③を80m
③④を70m
としたときの結果です。

つまり、

④の地点から、②の地点を向いて、
74.6度の方向に200m行った地点にポケモンがいるという事になります。


以上が、ポケモンの場所を特定する最短の歩き方と、ポケモンの位置を特定する方法です。
では、
このExcelを持って、スマホとともにポケモン探しへGO!
なんてことをしちゃダメですよ、絶対にダメね。


私は、これを書いている時点では、ポケモンGOは、もうちょっとで20レベルといったところなので、
ポケモンGO自体は、そんなに詳しくありませんので、あくまで机上での計算という事です。
ポケモンGOのGPSって、そんなに精度は良くないですしね。

そもそも、
200mも直進出来る場所が、この狭い日本にどれだけあるのか・・・
という基本的な疑問が大いにあります。
といいますか、
大抵は建物等に邪魔されて、目的地に着いた頃にはポケモンはいずこ・・・
ということで、あくまで机上のお遊びです。

高校生諸君、「数学なんて将来何の役に立つんだ」と思う事もあるでしょう。
その答えは、
こういう時に役に立ったり、立たなかったり
とにかく一生懸命勉強しましょう。



同じテーマ「エクセル雑感」の記事

だまされるな!RangeとCellsの使い分け!
エクセル(関数・マクロ)上達のコツ
エクセルVBAあるある
Excelマクロを書くのに○○力は必用か?
offset 検索ワードで非常に多いので「offsetまとめ」
Excelのリンクの管理について
プログラミングとは
「ネ申Excel」問題 への同意と反論
「Excel3ステップ理論」3階層システムの応用
「ポケモンを確実に見つける方法」をExcelで数学してみた
「VBAによる解析シリーズその2 カッコ」をやってみた


新着記事NEW ・・・新着記事一覧を見る

SQL関数と演算子|SQL入門(12月1日)
データの取得:集約集計、並べ替え(DISTINKT,GROUP BY,ORDER BY)|SQL入門(11月30日)
データの取得:条件指定(SELECT,WHERE)|SQL入門(11月29日)
データの挿入:バルクインサート|SQL入門(11月28日)
データの挿入(INSERT)と全削除|SQL入門(11月26日)
テーブル名変更と列追加(ALTER TABLE)とテーブル自動作成|SQL入門(11月25日)
テーブルの作成/削除(CREATE TABLE,DROP TABLE)|SQL入門(11月24日)
データベースに接続/切断|SQL入門(11月23日)
SQLiteのインストール|SQL入門(11月22日)
SQL入門:VBAでデータベースを使う|エクセルの神髄(11月22日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • 「ポケモンを確実に見つける方法」をExcelで数学してみた

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
    掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ