ソースコードの2倍化に関連するいくつかの課題がありました:こことここです。ここでのタスクは少し難しいですが、ほぼすべての言語で実行できるはずです。
このチャレンジでは、任意の正の整数を取り込みます。プログラムはその整数をdoubledで出力する必要があります。ソースコードを2倍にすると、正の整数が取り込まれ、2乗して出力されます。ます。
ソースコードはどのように2倍になりましたか?さて、あなたはそれをあなたの方法で持つことができます。つまり、ソースコードを任意の等しい長さのバイトまたは文字列(またはトークン化された言語のトークン)に分割できます。各チャンクを連続して2回繰り返す。
の初期プログラムABCDEFGHIJKL
(長さ12)の場合、考えられるすべての二重化されたプログラムは次のとおりです。
Chunk length | Doubled source code
-------------+-------------------------
1 | AABBCCDDEEFFGGHHIIJJKKLL
2 | ABABCDCDEFEFGHGHIJIJKLKL
3 | ABCABCDEFDEFGHIGHIJKLJKL
4 | ABCDABCDEFGHEFGHIJKLIJKL
6 | ABCDEFABCDEFGHIJKLGHIJKL
12 | ABCDEFGHIJKLABCDEFGHIJKL
これは、素数のプログラムは2つの方法でしか倍増できないことに注意してください。すべての文字が倍増するか、プログラム全体が2回繰り返されます。
ルール:
- コードは完全なプログラムまたは機能でなければなりません。
- 標準的な抜け穴は禁止されています。
- 標準のI / Oメソッドが許可されます。
- 空白や改行を含むすべての文字/バイトは、コードの長さでカウントされ、チャンクに寄与します。
- あなたは入力とその四角はあなたの言語のint型/整数型で表すことができることを前提としています。
- あなたはないかもしれません末尾の改行やその他の文字を想定する。
- バイト数の後の見出しにチャンクサイズを指定します。
- これはコードゴルフですなので、短いプログラムの方が優れています!2つのプログラムの長さが同じである場合、小さいチャンク長を使用するプログラムが優先されます。(短いチャンク長を使用する長いプログラムがある場合は、投稿する価値もあります!)
- プログラムが2番目の入力/行を必要とする場合、その値について何も仮定しません。特に、2番目の入力が空の場合、最初の入力と同じ場合、または異なる整数の場合、プログラムは動作するはずです。プログラムが2番目の入力/行を必要としない場合、この制限を無視できます。
5 -> 10
; ダブルコード:5 -> 25 25
。
.0
か?