ubuntu9.10上のhaskell(ghc)でUTF8を扱うには

追記 2010/08/20 13:21:22: ubuntu10.04以降ではhaskellのバージョンが上がって以下の問題は起きないらしい。 http://www.sampou.org/cgi-bin/w3ml.cgi/haskell-jp/msg/480 追記ここまで そこで色んな対処方があるのですが、utf8-string という素敵なパッケ…

rubyでフォルダ構造維持しながらファイルをコピー

rubyでフォルダ構造維持しながらファイルをコピーする xcopyみたいな形で第2引数に第1引数のディレクトリ以下のファイルをコピーする 第2引数のフォルダがなかったら作る src,dest=ARGV[0]||"a",ARGV[1]||"a_dash" Dir.exist?(dest)||Dir.mkdir(dist) Dir.gl…

project euler problem 10

10以下の素数の和は2 + 3 + 5 + 7 = 17である. 200万以下の全ての素数の和を計算しなさい. 昨日取得した素数列を生み出す関数ですぐ終わると思ったが計算時間が半端じゃなかった main=print $ sum $takeWhile (<2000000) primes primes = sieve [2..] sieve …

project euler problem 12

三角数の数列は自然数の和で表わされ、7番目の三角数は 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28 である。 三角数の最初の10項は1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... となる。最初の7項について、その約数を列挙すると、以下のとおり。?1: 1?3: 1,3?6: 1,2,3,6…

project euler problem 13

以下の50桁の数字100個の総和の上位10桁を求めよ。37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74324986199524741059474233309513058123726617309629 919422133635741615725224305633018110724…

project euler problem 16

2^15 = 32768 であり、これの各数字の合計は 3 + 2 + 7 + 6 + 8 = 26 となる。同様にして、2^1000 の各数字の合計を求めよ。 簡単そうなのですぐやってしまった。 read [c]+0 がきもちわるいけど… Prelude> foldl (\x y->x+(read [y]+0)) 0 $ show (2^1000) …

project euler problem 11

08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91…

project euler problem 8

以下の1000桁の数字から5つの連続する数字を取り出して その積を計算する。そのような積の中で最大のものの値はいくらか73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 8586156078911294949545950…

haskellで組合せと順列

