フラッシュストレージの信頼性にうんざりして、すべてのプログラムを古き良き1,440 KiBフロッピーのいずれかに保存することにしました。しかし、3,000個のプログラムさえコピーしなかった後、ディスクはいっぱいになりました。それはどうして可能でしょうか?コードゴルフの技術に精通しているため、プログラムのほとんどは100バイトの長さでさえないため、十分なスペースが残っているはずです...
スーパーユーザーに問い合わせた後、ファイルシステムのクラスターサイズ、FAT12のデザイナーの邪悪なプロットに悩まされていることがわかります。これは、フロッピーのかなりの部分を未使用のままにして、実際に必要以上に購入を余儀なくさせます。
フロッピーを追加購入しますか?絶対に!複数のプログラムを1つのファイルに保存するだけであれば、クラスターサイズは問題になりません。これは、同じソースコードに対して異なるコンパイラー/インタープリターが異なる動作をするためです。
仕事
単一のクラスター(512バイト以下)に収まり、次のタスクをできるだけ多く解決するポリグロットを作成します。
すべての入力を読み取り、印刷します。
Print Hello、World!。
入力として行/引数(name)を読み取り、ハッピーバースデー[name]を出力します!。
すべての入力を読んで、タブが大好きです!1つ以上のタブレータ(0x09)が含まれていて、スペースが嫌いです!そうでない場合。
2行/引数を読み取り、2番目が最初のサブストリングである場合は真実の値を出力し、そうでない場合は偽の値を出力します。
行/引数を読み取り、その文字が厳密に昇順である場合は真実の値を出力し、そうでない場合は偽の値を出力します。
行/引数および文字を読み取り、その文字のすべての出現のインデックスを出力します。
行/引数を読み取り、出現回数が最も多い文字を印刷します。
間の2つの整数を読む0と255とそれらの合計を印刷します。
0から255までの単一の整数を読み取り、その除算の商と剰余を7で出力します。
1から255までの単一の整数を読み取り、それが合成数(1でも素数でもない)である場合は真理値を出力し、そうでない場合は偽値を出力します。
1から255までの単一の整数を読み取り、それが2のべき乗である場合は真理値を出力し、そうでない場合は偽値を出力します。
間の2つの整数を読む0と255と大きな1つを出力します。
間進整数読み取る0と255を 16進表現を印刷します。
間の単一の整数を読む0と255とのハミング重み(1ビットの数)を印刷します。
単一の整数を読み取るNとの間の1と13と印刷FをN、N 番目の フィボナッチ数。
たとえば、入力の
13
場合、print233
。
入力の行/引数を読み取り、フレーム化します。
たとえば、inputの
Programming Puzzles & Code Golf
場合、次を印刷します。+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
文字の長方形ブロックを読み取り、時計回りに4分の1回転させます。
たとえば、入力用
tye xll epb tma id sa s e i r hsn Tiu
これを印刷:
This text is simply unreadable
間の整数を読む1及び40を、その辺の長さのダイヤモンドを印刷します。
たとえば、inputの
3
場合、次を印刷します。/\ / \ / \ \ / \ / \/
これを印刷:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
得点
単一の512バイトクラスターに適合する単一ファイルに最大数のプログラムを組み込むことに成功した答えが勝ちです。タイはバイトカウントによって分割されます(低いほど良い)。
追加のルール
スコアに対して要求する各タスクについて、同じファイル(バイトごとのバイト)が、この特定のタスクを解決する完全なプログラム(選択した言語の)を構成する必要があります。
各タスクは異なる言語で解決する必要があります。
同じ言語の異なるバージョンではない場合、言語は異なるものとしてカウントされます。たとえば、JavaScriptは1つ、Pythonは1つ、TI-BASICは1つだけですが、C、C ++、Octave、およびMATLABは4つの異なる言語です。
各タスクに選択される言語は、プログラミング言語の通常の定義を満たす必要があります。
さらに、言語は2015年9月9日までに公開および実装されている必要があります。
コンパイラ/インタープリターは、予期しない動作を生成するために非標準フラグを必要としない場合があります。
この規則の例外には、特定の言語の指定、(単一の)ファイルからのプログラムの読み取り、またはバナーの抑制に必要なフラグが含まれます。
各タスクの入力は、印刷可能なASCII文字(0x20〜0x7E)と改行(0x0A)で構成され、長さは255バイトを超えません。
タスクで特に明記されていない限り、すべての整数は10進数または単項で読み取ることができます。
無効な入力の動作は未定義です。
STDIN(またはそれに最も近い代替)から、またはコマンドライン引数として入力を読み取ることができます。
タスクが2つの入力の読み取りを必要とする場合、任意の1バイト区切り文字で区切られた、任意の順序でそれらを読み取ることができます。
入力ピースの1つが行の場合、可能な区切り文字は改行のみです。
出力をSTDOUT(または最も近い代替)に出力します。STDERRへのすべての出力は無視されます。
各タスクには、標準のコードゴルフ規則が適用されます。
特に、これには、このチャレンジに対して明示的に許可されているoutputのハードコーディングを除き、デフォルトで禁止されている抜け穴が含まれます。
2>/dev/null
標準出力に正しい出力を取得するときに問題ないということですか?念のために。