Python

逆ポーランド記法による数式処理

逆ポーランド記法とは 逆ポーランド記法(Reverse Polish Notation: RPN)は、演算子をオペランドの後に記述する数式やプログラムの記法の一つです。 例えば、一般的な中間記法で記述された数式 (1+2)*(5+4) は逆ポーランド記法では 1 2 + 5 4 + * と記述され…

Pythonの組み込み実装のROT13を読む。

アルファベットを任意の文字数ずらした暗号をシーザー暗号という。 シーザー暗号の中で13文字ずらしたものをとくにROT13と呼ぶ。 PythonではこのROT13が言語に組み込み実装として存在しており、thisモジュールはこのROT13でエンコードされている。 >>> print…

Pythonで16進文字列をintに変換

16進文字列からint 基数を指定してintにパースすればいい。 >>> s = 'abcdef' >>> print int(s, 16) 11259375 ちなみにインタラクティブシェルなら0xからはじめた16進文字列を入力すれば10進数にしたものを返してくれる。 >>> 0xdeadbeef 3735928559 intから…

数学の粘度のやつ

はじめに 学校でS先生からマーティン・ガードナーの最難問というものを紹介された。問題の概要は次の通り。 ある数の粘度は、すべての桁を掛けて出る答えが1桁になるまでにかかる積算の回数で表す。それぞれの桁の数を掛け算して出るのが2番目の数で、そのま…