2010-01-01から1年間の記事一覧

PythonでMethod Missing

聞くところによると、RubyにはMethod Missingなる機能があるとか。 いわく、オブジェクトにメソッドがない場合に、どういう処理をするかを記述するとか。 こいつぁ、われらがPythonにも欲しい機能です。 上記の文面をまともに受け取る使い方でも良いのですが…

MacPortsでHugs突っ込むときにコケる件。

トラッカーによるとleopardでは起こらないけどsnow leopardでは起こる。 https://trac.macports.org/ticket/20950 以下を参考にすれば最短距離。 パッチ2つ当てるのみ。http://antsomerset.co.uk/2010/10/04/installing-hugs98-haskell-on-mac-10-6-snow-leo…

すごいのみつけた

以前から、Haskellの遅延評価の枠組みは確率分布のサンプリングとかやるのによさそうだなぁとか思っていたのですよ。 再帰を使うってだけなら、C++とかでも上記の式と同様になるかと思いますが、 いざサンプリングするぞって時に面倒なのが、SBPのtailの方。…

O'REILLYどうした

もともと翻訳どうよ、と思うものが多い出版社でしたが、 久々の出物、しかも大物、しかも2つ。 あまりに酷いので、ここで血祭りにあげようと思います。プライムナンバーズ ―魅惑的で楽しい素数の事典 (O’Reilly math series)作者: David Wells,伊知地宏(監…

はじめてのMac

時代の流れに負けてMac book Proを買った。とりあえずキーボードの使い方がwindowsと違いすぎて困ったが、GUIのとてもきれいなlinuxなんだという友人のアドバイスでバリバリ使えるようになった。 もちろんコマンドラインでしか使ってない。どうしてこうなっ…

Project Euler Problem 84

モノポリーで、どの升目に止まりやすいかという問題。 まじめに計算できそうな感じだけど、せっかくなのでサンプリングしてみる。 ただひたすら面倒なだけ。 import random # monopoly simulator cells = [ 'GO', 'A', 'CC', 'A', 'T', 'R', 'B', 'CH', 'B',…

Project Euler Problem 125

単なるブルートフォースなのだが、範囲が違うけど同じ数が出うることと、それを加算してはいけないことに1時間ハマって死にたい。何この凡ミス。 typedef unsigned long long int nat; vector<nat> gensqsq(nat lim){ vector<nat> sqsq; for(nat i=1;i*i <= lim;++i)sq</nat></nat>…

新言語

NTTはもう少しまじめくさいところだと思っていた。 NTTの人が書いたプログラミング言語のhttp://www.brl.ntt.co.jp/people/hirata/Papers/spa99.pdf:論文。 その名も、織田信長。 論文の字面の時点ですでにシュールすぎるが、この言語の真価はその由来にある…

スライスでちょっと考え込んだ

Pythonにて、 s = "123456789" というようなリスト(この場合文字列だが)で、マイナスのインデックスを指定してスライスすると、末尾から数えてくれる。 print s[-4:-1] とすれば"678"が取れる。 じゃあマイナスインデックスから、リスト末尾までのスライス…

Project Euler 87

ストレートにx^2 + y^3 + z^4を総当りでとけばよい。 どうせそれぞれの変数に入る素数の値候補は多くは無いので、 最初にリストにしてしまって、リストの3重ループで回す。 当然xのとりうる範囲は50000000の平方根より少ない。 yのとりうる範囲は50000000の…

Project Euler 85

驚きの適当さ。終了判定すらしていない。なぜかPerl。 最後のほうで出たものが答え。親の長方形を埋めるための子の長方形の数は、親の長方形の辺の長さが逆転していても同じ。 つまり親の長方形のサイズが3x4でも4x3でも同じだよということ。 パターンの数は…

Project Euler 80

久しぶりに。 高校の時の参考書に載っていた。 今見ても、こんな面倒な手順を覚えられるかと思う。おおむねこんな感じ。なんだか教科書に乗っている手順をそのまま書き下しているだけなので、すごい汚いなぁ。 def getSqrtDigitSum( n, howmanydigits): if h…

boost::random見てみた

C++

boost::random見てみた。お、おお・・・うつくしい。なるほど、なるほど。 乱数生成器と生成される数値の型・範囲、分布モデル、を自由に決められる。 boost::variate_generator< 生成器, 分布モデル > hoge( 生成器のインスタンス, モデルのインスタンス ) …

Git使ってみる

とりあえずMSysGitを入れ、TortoiseGitを入れる。 リポジトリを作ろうとする。 → MSysGitのPATH設定しろエラー → MSysGitのPATH設定する → メッセージがブランクのエラー → tgit.exeをgit.exeにリネーム → リポジトリ作れた。TortoiseSVNと違って、まだまだ…

vnc on ssh

メモ。 VNC on SSH。 Serverはlinux、Clientはwin。 Winだとputtyなる有名人がいるらしいのですが、 よく分からないのでClientはCygwinのopenSSHで。 サーバーもOpenSSHで。 ssh -l ユーザ名 -L クライアントのポート:localhost(クライアントのアドレスでも…

Lightweight Language Tigerに行った

用事があって大分後半からしか見られなかった。見た中で、特に印象的だったのは、並列化とLT。 並列化について: 話にあったとおり、時代はそっちに流れていくと思う。 しかし、これまた話しにあったとおり、それに対応させるには困難を伴うと思う。 何しろ…

Pythonでリストから要素を取り出しつつ削除する場合

Pythonメモ リストをループでまわす場合、要素を一つ一つ取り出すけど、削除しつつだとどうなるのだろう? 現在値の場合 counter = 0 for i in l: if i % 2 == 0: del(l[counter]) counter+=1 print l 出力 >>> l [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 2…

Project Euler Problem 73

71とほぼ一緒。 上限と下限が決め打ちされている分71より簡単。 natural f73(){ natural lowd = 3; natural lown = 1; natural highd = 2; natural highn = 1; natural counter = 0; for(natural d = 12000; d > 1 ; --d){ for(natural n = (highn * d / hig…

4ヶ月ぶり

お金がないので課金をやめてしまいました.ごめんなさいはてなさん. でもカウンターからページビューにダウングレードする際にカウンターがリセットされるのは切ないのですが何とかなりませんか. 別に僕しか回していなかったからいいのですが. ちと最近バ…