あ、結城さんが完全数の話をさらに深めている。
問題
nを正の整数とし、s(n)を「nのすべての約数の和」とする。このとき、s(n)=n+1になるnのことを何と呼ぶか?
答えは素数となる訳だ。綺麗な形繋がりでs(n) = 2n – 1になる数とはどういうものかを考えてみる。とりあえず10000までで調べてみることにする。
—–
あ、結城さんが完全数の話をさらに深めている。
問題
nを正の整数とし、s(n)を「nのすべての約数の和」とする。このとき、s(n)=n+1になるnのことを何と呼ぶか?
答えは素数となる訳だ。綺麗な形繋がりでs(n) = 2n – 1になる数とはどういうものかを考えてみる。とりあえず10000までで調べてみることにする。
—–
rubyco(るびこ)の日記 : 10000までの完全数を列挙せよ
エラトステネスの篩もよいけれど、別の問題もやろうよ。ということで「完全数」です。
Rubyは結構縦長なコードになる印象ですね。Pythonは横長になるなぁ。そんな訳で書いてみました。
—–
MSN-Mainichi INTERACTIVE : 米国産牛肉:米上院委、対日制裁法案可決 輸入再開に圧力
米上院歳出委員会は22日、日本が8月末までに米国産牛肉の輸入を再開しない場合、日本からの輸入製品に高関税を課す対日制裁法案を全会一致で可決した。日米両政府は21日に輸入再開で合意したが、対日輸出施設への日本の査察を経て、実際の輸入は7月下旬以降になる見通し。米議会は輸入停止に不満を募らせており、早期再開を求めて圧力を強めた。
法案は早ければ来週にも開かれる上院本会議で採決される見通し。ただ、米政府は制裁に反対しており、法案成立は困難な情勢だ。
法案は、畜産が盛んな州選出の超党派の議員が21日に共同提出した。日本の輸入停止に伴う米畜産業界の損失と同じ額として、年31億4000万ドル(約3600億円)の関税を日本製品に課すことを求めている。具体的な課税品目や税率は米財務省の決定に委ねる。
これはいくらなんでも、という内容。これは畜産が盛んな州選出議員の「ポーズ」なのだろうか。貿易の問題における米国の傲慢さ、良く言えば自国の経済的利益を純粋に追求する姿勢、には毎度畏れ入る。日本側だって米国側が筋を通した誠意のある対応してくれれば、牛肉の輸入を再会したいのが本音なんだ。
高関税は中国や韓国との競争には痛手だろうな。
二回連続で見逃してしまった。深夜帯なので録画しなければならず、いつも金曜日の朝に「しまった」と思うのだが手遅れ。来週こそ見逃さないようにしないと。
薫先生の日記を見ると、視聴率がすごい事になっているらしい。
コマネチ大学数学科は、中村センセの美術館定理の回が、とうとう視聴率4.2%になった。
瞬間視聴率は5%を超えていたそうだ。深夜帯では信じられない数字なのだそうだ。
CNET Japan : ポストゲイツ時代を築く2人に聞く–マイクロソフトのこれから(前編)
Ozzieさん、先程はあなたの役割や、新しい業務に入るタイミングと製品サイクルの関連性について話を聞きました。遠くない将来、検索戦略や、Googleが提供しているようなサービスに専念する人間を直下に配置する予定はありますか?世間はMicrosoft対Googleの戦いを固唾をのんで見守っています。Googleに対する戦略を専門に立案する人間は必要ではないでしょうか。
Ozzie:Googleに対抗する戦略の必要性については、わたしにも分かりません。Googleに対する戦略というのは、つまり、検索や検索広告といったサービスのことですね。これに関して言えば、社内には検索を専門に行ったり、広告を専門に行ったりする部門があり、Microsoft Researchとも密接に連携しています。Microsoft Researchでは広告や詐欺検知、検索、アルゴリズム検索などの研究が行われています。
MicrosoftとGoogleの本当の闘いは、技術的うんぬんは当然そうなんだけど、実際のところはリクルート活動なんだろう。Googleはシアトルにもオフィスを設置するなど、分かり易いくらいにMicrosoftからエンジニアを奪おうとしているし、Microsoftだって負けじとあの手この手で優秀なエンジニアを囲い込もうとしている。
—–
訳あってしばらく小説の類は読まないようにしているのだが、久しぶりに一冊読んでしまった。どうせ読むならということで、前から気になっていた手嶋氏の本書を選択。
本書はスパイ小説、ハードボイルド小説、推理小説、経済小説といったような色々な側面を持っている物語である。扱った内容が「北朝鮮によるドル紙幣偽造」であったので、ドキュメンタリーの要素もあるんじゃないかということで各地で話題になっている模様。まだ読んでいないけれど、手嶋氏のオフィシャルサイトに様々な書評へのリンクが貼ってある。ご購入時の参考にされたし。
—–
例によって昨日の試合がどのように扱われているか読んでみた。
The New York Times : Scoreless in Nuremberg
Diving to his left, Japan goalkeeper Yoshikatsu Kawaguchi stopped Darijo Srna’s low drive in the 22nd minute following a takedown in the area of Dado Prso by Japan captain Tsuneyasu Miyamoto.
Croatia had the better chances in the first half and would have taken the lead if not for several good saves from Kawaguchi.
やはり川口選手の健闘は称えられている。たぶんあのPK止めたときが、昨日一番盛り上がった瞬間だっただろう。
Japan’s best chance in the opening half came when Hidetoshi Nakata rifled a long-range blast in the 37th minute that goalkeeper Stipe Pletikosa got a hand on after diving to his left.
Nakata, who took a more aggressive, attacking role than he did against Australia, was the player of the game.
ということでやはり中田英寿選手が評価を得ている模様。確かに攻撃的だった(あと三都主も攻撃的だった)。ブラジル戦、なんとか健闘して欲しいものである。
Sankei Web : 運用益、残高、保有株…20日に報告 福井総裁、正念場に
さらに、福井総裁は16日の衆院財政金融委員会で、オリックスの宮内義彦会長と「昭和10年生まれの財界人の会『初猪(はつい)会』で親しくさせてもらっている」と明かした。宮内会長は村上ファンドの生みの親。こうした人脈が解約を遅らせたとの指摘もあり、日銀総裁として曇りなき判断を行える資質かどうかも問われている。
村上ファンドだから問題になっているだけでしょ。こんなこといちいち言い出したら、経済政策に絡む人間は家も持てないことになるよ。そいつらの持ち家の価格の変動によりけりで政策決めてもらっても困るし。
ときどき豆腐ハンバーグ作っているんだけど、レシピを残したことがなかったので、今後のために残しておく。
分量は結構適当でも大丈夫。あまり豆腐を増やし過ぎるとハンバーグとして成立しなくなるけど、それ以外はお好みで変えられる。この配分だとそこまで豆腐は多くないので、豆腐好きの方はもう少し増やしても良し。ちなみにこれで大きめのハンバーグが4から5個作れます。
にんじん、たまねぎ、しいたけは細かくみじん切りにする。それをごま油で軽く炒め、醤油を少しかけて味を付けておく。終わったらボールに入れておく。
そのボールに、牛豚合挽き、鶏ひき肉、しっかり水切りをした木綿豆腐、塩コショウを入れた後、素手でこねくり回していく。多少粘り気が出てくるまで練る。
フライパンを温め、ハンバーグを焼き始める。表裏ともに表面に焼き色を付ける。
焼き色が付くころには、ハンバーグから出た汁がフライパンに溜まっているはず。ここにハンバーグが浸かるくらいまで水を足し、
を入れ、ハンバーグを煮込んでいく。煮込みすぎても固くなったりはしないので、しっかりと味が付くまで煮込む。
煮込み終わったらハンバーグを皿に移す。残った煮汁に、水で溶いた片栗粉を入れ、どろどろのソースを作り、それをハンバーグにかける。
出来上がり。
すごく簡単なので、どなたでもトライできます。
現在第6部「クラスとオブジェクト指向プログラミング」を読んでます。OOPの基本的なことは知っているので、Pythonではどうやるのかという部分を学ぶ。とはいえ演算子のオーバーロード、多重継承など、大事そうだが知らない言葉が色々と出てきている。
例によって、色々試すために簡単な例を書いてみた。
myfirstclass.py
class MyFirstClass: def __init__(self,title='default'): self.title = title def showtitle(self): print self.title class MySecondClass: def showminchar(self): print min(self.title) class MyFirstSubClass(MyFirstClass, MySecondClass): def __add__(self,other): return MyFirstSubClass(self.title + other) def __mul__(self,other): return MyFirstSubClass(self.title * other) def showtitle(self): print 'The title is %s' % (self.title) def getlength(self): return len(self.title)
__init__というのがいわゆるコンストラクタ。Pythonでは「演算子のオーバーロード」の一種とされているようなので、コンストラクタが実行される際の演算に使われるもの、というのが正しいのかも。__add__というのは+演算子をオーバーロードしている部分で、これによりMyFirstSubClassのインスタンスに+演算を行うことが可能になる。__mul__は*演算子に対応しているもの。
MyFisrtSubClassは、MyFirstClassとMySecondeClassの両方から継承しているサブクラスである。このように多重継承すると、メソッド等は左側から順に採用されるらしい。
実行結果。
>>> Instance1 = MyFirstSubClass('Python') >>> Instance1.showtitle() The title is Python >>> Instance1.getlength() 6 >>> Instance2 = Instance1 + 'GoGo!' >>> Instance2.showtitle() The title is PythonGoGo! >>> Instance3 = Instance2 * 3 >>> Instance3.showtitle() The title is PythonGoGo!PythonGoGo!PythonGoGo!
多重継承や演算子のオーバーロードがどのように役に立っていくのかはまだ想像できていないのだが(__init__は別として)、クラスのインスタンスをビルトインオブジェクトと同じ形式で演算出来るということは、コードの可読性を高めることには繋がるのかもしれない。
なんにせよ、与えられた道具は上手く使って素晴らしいコードを書きたいものである。