約1年前の2015年12月31日、私は次のことを考えていました。
ドアノブは優雅に文字を収集からPPCGのコミュニティと年のために安全にそれらを保ちました。
なんと74人が参加したので、74 種類の印刷可能なASCII文字を使って遊ぶことができます!
2016年のタイムカプセル文字列の74文字を、送信された順に示します。
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
以下は、ASCII順の2016年のタイムカプセル文字列の74文字です(先頭のスペースに注意してください)。
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
取り組むことはそれほど多くありませんが、ここではチャレンジが好きです。
挑戦
タイムカプセル文字列でどの言語が「最適」かを判断するために、74個のタイムカプセル文字のサブセットを使用する必要がある難易度が増加する6つの(201 6の)チャレンジがあります。
6つの明確な課題があると、より多くの言語が競争できるようになりますが、すべての言語に答えて高得点を獲得できるのは最高の言語のみです。
得点:
- 各チャレンジは、使用されているキャラクターの数に応じて0から74までのスコアが付けられます。
- スコアが高いほど優れています。
- 言語がチャレンジを完了できない場合、そのチャレンジのスコアは0です。
- チャレンジの空でないサブセットはすべて完了できます。
- 最終スコアは、6つの課題すべてのスコアの合計です。
- 可能な最高の最終スコアは6×74または444です。
課題
1.実行する
言語のコードがそもそも実行できないと、何もできなくなります。
コンパイル時または実行時エラーなしで実行/実行される、可能な限り最長の完全なプログラムを作成します(74個のタイムカプセル文字のみを使用してください)。
プログラムが何をするかは関係ありません。入出力があるか無限ループに入るかは関係ありません。エラーなしで実行されることだけが重要です。(警告は問題ありません。また、不適切なユーザー入力によるエラーも同様です。)
コメントが許可されているため、これは
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Pythonでスコア74。
(これがあなたの言語が完了することができる唯一の挑戦であるならば、答えることを恐れてはいけませんが、多くの票も期待しないでください。)
スコア=プログラムの長さ(プログラムが長いほど良い)
2. I / O
入力または出力の形式を持たない言語は、実行できない言語とほとんど同じくらい役に立たない。
与えられた印刷可能なASCIIの文字!
(0x33の)の}
前と後(0x7D)を含め、出力可能なASCII文字を。
出力は、長さ2の文字列またはリスト、またはスペースまたは改行で区切られた文字にすることができます。
たとえば、入力が}
出力の場合、|~
or ["|", "~"]
または| ~
orになり|\n~
ます。
同様に、 "
はの出力で!
、AC
はの出力ですB
。
スコア= 74-プログラムの長さ(プログラムは短いほど良い)
3.分岐可能性
多くの場合、条件はチューリング完全性の要件であり、これは多くの場合、有用な言語の要件です。
正の整数が与えられ、10進数で終わる場合16
は6
、aに変更して7
結果を出力します。それ以外の場合は、入力を変更せずに出力します。必要に応じて、入出力に文字列を使用できます。
例:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
スコア= 74-プログラムの長さ(プログラムは短いほど良い)
4.ループ可能性
ループを実行できない言語は、繰り返しコードを生成するため、しばらくプログラミングの休憩を取る必要があります。
正の整数を指定すると、任意の2つの異なる印刷可能なASCII文字を交互に配置する同心の小さな正方形のパターンで満たされたその辺の長さのASCIIアート正方形を出力します。異なる入力に対して同じ2文字である必要はありません。
例えば:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
スコア= 74-プログラムの長さ(プログラムは短いほど良い)
5.数学
数字や数学が苦手な言語は、人文科学専攻にも向いているかもしれません。
入力なしで、2016の正と負の72の整数除数を任意の順序で出力します。出力は、合理的な方法で文字列またはリストとしてフォーマットできます。
例:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
スコア= 74-プログラムの長さ(プログラムは短いほど良い)
6.密教
(いいえ、そうではありません。)PPCGの私たちは難解なものが好きで、クインはその良い例です。
通常の馬のルールに従って、できる限り長い馬を書きます。クインは、入力を一切受け取らず、それ自体を出力するプログラムです。
スコア=プログラムの長さ(プログラムが長いほど良い)
特定のルール
- 6つの課題のそれぞれにおいて、プログラムは、好きなように再配置された74個のタイムカプセルキャラクターのサブセットでなければなりません。空のサブセットまたは不適切なサブセットである可能性があるため、各プログラムには0文字から74文字までの文字を含めることができます。
- 入力/出力/コードの最後にある単一の末尾の改行は、一部の言語ではこれを必要とするか、簡単に回避できないため、どこでも問題ありません。
- 特に指定がない限り、各チャレンジはデフォルトに従って機能または完全なプログラムとして完了することができます。
- すべての課題は同じ言語で完了する必要があります。
- 地球上のどこでも 2017年以前に作成された言語(または言語のバージョン)を使用する必要があります。
- タイムカプセルにキャラクターを追加したかどうかにかかわらず、誰でも回答できます。
2016年のタイムカプセルキャラクターを自由に使用してチャレンジしてください。
6×74 or 444
空のプログラムを意味するため、それが不可能であることはかなり確実です。そのプログラムをとる3入力の二つは、それらのcharを有することを意味するように、従って、442は、実際の最小