2^20 を計算するページ


【オープニング】すべては2の2000乗から始まった

ある日、友達が言ってきた。
「あのさ。2の2000乗っていくつなの?」
「さぁ。2の10乗なら1024だって覚えてるけど、2000乗は知らないな」
「計算してみないか?」
「電卓に任せればいいんじゃないか」
「ケタがヤヴァくて電卓の画面に入りきらないんだよ」

この会話が展開されたのは、ぼくが中学校2年生のときである。
さっそくぼくは、学校で配布された手紙が詰め込んであるファイルを取り出し、
その中から1枚、不要と思われるプリントを出した。
真っ白な裏面に、計算を始めたのだ。

2^2000 =2×2×2×2×2×2×2×…

しかし、式の最初から順番に「ここまでで4、ここで8、16、32、…」と計算するのは、
さすがに気が遠くなる。そこで、ぼくらは賢く計算することにした。

2^2000 = 4^1000 = 16^500 = 256^250 = 65536^125 =

ところがここまで来て、行き詰ってしまった。
125を半分にすることができないからである。
そして、まだ指数が125もあるのに、すでに65536という大きな数になってしまい、
嫌な予感を感じ始めた。

…そして友達に、ぼくは言った。
「無理だ。諦めよう」
しかし友達はなかなか心を曲げようとしない。
「いや、2^2000の正体を知りたいんだよ」
なんでそこまでして知りたいのか意味が分からん。
そのときチャイムが鳴り、休み時間終了。この話題はこれで消えたかのようだった。



【プロローグ】2の2000乗の大きさが見えた日

その後ぼくは中学校を卒業し、高校へと進学した。
そして高校3年生の、ある日の数学の授業のことだった。
その日の授業では、高校1年で習った"常用対数"を復習していた。
この常用対数を使うと、大きな数の桁数を調べられる、というものだった。
そのとき、中学校でのあの会話を思い出した。
「高校で習った常用対数を使えば、中学時代の疑問が解けるかも」

2^2000 = P とおく。両辺の常用対数を取ると、
log[10,2^2000] = log[10,P]
2000log[10,2] = log[10,P]
ここで、log[10,2] ≒ 0.3010 より、
2000×0.3010 ≒ 602 ≒ log[10,P]
ここで、602 = log[10,10^602]だから、
P ≒ 10^602

そうか!結局2の2000乗は、603桁の数なんだっ!
…っておい!デカすぎ!
30行あるノートに、1行につき20個書かなくてはならんとは…。
603桁にもなる数を、あの頃のぼくは計算しようとしていたのか…?w

603桁を求める気にはならないが、このまま終わるのもやだなぁ…。
じゃぁ代わりに、2^2000ではなく、2^20でも求めてみるか。

そして今に至る。

【第一章】指数法則で攻撃

そんなわけで、まずは普通に指数法則を使い、2^20を求めてみた。

2^20 = 4^10 = 16^5

以前はここで詰まった。5はこれ以上半分にできないからだ。
でも、今のぼくは高校生。ちょっと考えれば、さらに細分化できるはずだ。

16^5 = 16^(2+2+1) = (16^2)*(16^2)*(16^1) = 256*256*16 = 1048576

『256×256×16』がとっても面倒だったが、無事計算できた。
2の20乗は1048576だ。
無事求まったけど、『256×256×16』はかったるい。他により良い計算方法はないだろうか。

【第二章】等比数列で攻撃

2^20は、2を20回かけたものだから、
2^1 , 2^2 , 2^3 , … と数字を並べていくと、20番目に2^20が来るはずだ。

等比数列{an}= 2^n を考えると、
{a1 , a2 , a3 , a4 , a5 , … , a20 , … , an}
={2^1 , 2^2 , 2^3 , 2^4 , 2^5 , … , 2^20 , … , 2^n}
よって、初項が2、公比が2の等比数列の、第20項を求めればよい。
等比数列の公式 an = a*r^(n-1) より、 a20 = 2*2^(20-1) = 2^20

なんと。2^20を求めようと思って等比数列を書いてみたら、
再び2^20に戻ってきてしまった。
残念ながら、等比数列での攻撃はミスに終わった…。とほほ。

【第三章】積分法と面積で攻撃

1辺の長さがPの正方形の面積は、P×P=P^2だ。
これは誰でも知っている。
ということは、1辺の長さが2^10=1024の正方形の面積は、2^20になるはず!