まさか… そんなまさか… さっき id:nobsun さんに教えてもらった [(i,j)|i<-[1..10],j<-[i+1..10]] が組合せだったなんて… Prelude> mapM_ print $ map (\x->[(i,j)|i<-[1..x],j<-[i+1..x]]) [2..6] [(1,2)] [(1,2),(1,3),(2,3)] [(1,2),(1,3),(1,4),(2,3),(2…

project euler problem 9

ピタゴラスの三つ組(ピタゴラスの定理を満たす自然数)とはa

haskellで文字列を数字に変換する

haskellで文字列を数字に変換するにはreadを使う。 ただしreadは多相型なので後ろに型の識別子が必要。 Prelude> :type read read :: (Read a) => String -> a Prelude> read "123" <interactive>:1:0: Ambiguous type variable `a' in the constraint: `Read a' arising </interactive>…

project euler problem 7

Problem 7 † 素数を小さい方から6つ並べると 2, 3, 5, 7, 11, 13 であり、6番目の素数は 13 である。10001 番目の素数を求めよ。 再起で素数は難しいよ 値を引き回すのが面倒でしょうがない。 main = (putStrLn.show) problem problem = last $ primeList 10…

project euler problem 6

Problem 6 † 最初の10個の自然数について、その和の二乗と、二乗数の和は以下の通り。1? + 2? + ... + 10? = 385 (1 + 2 + ... + 10)? = 3025 これらの数の差は 3025 - 385 = 2640 となる。同様にして、最初の100個の自然数について和の二乗と二乗の和の差を…

project euler ploblem 5

2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり、そのような数字の中では最小の値である。では、1 から 20 までの整数全てで割り切れる数字の中で最小の値はいくらになるか。 あれ?ghc6.10からlcmが実装されていたはずなので… main = putStrL…

project euler problem 4

左右どちらから読んでも同じ値になる数を回文数という。 2桁の数の積で表される回文数のうち、最大のものは 9009 = 91 × 99 である。では、3桁の数の積で表される回文数のうち最大のものはいくらになるか。 文字列に変換する方法にしばらく悩んだ 単なるshow…

ubuntuのコマンドラインでV8を動かす

ubuntuのコマンドラインでgoogleのjavascriptエンジンであるv8を動かしてみよう。 $ sudo aptitude install subversion scons libreadline-dev $ svn co http://v8.googlecode.com/svn/trunk/ v8-read-only $ cd v8-read-only $ CXX=g++-4.1 scons d8 consol…

project euler problem 1-3

久しぶりに暇してるのでeulerをやってみることにした。問題は以下 http://projecteuler.net/index.php?section=problems日本語訳も見つけたのでここからコピペしながら進行 http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler 問題1 10未満の…

マルチマシン上のライブラリ

仕事の分割 - 計算機と戯れる日々を考えてたんだが、並列プログラムを組むためのスキルというよりはそのためのテンプレートとか例題とかが不足してるんだな。 シングルマシン上におけるマルチタスクはOSがやってくれているため、ライブラリを使えば十分(…

「はてな」が遅い

なんかはてなが全般的に遅い。アルゴリズムがまずくなってるなら(いつものことだから)いいんだけど…もしかしたら設備をケチってる? 倒産したりしないよね?バックアップ取った方がいいんだろうか…ってはてな記法使いまくってるからどうしようもないなこりゃ…

Hatetrisやってみた

もっとも出てほしくないブロックが出るHATETRIS @ Things Of Interestをやってみた。5行が限界だった。リプレイデータは以下 C002 AAAA AAAA B01A AAAA AAAC AAAA AA7E AAAB 6AAA AA9A B000 00AA AAAA AAB0 0AAA AAAC 0AAA AAAA C2AA AAAA ACAA AAAA ABAA AA…

仕事の分割

シンプルと感じているのは自分だけの可能性 - 計算機と戯れる日々を読み直してたら最近思い当たることがある。人が「できない」と考えるのは自分の経験に基づいて判断している。集団で開発プロジェクトを動かす際にも誰に何をさせるかを決めなければならない…

現在の法律の数を調べる

http://law.e-gov.go.jp/announce.html#shinki ここを見ると「7,384 法令」とある。こんなにあるんだよな。 では実際に 法令データ提供システム にて全量を調べてみる。 require 'nkf' require 'net/http' require 'uri' require 'cgi' awa="あいうえお…

timitidyにサウンドフォントfluidを追加する

rosegardenでドラムを入力しているときデフォルトのfreepatsではバスドラムの音色が弱いのでfluidを入れることにした。 $ sudo aptitude install fluid-soundfont-gm $ sudo vi /etc/timidity/timidity.cfg timitdity.cfgをfluidr3_gm.cfgのコメントアウトを…

ubuntuのロゴのフォントを入れる

ubuntuの壁紙作りたくなった。ロゴフォントをインストール $ sudo aptitude install ttf-ubuntu-titleこれだけ。作ったロゴ フォント情報をパスに変換したSVGは以下。

外部リボジトリ、コンパイル無しでubuntuでflv(音声AAC)をmp3へ変換するには

ubuntuのデフォルトのffmpegではmp3をエンコードできない $ ffmpeg -formats | grep mp (中略) DEA mp2 MP2 (MPEG audio layer 2) D A mp3 MP3 (MPEG audio layer 3) (中略)これみるとmp2にはEがついているため $ ffmpeg -i a.flv a.mp2にて変換できるが、mp…

gnome-terminalのビープ音をPCMでならしたいができない。

gnome-terminalのビープ音をPCMにすることをずっと昔から探しているんだがなかなかできない。しかもubuntu9.10からではpcspkrさえ止められている。 $ grep pcspkr /etc/modprobe.d/blacklist.conf blacklist pcspkrどうして、pcspkrをエミュレートするモジュ…

rubyにてメールヘッダを連想配列に加工する

pop3やimapをアクセスする場合にはメールヘッダの解析をライブラリがやってくれるんだがfetchmail,procmailにてメールを加工するときに適当なライブラリが存在していないし、そこら辺にも転がっていない。ので作った。 open("mail.txt").read=~/\A(.*?)\n\n(…

スパイダー6枚空き記念

6枚開いたので記念アップ

森の博士ツリーマン発見

HDD新調したので2TBHDDへubuntu9.10をインストール

1TBのファイルシステムが95%になってしまったので2TBへ移行 ほんとは、1.5TBと2TBでは値段が倍違うのだが最近いじる暇がなくなっているので先のこと考えて2TBにした。 (ヨイコのみんなはリーズナブルな1.5TBを買うんだぞ) $ df /dev/sda? 922947516 8280796…