2009-05-01から1ヶ月間の記事一覧

1729がつまらない数字だって?そんなことはないよ

30分プログラム、その594。wikipedia:シュリニヴァーサ・ラマヌジャンのエピソードで有名な1729が、ホントに2通りの2つの立方数の和で表せる最小の数かを確かめてみよう。1729な有名なエピソードはこんな感じのやつ。 1918年2月ごろ、ラマヌジャンは療養所に…

Perlで整数判定がしたい

Perlで整数判定がしたいので調べてみた。 「切り捨て」に int() は使うべからず - にぽたん研究所曰くint()関数はダメで、POSIX::ceil/POSIX::floorかsprintfを使うべきらしい。POSIX::floorを使ってみたけど、微妙な条件だと上手くいかない。 use POSIX; su…

よく使う単語 TOP100を取り出してみる

30分プログラム、その594。よく使う単語 TOP100を取り出してみる。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_067にインスパアされました。元のやつではmanページについて調べているけど、gz圧縮を展開するのが面倒だったので手元にあったソー…

HaskellのIntegerがどのへんでオーバーフローするか調べようとしたら、オーバーフローしなかったでござる

30分プログラム、その593。HaskellのIntegerがどのへんでオーバーフローするか調べてみよう。HaskellのIntegerはメモリの許す限り任意の桁数が扱えるらしいです。いわゆる、BigNumとかBigIntとか呼ばれてるやつです。 とは言うものの、メモリがいっぱいにな…

16進数から10進数への変換

30分プログラム、その592。16進数から10進数への変換 via Haskellで遊ぶよ - haskell。 16進数を10進数に変換してください。 ただし、入出力は文字列とし、次の変換は最低必ずできなければいけないこととします。1. 0x12437308CCB6 →20080902065334 2. 0…

素因数分解(コードジェネレータ版)

30分プログラム、その591。もういっかい素因数分解をやってみる。 id:Gemma:20090523で「おめー書いたエラトステネスの篩は遅すぎるぜー」と言われてしまった。 OK、そんなに速度のことを言うんだったら、素数を定数として埋めこんでやんよ。 でも、手で書く…

素因数分解

30分プログラム、その590。素因数分解をしてみる。 うわさによると、素因数分解をしてくれるUnixコマンドがあるらしいですよ。たしかfactorとかいう名前だったはずです。 教えてくれた人は、「ボクは必ずこれをインストールしとくんだ。2年に一度ぐらいの頻…

群馬大学でOCamlの授業があったらしいよ

http://twitter.com/glorypulse/status/1879994209

"METHINKS IT IS A WEASEL"をやってみる

30分プログラム、その589。エロと風俗情報満載 どう抜く?をやってみる。 ランダムな文字からMETHINKS IT IS A WEASELを作るプログラムを作れ。 簡単に流れを書いてみます。 ランダムな20文字を持つ文字列をもった300個作ります。 その文字列が"METHINK…

もうomakeとmakeを打ち間違えるのはたくさんだ

何度もmakeとomakeを打ち間違えるので、makeかomakeかをいい感じに判断してくれるシェルスクリプトを書いてみた。 #!/bin/sh if [ -e Makefile ] && which make > /dev/null; then make $@ exit 0 fi if [ -e OMakefile ] && which omake > /dev/null; then …

ランダムなテキストの生成

30分プログラム、その588。エロと風俗情報満載 どう抜く?のためにランダムなテキストを生成してみる。 エロと風俗情報満載 どう抜く?がおもしろそうだったけど、30分で全部やるのは厳しい。 というわけで、最初の「ランダムな20文字を持つ文字列」を作って…

急勾配の判定

