香風智乃さんが優勝されました。春休みの宿題の良い息抜きになったそうです。記事を言付かっておりますので、ここに掲載させていただきます。雑感Twitterにリンクが流れてきたのでやってみたのですが、割と面白かったです。提出したソースコードの長さの2乗」で計算されます。なんだこの問題...。理論値の0.5に近いスコアが簡単にでたので、そのまま放置です。GCD2000桁ぐらいの整数2つが与えられるのでそのgcdを求める問題でした。入力に妙な制約があって、答えは2^16以下の2の累乗になります。面倒だなと思いました。ソースコードが短いほうがスコアが高くなります。それでも十分良いスコアがでていたので、放置していました。したらダブルスコアぐらいで負け始めたので、まじめに考え始めました。std::plus()で足し算が出来てしまいます。頑張って縮めたビット演算のコードがごみになってしまいました。入れるという残念なコードになりました。これはgccなら__builtin_ctz()という関数を呼ぶだけです。関数も使わないほど単純なコードになりました。なんだこの問題...。Everything一行ごとに整数がやってくるので、それをそのまま出力せよ、ただし42が来たらそこで終了する。これもなるべく短いコードを提出しなければいけません。いうオプションを付けてコンパイルされます。なんだこのフラグ...。プログラム終了のためのexitシステムコール呼び出しをすべて自力で行わないといけないようです。システムコールを自力で呼び出す方法からお勉強です。syscallという命令を実行すれば良いことがわかりました。なんとかそこそこの点数が取れました。出力を止める位置を決め打ちで出来てしまったらしいです。Weaving指定されたアスキーアートを、なるべく小さなコードで表示するという問題です。単純なランレングスでお茶を濁すしかありませんでした。Haltingプログラムが与えられるので、それが停止するかどうかを判別するという問題です。それっぽいことが書いてあるのですが、肝心の文法の定義がどこにも書いてありません。セマンティクスの定義もありません。そもそも与えられたプログラムがCのサブセットだということも書いてません。いうことは、これはプログラムの停止性を判定する問題では無いということですね。あまりにも有名ですが、そのサブセットを書く必要もなさそうです。いうことは、おそらく問題は決め打ちのはず...。同じ入力でスコアがかなりバラつきます。全部yesを返した時のスコアは何回やっても同じです。呼び出すと問答無用でエラーもなく0点にされてしまうところでした。判断がつかなくて大変でした。Quine自分自身を反転したものを、自分自身の長さ回繰り返し出力するプログラムをできるだけ短く書くという問題です。これは勝てないだろうなあと思っていました。すごく苦労しましたが、なんとか正の点数がもらえるコードが完成したので満足です。Bootswatch.。