他のクインパズル(より具体的には、これ)と同様に、それ自体のソースを生成するプログラムを作成します。
ここに新しい工夫があります:生成されるコードはソースと同一であってはなりません。むしろ、最初のものを作成する別のプログラムを出力する必要があります。
上記に関連する課題は、2つの言語間をジャンプすることで達成されました。これはたった1つの言語で行われると思っていますが、ソースの2つ(またはそれ以上)のバージョンは大きく異なるはずです(以下のルールを参照)。この制約により、単一文字の回答は許可されないため、最終的な提出にはもう少し考えを加える必要があります。
ルール
- コードは1つの言語でのみ作成する必要があります。(複数の提出物、各言語に1つは完全に受け入れられます。)
- 異なるコードバージョンは、構文的に明確でなければなりません。つまり、コードの抽象構文ツリーを作成する場合、少なくとも1つのノードが異なる必要があります。
- 供給ASTは必要ではないだろうが、あなたはあなたのプログラムのそれぞれについて、1を提供するために、傾斜して感じた場合、それは考え判断に役立ちます。
- すべての構文が構文的に異なる限り、必要な数の反復を作成できます。(スコアが役立つ場合は、以下を参照してください。)
得点
最終スコアは、すべてのプログラムの平均長さをプログラムの数で割ったものになります。
例1:
A(Bのソース)= 50文字
B(Aのソース)= 75文字
最終スコア= 31.25
例2:
A(Bのソース)= 50文字
B(Cのソース)= 75文字
C(Aのソース)= 100文字
最終スコア= 25