そこで、ドデカい正方形を思い浮かべて、
その正方形の左下のカドを、座標平面上の原点(0,0)に置く。
するとこの正方形の上側の辺の直線は、傾き0、切片1024だから、y=1024 のグラフだ。
そして正方形の右側の辺は、x=1024のところに、垂直につっ立っている。
つまり、区間 0≦x≦1024 における、y=1024のグラフとx軸の間にはさまれた面積というわけ!

区間 0≦x≦1024 での、y=1024のグラフとx軸の間にはさまれた面積Sは、
     1024           1024
S = 1024 dx = [ 1024x ] = 1024×1024
     0             0

うわ、マジで!?
イメージした正方形を、わざわざ座標平面において、積分までしたのに、
最後は1024×1024に戻ってきてしまったではないかっ!
積分攻撃もミスだったか…。

【第四章】三角関数と面積で攻撃

同じ面積を使った攻撃だが、今度は積分ではなく三角関数だ。
でも、当たり前の話だが、三角関数は三角関数にしか使えない。
そこで、さきほどの正方形をナナメに切り、直角二等辺三角形2つに分けてみた!

直角二等辺三角形ABCを考える。(辺ACが斜辺)
AB=1024 だから、AC=1024×√2
面積の公式 S=(AB・AC・sinA)/2 より、
S=(1024×1024√2×sin45°)/2  ここで、sin45°=1/√2 より、
 =(1024^2)/2
この三角形の面積を2倍して正方形の面積を求めると、
{(1024^2)/2}*2 = 1024^2

さて、結局1024^2に戻ってきましたorz
ダメじゃん!他に何か方法はないのか!?

【第五章】シグマ()で攻撃

たぶん無駄かとは思うが、次はシグマw
さっきの数列{2^1 , 2^2 , 2^3 , 2^4 , 2^5 , … , 2^20 , … , 2^n}で、
『a1からa20を足したもの』から『a1からa19を足したもの』を引いてみようかとw
この計算をすれば、a20だけが残るもんね。

数列{2^n}の、第1項から第20項までの和Sは、
    20
S = 2^n = {2(2^20-1)}/(2-1) = 2(2^20-1)
    n=1
同様に、第1項から第19項までの和Sは、
    19
S = 2^n = {2(2^19-1)}/(2-1) = 2(2^19-1)
    n=1
したがって、
a20 = 2(2^20-1)-2(2^19-1) = 2(2^20-1-2^19+1)
= 2^21-2^20 = 2^20(2-1) = 2^20

なんか途中で2^19とか出てきて、面白い展開かと思いきや、
最後の1行で因数分解したら、2^20に逆戻り Σ(・д・lll)ガーン
もうだめだ、他の手段が思いつかぬ…。最終兵器を使うとしよう…。

【最終章】Excelで攻撃

こうなったら切り札、WindowsOfficeに頼るしかあるまいw


緊張の一瞬!そして…



キタ━━━━(゚∀゚)━━━━!!
やはりコンピュータの力は素晴らしいものだなwww

【番外編】C言語で攻撃

Excelに任せて求めても、なんか計算した気がしないので、
C言語でやってみました。



こんな感じにしてみました。
あらかじめ 1 が格納されている変数 ans に2をかける、という作業を、
for文を使って20回繰り返します。

で、実行してみた結果がこれ↓



なんというか、おめでとうございますですなwww

【エンディング】結果集計

さまざまな方法で、2の20乗を求めようと試みたが、
ここいらで結果をまとめてみると…。

攻撃方法結果評価
指数法則256×256×16 が面倒!
等比数列2^20に戻ってきた!×
積分と面積1024×1024に戻ってきた!×
三角関数1024×1024に戻ってきた!×
シグマ2^20に戻ってきた!×
Excel人工頭脳のパワーを思い知れ!
C言語ほどよく成功!

高校数学のさまざまな手法は、どれも役立たずというオチ…。
面倒な計算はコンピュータにまかせろ、という結論でよろしいか?>読者の皆さん
なんかすいません…。

【おまけ】Excelが2^2000に挑戦

みんなのヒーロー "Windows Excel" が、
2の2000乗にチャレンジ!すると!?
…うおおおおおお!!これは〜〜!!!!!!なんということだっ!!!
ぜひ皆さんも試してみてくださいねっ!


…今度はC言語で2の2000乗をやってみようかな。結果は目に見えてるけどな…w




「もの」のトップに戻るんよ。
トップページに戻りたい。
SEO [PR]  冷え対策 再就職支援 わけあり商品 無料レンタルサーバー ブログ SEO