30分プログラム、その587。急勾配の判定をやってみる。 有限の長さの数列で,各要素の値が,その要素の後ろにある残りの列に含まれるすべての要素の和よりも大きい列を「急勾配の列」ということにします(空列の和は0とします).任意の長さ(ただし有限の長…

ならしコストによるQueueを実装した

なんとなくならしコストによるQueueを実装してみたので、貼っておきますね。 シグネチャは、標準のQueueモジュールに、ある程度そろえてあります。 http://gist.github.com/113468

何秒前にさわったファイルなのかを調べる

30分プログラム、その586。何秒前にさわったファイルなのかを調べてみる。 おおむねhttp://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_129にインスパイアされてます。ただ、10秒より前かどうかを出力するのでなく、何秒前に触られたのかを出力するよ…

OCamlでプロファイリング

30分プログラム、その585。OCamlのプロファラを試してみよう。 マニュアル曰く、実行したときに何回関数が呼ばれたか、何回条件分岐が行なわれたかを記録できるらしい。どうも、各関数に何秒かかったか、などの情報は取れないらしい。 1.コンパイル とりあえ…

ベンフォードの法則を確かめてみる

30分プログラム、その584。素数の分布はベンフォードの法則に従っているらしいので試してみる。 「ベンフォードの法則」とは、ある数値群をみたとき、最高桁が「1」である数値は(15や189や1088など)は全体の約30%、「2」であるものは約18%、「3」であるも…

「うさぎの数が世界人口を越えるには」をやってみる

30分プログラム、その583。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_126をやってみる。 もともとフィボナッチ数は、つがいのうさぎの数を数える時の数列なので、何ヶ月目に現在の世界人口である 66 億 6000 万人をうさぎが越えるかを調べて…

Erlangでブロードキャスト

30分プログラム、その582。Erlangでブロードキャスト。ふと、Erlangのメッセージ送信って一個のプロセスしか送れないから、複数のプロセスにメッセージを送るライブラリがあってもいいかな、と思ったので書いてみた。ふと、思っただけなので、特に意味も実用…

対数ステップでフィボナッチ数を計算する

30分プログラム、その581。対数ステップでフィボナッチ数を計算できるらしいので、やってみる。 SICPの演習問題で担当になったところに、フィボナッチ数を対数ステップで計算するアルゴリズムが載っていたので試してみた。とりあえず、配布資料を貼って置き…

SuffixArray

30分プログラム、その580。id:Gemmaさんに借りたWEB+DB PRESS Vol.50に、suffix arrayの解説が載っていたのでやってみた。 解説を読んだときは「ちょう簡単じゃん。さくっと実装してやんよ」と思っていたけど、いざ始めたけど、けっこう大変だった。簡単とか…

さくらでgitが殺される

ボクはさくらのレンタルサーバを借りて、そこに自分専用gitレポジトリを置いて使っています。本来の目的とはちょっとずれている気もしますが、ここ2年ぐらいは問題なく使えていました。 しかし先日、とうとう自動で殺されるようになってしまいました。 % git…

1-100までの素数

30分プログラム、その579。「何も見ずに、1-100までの素数を計算してみよう」という電波を受けとったので、やってみた。 思い付いたのを全部書いて、3つか4つぐらい作ってやるぜー、といきごんで始めてみたけど、2つしか書けなかった。 というか、そもそもエ…

自分用tig.rbを書き換えて、bit.lyも展開できるようにした。

bit.lyの展開を使って、tig.rbをbit.lyとis.gdにも対応させてみた。 def untinyurl(text) text.gsub(%r!http://(?:(preview\.)?tinyurl\.com|bit\.ly|is\.gd)/[0-9a-z=]+!i) {|m| uri = URI(m) uri.host = uri.host.sub($1, "") if $1 Net::HTTP.start(uri.h…

bit.lyの展開

30分プログラム、その578。新しくTwitterが採用した、URL短縮サービスbit.lyを展開してみよう。APIを使うのはAPIキーが必要になったりして面倒だなー、と思いながらtinyurlの展開をしてるtig.rbのコードを読んでみた。そしたら、実に賢いことしてた。 def un…

MacBookのバッテリーの残量をGrowlに通知する

30分プログラム、その577。MacBookのバッテリーの残量をGrowlに通知してみる。昔にやったMacBookのバッテリー残量表示 - みずぴー日記とPythonでGrowlに通知を出してみる - みずぴー日記を組合せれば簡単にできる。 5分おきに残量をチェックして40%以下だっ…

全6話のインテルの販促ドラマ「ROAD TO C.I.O II」がやばい

インテルの販促ドラマのROAD TO C.I.O IIがやばい。 とりあえず第2話を見てみるといいと思います。

単語のシャッフル

30分プログラム、その576。単語をシャッフルしてみよう。人間は、単語の最初と最後さえ合っていれば、あとの順番はめちゃくちゃでもいいらしいです。 こちにんは みさなん おんげき ですか? わしたは げんき です。 この ぶんょしう は いりぎす の ケブン…

トラックバックが送れない

30分プログラム、その575。トラックバックの送信をやろうとして失敗した。 http://www.movabletype.org/docs/mttrackback.htmlによると、トラックバック専用のURLにPOSTリクエストを投げればいいらしい。 POST http://www.example.com/trackback/5 Content-T…

ハンミング数に挑戦して失敗した

30分プログラム、その574。エロと風俗情報満載 どう抜く?にチャレンジしたけど、失敗した。 2^i * 3^j * 5^k の形で表される整数を小さい方から順に 100 個列挙するプログラムを書いてください。 i, j, k は 0 以上の整数です。アルゴリズムのオーダーにつ…

円周率の計算

30分プログラム、その573。円周率を計算してみる。 SICP曰く の無限級数でπ/8が計算できるらしい。 無限ストリームを使って、だんだんと精度が上っていくπのストリームを作ってみた。 使い方 gosh> (stream-for-each print pi) 0.0 2.6666666666666665 2.895…