「「1から9までの数字を一回ずつ使って2010にする」の検算」の検算
1+2-(3-4-5)*6*7*8-9
みなさん、あけましておめでとうございます。
特に新年のネタとかは用意していないので、マンションの門松の写真でお茶を濁そうと思います。
常山日記の 2010-01-05 [Python]巡回 05:13 で紹介されていた 「1から9までの数字を一回ずつ使って2010にする」の検算 - m_yamamo0417の日記 がちょっと気になったので調べてみました。
このページでなにをやっているかというと、1から9の数字を順番に使って 2010 という数字を作る式が大量に http://www.thesamet.com/2010.txt あります。 で、この式が正しいかどうかを python を使って検算しているんですが、検算の結果 645/925 しか答えが 2010 にならないとのことです。
で、パッと見「そんなに間違えてるのかな~」と思って気になりました。
例えば11行目にある数式の答えは0であると書いてあります。 で、ためしにこの数式をコピーして数式を処理できるツール(コマンドラウンちゃーの Launchy です)に渡してみると、 2010 と表示されました。
(1*2/3)*((4+5)*6*7*8-9):0
で、ためしに今度は python の対話モードでこの数式を指定するとこうなります。
>>> (1*2/3)*((4+5)*6*7*8-9) 0
やっぱり 0 になります。で、実は以下の数式がポイントでした。
>>> 2/3 0
python では整数同士の割り算の結果は整数を返すことになっているそうです。(普段あんまり気にしてなかった...) そのため、2/3 が 0.666666 ではなくて 0 になって全体の結果も 0 になると。 おそらく他の答えが合わないものも同じ理由なんじゃないかなーということで、検算のソースコードを修正してみると、全部 2010 になりました。
また、知らなかったんですが python 3 では int 同士の割り算は float を返すようになったそうです。へー。
参考: 言語としての一貫性を重視したPython 3の進化 - @IT
というわけで、コードを以下のように変更すると、全部 2010 になりました。 変更のポイントは、割り算が発生する場合は 1.0 をかけて float にする(手抜き)のと、答えの比較のときに round() を使って誤差をまるめるということです。
***************
*** 13,20 ****
total_count = 0
for matched in REGEX.findall(body):
cmd = matched
result = eval(cmd)
! if 2010 == result:
equal_count += 1
print cmd + ':' + str(result)
total_count += 1
--- 13,21 ----
total_count = 0
for matched in REGEX.findall(body):
cmd = matched
+ cmd = cmd.replace("/", "*1.0/")
result = eval(cmd)
! if 2010 == round(result):
equal_count += 1
print cmd + ':' + str(result)
total_count += 1
実行結果はこんな感じです。
((1+.2)*1.0/.3)*((.4-.5)*1.0/.6+7*8)*9:2010.0 ((1*1.0/.2)*3*1.0/.4)*(.5+6*(.7+8)+.9):2010.0 ((1*1.0/(.2+.3))*1.0/.4)*(5*(.6+78)+9):2010.0 ((1*1.0/.2)*1.0/.3)*((4+5)*(6-.7+8)+.9):2010.0 ((1*1.0/(.2-.3))*1.0/(.4-.5))*(6+7+8-.9):2010.0 eq/total 925/925
すっきり
しかし、この元データどうやって作ったんだろう。そっちが気になる。
- カテゴリ
-
python
-
- ¦
- 固定リンク
- ¦
- コメント (2)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1192/tbping
plone 3.3.4 がリリース
plone 3.3 系の最新バージョン Plone 3.3.4 がリリースされました。
実は Plone 3.3.3 がリリースされたこと書かなきゃーと思っていたんですが、ぼーっとしている間に 3.3.4 がリリースされちゃいました。
ちなみに、3.3.3 自体は年末にリリースされていたんですが、plone.org のリリースページは間が開いて 1月9日に公開されたんですよね。なんでだろ。
あ、今 3.3.4 のリリースページを見たら OS X の 10.4, 10.5 用のインストーラがないですね。 もう作ってくれないのかなぁ。
ところで、 http://plone3.takanory.net/ で動かしているテスト用の plone3 のサイトですが、 3.3.3 から 3.3.4 にアップグレードするところでちょこっとハマったのでそのことを書いておこうと思います。
いつものように buildout.cfg を開いて 3.3.3 となっているところを 3.3.4 と書き換えてから bin/buildout -nv をするとそれは起こりました。必要なものを落としてくるところで延々と同じメッセージが表示されるのです。 distribute がどーしたこーしたというメッセージが延々と。これはだめだなーと思って一旦停止してあれこれ考えてみました。
で、結論はというと distribute のバージョンを上げるみたいなんですけど、その前に setuptools のバージョンを上げる必要があり、前提としている setuptools のバージョンが違うために発生していたっぽいです。(そのときのバージョンは 0.6c9 で最新は 0.6c11)
というわけで、以下の手順で無事 plone 3.3.4 にアップグレードできました。
% sudo easy_install -U setuptools % python bootstrap.py % bin/buildout -nv % bin/instance restart
あとは ZMI にアクセスして migration で終了です。
ただ、もう一つ気になることが。アップグレードしたサイトのサイト設定画面を見ると、zope のバージョンが unreleased version になってるんですよね。2.10.11 のはずなんだけど...
ま、動いているからいいか。
- カテゴリ
-
plone
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1193/tbping
石屋製菓のソフトクリーム
東武百貨店 池袋店 で北海道物産展をやっていたので行ってきました。
合宿のツマミ用にコマイや鮭とばを買ったり、自分のためにジンギスカン買ったりしつつ、ソフトクリームを食べました。
私は初めて食べる 石屋製菓 のソフトクリームです。石屋製菓は一応説明しておくと「白い恋人」が有名なお菓子メーカーです。
東武の物産展にでるのは初めてじゃないかなぁ?と思いつつ、ものすごい列に並んでソフトクリームを注文しました。
味はミルクとチョコレートのミックス。値段は300円。
カップは普通のコーン、星型のクッキーがついているのがいい感じです。
で、食べてみる。ん?普通?「ミルクが濃厚」みたいなことが書いてあるんだけど、いや、そんなことないですけどって感じ。
チョコも普通で個人的には残念な感じ。
むむむむ、六花亭のソフトクリームも食べたいなぁ。
でも、北海道展26日までなんですよねぇ。
- カテゴリ
-
icecream
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1194/tbping
ダイニングバー 946
少し前の話しですが、946 というお店に行ってきました。
このお店は、私の出身地「釧路」を中心とした北海道ローカルな料理をだしてくれる店です。よくある魚介中心ではないのがいい感じなので、行きたいなと思っていました。
そもそものきっかけは、多分 mixi のコミュニティでこのお店を知ったことにあります。
で行きたいなーと思っていたところ、釧路高専の同期で飲む機会があったので、行ってきました。
写真一枚目は「スパカツ」。スパゲティミートソースにトンカツが乗っていて、あつあつの鉄板に乗せて出てきます。
これは釧路の「泉屋」という洋食屋の定番メニューで、かなり懐かしい味でした。シェフは泉屋で働いてたこともあるそうで、再現度は高めでした。
二枚目は「鮭のチヤンチャン焼き」。でも釧路時代に食べたことがある人はいませんでした。
三枚目は釧路高専の寮生のソウルフード「やきっぺ」。これは北海道でのみ売っているインスタントの袋焼きそばで、夜食としてもっとも消費されていたと思われます。
このお店、驚いたことにオーナーが釧路高専の卒業生で、同じ学科の一年後輩で、吹奏楽部の後輩でもありました。
オーナー本人から声をかけられてわかったんですが、正直おもかげがあんまりなくて「えっ、まじで!?」って感じでした。
会社勤めしつつオープンしたそうで、すげーって感じ。
地元の味を堪能できる貴重な店なので、また食べに行きたいと思います。
- カテゴリ
-
moblog
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1195/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については
これでどうでしょ。
>>> from __future__ import division
>>> 2/3
0.66666666666666663
そんなことできるんですね、知りませんでした。
試してみたら、1行目に from __future__ import division を追加して *1.0 している行を削除しても
きちんと動作しました。
こっちの方がすっきりしていいですね。
勉強になりました。
参考: Pythonの__future__ - 西尾泰和のはてなダイアリー
http://d.hatena.ne.jp/nishiohirokazu/20080401/1207025873