Pythonとterapad。
こんばんは、ダンです。
最近ちょっとずつPython勉強してます!
って言っても手軽?にコマンドラインできるのが楽で遊んでるだけなんですけど!
そこでPython先生はなんと多倍長整数?をメモリの許す限り、そのまま使えるらしいじゃないですか!
まぁ、遊ぶよね!
まず、2**10000 やってみました。(2^10000 2の10000乗の意味)

いい感じ!
あってるのか知らないけど!
次に2**100000やりました。
そしたらもう画面全部埋まって見えなくなって。
その次に2**1000000やりました。
少し止まったあとに、結果が出力されてー。
おー。って思ってましたw
まぁそこで疑問に思うのが
これほんとにあってんのか!?
ですよね!
さすがに計算するのは面倒だから、桁数だけならlog使って簡単に求めれるし
桁数があってれば合ってることにしちゃおうと思います!
ってわけで
f = opeb("2^1000000.txt","w")
これでファイルを開いて
f.write(str(2**1000000))
これで書き込み!!
待つこと数秒?数十秒で処理終了。

いや、ボリュームラベル隠してるけど普通だからね?なんもやましい事なんてないからね(ry
追記:ボリュームラベル隠れてなかった・・・死にたい・・・
あと、本当はファイル名に^とか入れるのよくないと思うけど、今回は許してくださいっ
そしてできたファイルがこちら!
2^1000000
いやーすごい数字だねー。
なんかもう見てるだけで錯覚起きそうな。
これをTerapadでオープン!

右下を見てわかる通り、あれ、8000文字・・・?
どう考えても短いだろー。
もしやPythonって8000文字以上無理っていう制限あるじゃね・・!?
こう考えちゃいますよね、普通。
一応2**1000000が8000文字以上の証明として
log10(2**1000000)
=1000000 * log10(2)
log10(2) = 0.3010.... から
log10(2**1000000)
=301000
2^1000000 は 301000桁以上の数字になります。
ちなみにパソコンに計算させると
log10(2**1000000)
=301029.9956... になって
301030桁の桁数って事がわかりますね。
なんでlog10なのかって言うと
log10(x) = 10^x
こうなるので
そのまま桁数を表してることになる・・んです!
細かい説明苦手だから、ぐぐれば出てくると思います。
まぁ、log10で桁数が出ます!
Python8000桁制限!?説が浮上したかと思われましたが・・・
が・・・。
80桁で折り返しボタン押しました。
すると・・・。

まぁ、わかってたけどね!!
最初からPython先生疑ってなかったけどね!!
えーっと、3762かける80たす70でー・301030・・・ふむ。
追記:計算式間違ってた・・・死にたい・・・
ほら!Python先生間違ってなかった!!
一連の流れ。

ほ、ほら!すぐ気づいてる!
うん。
なんか悔しかったから書きたかっただけだったりします(´・ω・`)
相変わらず、こういうの書くの苦手ー!
どうやれば誰が見てもわかりやすく、読みやすいように書けるんですか!
とりあえず!
なんか昨日1日アクセスめっちゃ増えたけど(多分#givemacが原因で)
なんか拍手もコメントも増えないと大して嬉しくないことがわかった!
なんかほそぼそやってくほうが合ってる気がするから、ほそぼそやってくよ!
最近ちょっとずつPython勉強してます!
って言っても手軽?にコマンドラインできるのが楽で遊んでるだけなんですけど!
そこでPython先生はなんと多倍長整数?をメモリの許す限り、そのまま使えるらしいじゃないですか!
まぁ、遊ぶよね!
まず、2**10000 やってみました。(2^10000 2の10000乗の意味)

いい感じ!
あってるのか知らないけど!
次に2**100000やりました。
そしたらもう画面全部埋まって見えなくなって。
その次に2**1000000やりました。
少し止まったあとに、結果が出力されてー。
おー。って思ってましたw
まぁそこで疑問に思うのが
これほんとにあってんのか!?
ですよね!
さすがに計算するのは面倒だから、桁数だけならlog使って簡単に求めれるし
桁数があってれば合ってることにしちゃおうと思います!
ってわけで
f = opeb("2^1000000.txt","w")
これでファイルを開いて
f.write(str(2**1000000))
これで書き込み!!
待つこと数秒?数十秒で処理終了。

いや、ボリュームラベル隠してるけど普通だからね?なんもやましい事なんてないからね(ry
追記:ボリュームラベル隠れてなかった・・・死にたい・・・
あと、本当はファイル名に^とか入れるのよくないと思うけど、今回は許してくださいっ
そしてできたファイルがこちら!
2^1000000
いやーすごい数字だねー。
なんかもう見てるだけで錯覚起きそうな。
これをTerapadでオープン!

右下を見てわかる通り、あれ、8000文字・・・?
どう考えても短いだろー。
もしやPythonって8000文字以上無理っていう制限あるじゃね・・!?
こう考えちゃいますよね、普通。
一応2**1000000が8000文字以上の証明として
log10(2**1000000)
=1000000 * log10(2)
log10(2) = 0.3010.... から
log10(2**1000000)
=301000
2^1000000 は 301000桁以上の数字になります。
ちなみにパソコンに計算させると
log10(2**1000000)
=301029.9956... になって
301030桁の桁数って事がわかりますね。
なんでlog10なのかって言うと
log10(x) = 10^x
こうなるので
そのまま桁数を表してることになる・・んです!
細かい説明苦手だから、ぐぐれば出てくると思います。
まぁ、log10で桁数が出ます!
Python8000桁制限!?説が浮上したかと思われましたが・・・
が・・・。
80桁で折り返しボタン押しました。
すると・・・。

まぁ、わかってたけどね!!
最初からPython先生疑ってなかったけどね!!
えーっと、3762かける80たす70でー・301030・・・ふむ。
追記:計算式間違ってた・・・死にたい・・・
ほら!Python先生間違ってなかった!!
一連の流れ。

ほ、ほら!すぐ気づいてる!
うん。
なんか悔しかったから書きたかっただけだったりします(´・ω・`)
相変わらず、こういうの書くの苦手ー!
どうやれば誰が見てもわかりやすく、読みやすいように書けるんですか!
とりあえず!
なんか昨日1日アクセスめっちゃ増えたけど(多分#givemacが原因で)
なんか拍手もコメントも増えないと大して嬉しくないことがわかった!
なんかほそぼそやってくほうが合ってる気がするから、ほそぼそやってくよ!