non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

15歳の天才少女が書いたPython3のコードを読んで学んだこと

今晩は、家族で先日沖縄旅行に行ってきました。雨の予報にもかかわらず瀬底ビーチでは、 快晴で子供たちは裸足で波打ち際で元気に遊んでいました。kjunichiです。

背景

15歳女子が「フィボナッチ数列は2進数でも美しいのか」を考察 算数・数学の自由研究作品コンクール「MATHコン」で日本数学検定協会賞を受賞 | プレスリリース | 公益財団法人 日本数学検定協会

を見かけて、Python3のコードを読んで、あれこれ調べて学んだことのメモ。

Python3はRubyのように大きな数を標準で扱える

Python2ではint型とlong型があったようだが、Python3はint型に統一されて、 このint型が多倍長を扱えるらしい。

2進数表記する方法

彼女は10進数から2進数を自前で変換していたが、 この手の変換は、言語処理系に用意されているだろうと思い調べた。

bin(123)

とすることで変換される

彼女のコードに組み込む場合、

binary = str(bin(fib))[2:]

printで改行を入れない書き方

彼女のコードは結果をファイルに出力していたが、 paiza.ioで動かして結果を見たかったので、標準出力へ出力させようとしたら、 余計な改行が付加されて、これを防ぐ方法を調べた。

 print("●", end='')

とend=''と指定することで改行を防ぐことができた。

関連記事