トップ «前の日記(2007-02-12) 最新 次の日記(2007-02-15)» 編集

じじぃの日記、ツッコミ可

Twitter: @jijixi_org
Xbox Live: jijixi

初心者が書いた OCaml 入門
Spotlight tips サイト内リンク集
1970|01|02|
2003|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|11|
2011|05|
2012|01|

2007-02-14 [長年日記]

% [あなごる] わしにはこの手の才能が絶望的に欠けていると思う

なんかどこもかしこも、anarchy golf のネタでいっぱいなので、わしも OCaml あたりでやってみようかな…などと思ったのだが。

いきなり hello world で 27 Byte の出し方わかんねー

どうしてこんな数字になるんだー!! と叫びながら悶々と考えて結局…

print_string"Hello, world!"

こういうのに辿り着いたんだけど…… 28B なんだよね。 どう考えてもこれ以上縮まる気がしなくて延々考えて、最終的に「もしや?」と思ってバイナリエディタでファイルの最後に付く改行を削ってやったら 27B で通っちゃったよ。 えぇ〜!? そうなの? みんなこうやってんの? それとも改行が付いてても 27B なコードがあるの?

もしかしてゴルファーの人は、ファイル末尾の改行を削るツールを用意するところから始めるんだろうか。 いやまあ、そんなのすぐできるけど、なんかこう精神的にショックを受けるというか…… だいたい出力に改行が含まれてなくても通る時点で、「なんてお行儀が悪い…」とか思っちゃう人間なんだよなーわし。

% [あなごる][vim] そういや vim で EOL を付けない方法があった気がするな…と思って考えた

そうそう、:set binary して :set noendofline だ。 バイナリモードにしないと noendofline は意味無いので注意。 とりあえず↓こんなエイリアスでも作っとこう。

alias vimb='vim -b "+set noeol"'

noeol は noendofline の短縮形。

% [あなごる][OCaml] OCaml で e

Num モジュール使わないと 100 桁なんて出せないんじゃないかと思うんだが、ましてや 115B って m.ukai さんはどんだけスーパーハッカーなんだよ!!……と思ったわけ。

……ん、あれ? 100 + 15 ってなんかピンと来るものが……

print_string"27182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274"

これかー!!

なるほど、なんかこのゲームの楽しみ方がわかってきた気がする。 あんまりマジメに考えちゃダメなんだよね、きっと。

% [あなごる][OCaml] 99 shinichiroes of hamaji

現状 320B。全然お話にならない...orz

いったい何をどうやったら 250B レベルになるんだ? 今の戦法だと、あともう数バイトくらいは縮まりそうだけど、とても 60B 以上縮まるとは思えないので、たぶん根本的に考え方間違ってるんだろうなあ。

% [あなごる][OCaml] 文字列に改行文字を入れるときの小技

こんなものが影響するほどの差まで迫れれば良いんだけど...orz

OCaml では文字列に改行文字を含める場合、

"hoge\n"

と、

"hoge
"

は等価になる。 下の例の方が 1byte お得。

本日のツッコミ(全5件) [ツッコミを入れる]
% m.ukai (2007-02-14 17:31)

ファイルの末尾の改行は削ってますよ。<br>e はまじめにNumモジュール使うと148B(改行削除後)だったので結局それです。そんな調子でいくつか決め打ち動作があります。

% jijixi (2007-02-14 17:36)

やはりそうでしたか(苦笑

% ksk (2007-02-15 08:51)

はじめまして.<br>99 shinichiroes of hamajiに関してですが,<br>私のコードにはif-then-elseが使われておりません.<br>これがヒントになるかどうか分かりませんが….

% m.ukai (2007-02-15 09:40)

99shinh はまだif-then-elseを使ってますが、jijixiさんの改行技を利用させていただきました。てことはまだ縮むのかな。<br><br>フィボナッチ58Bは全く想像付いてません。<br>if-then-elseの代替があれば他も縮みそうなんですが...

% TrackBack (2007-02-26 18:30)

http://d.hatena.ne.jp/KeisukeNakano/20070226/1172482223<br>λx.x K S K @ はてな<br>[OCaml][golf] 謎のバイナリ<br> m.ukaiさんに追い抜かれまくりですが,とりあえず無関係なネイピア数を100(+1)桁出力する問題の記録を更新. ある(インチキな?)方法を使うと,jijixiさんの直接出力するプログラムよりは短くなります. 今のところ79Bですが,まだまだ縮むかもしれません.Smalltalkに追

お名前:
E-mail:
コメント:

トップ «前の日記(2007-02-12) 最新 次の日記(2007-02-15)» 編集

日記ってのは本来、自分で読み返すためにあるもんだよなあ……
もしくは有名人になったら死後に本になったりとかか?

RSS はこちら

jijixi at azito.com