僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
覆面算で、和の最高位が繰り上がりであれば、それは「1」になる ことを聞いた。10未満が2つ、なら20未満に決まっている。
SIX + SEVEN + SEVEN = TWENTY の、
「T」のループを消してみた。
すると、
$ time python3 six_seven_seven.py 6 5 0 + 6 8 7 8 2 + 6 8 7 8 2 = 1 3 8 2 1 4 real 1m33.172s user 1m33.049s sys 0m0.008s
10倍近い速度になった。
それにしても、 2年前に (たぶん、もっとましなコードを) 書いていたことを、すっかり忘れていた。
てけとうに高速化を試みて(ifが増えたが)、なんとか前の実装よりも 速くなった、はず。
$ time python3 6+7+7\=20.py S I X + S E V E N + S E V E N = T W E N T Y 6 5 0 + 6 8 7 8 2 + 6 8 7 8 2 = 1 3 8 2 1 4 real 1m53.115s user 1m53.018s sys 0m0.012s $ time python3 six_seven_seven.py 6 5 0 + 6 8 7 8 2 + 6 8 7 8 2 = 1 3 8 2 1 4 real 0m31.120s user 0m31.089s sys 0m0.012s
$ time python3 send_more_money.py 9 5 6 7 + 1 0 8 5 = 1 0 6 5 2 s e n d + m o r e = m o n e y real 0m6.545s user 0m6.538s sys 0m0.004s $ time python3 s2.1.py 9 5 6 7 + 1 0 8 5 --------- 1 0 6 5 2 real 0m3.775s user 0m3.764s sys 0m0.008s
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。