Best Documented

最高にドキュメントが書かれている

受賞者:Jens Schweikhardt

引用元:https://www.ioccc.org/2015/schweikhardt/prog.c

審査員・作者による説明:https://www.ioccc.org/2015/schweikhardt/hint.html

動作

コラッツ予想の数列を計算する。

$ gcc -Dtyp=uint64_t -o prog prog.c

$ ./prog 6
0000000000000006
0000000000000003 1
000000000000000A 2
0000000000000005 3
0000000000000010 4
0000000000000008 5
0000000000000004 6
0000000000000002 7
0000000000000001 8

入力も出力も16進数で行われることに注意。

解説

コラッツ予想は、偶数なら2で割り、基数なら3を掛けて1を足す、という処理を繰り返していくうちに1にたどり着く、という予想。 動作例に示した6の場合、6→3→10→5→16→8→4→2→1となる。 多倍長整数で計算を行う。

ドキュメントが非常に長く、700行ほどある。 guidelines.txtに書かれた審査プロセスにしたがって、この作品の特徴などをPRしている。 Cコードの静的・動的解析ツールをいろいろ適用した結果も書かれている。 MISRA Cのルールがどのように難読化に寄与したか、なども。

コード形状に特徴はない。 審査プロセスにC beautifierを適用するとあるので、あらかじめindentを適用しておいたとのこと。 1文字の変数名は古いので3文字。 基本的にタンパク質を構成するアミノ酸の3文字表記を採用している。 2の累乗以外のマジックナンバーを使わない、という制約も。