空ではないプログラムまたは関数を作成し、呼び出されると単一の値1または0を出力し、複数回呼び出されると、出力番号はプログラムのソースコードのバイナリ表現を生成します(コードのコンパイル元と同じコードページで) / interpreted)。
たとえば、ソースコードがabc
(ASCII)の場合、出力は次のようになります。
1st call: 0 // ASCII letter 'a'
2nd call: 1
3rd call: 1
4th call: 0
5th call: 0
6th call: 0
7th call: 0
8th call: 1
9th call: 0 // ASCII letter 'b'
10th call: 1
11th call: 1
12th call: 0
13th call: 0
14th call: 0
15th call: 1
16th call: 0
17th call: 0 // ASCII letter 'c'
18th call: 1
19th call: 1
20th call: 0
21st call: 0
22nd call: 0
23rd call: 1
24th call: 1
After the 24th call, the behaviour is undefined.
ソースのバイナリ表現には、少なくとも1つの0ビットと1つの1ビットが含まれている必要があります。
1と0の代わりに、2つの異なる一貫した値(true
andなどfalse
)を出力できます。
元のソースのバイナリ表現を出力する自己修正プログラムは、ソースコードを読み取って次に印刷するものを見つけなければ、許可されます。
これはcode-golfであるため、バイト単位の最短回答が優先されます。