コードのシンボリックネガを印刷する


18

(これは、コードのネガを印刷のバリエーションです。これはとても楽しかったです。MartinBüttner♦に感謝します-このテキストのほとんどは彼のものです。)

シンボルを次の印刷可能なASCII文字と考えてみましょう(スペースが含まれていることに注意してください)。

 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

そして、これらの英数字

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

次のように、辺の長さNの印刷可能なASCII文字の正方形を考えます。

ONE, 
{two}
&3,+=
!four
f|ve.

また、各行と各列には、少なくとも1つの記号と1つの英数字を含める必要があります。(上記の例はこれを満たします。)

そのような正方形のシンボリックネガは、各シンボルが英数字に、またはその逆に置き換えられる同じサイズの正方形であると定義します。たとえば、次は上記の例の有効なシンボリックネガになります。

[&]OK
a...b
1/100
i@#$%
(R) z

特定の文字の選択は、上記のカテゴリに含まれている限り、無関係です。

チャレンジ

あなたの仕事は、辺の長さがN> 1の正方形のソースコードでプログラムを書くことです。これは、そのソースコードのシンボリックネガをSTDOUTに出力します。末尾のスペースは印刷する必要があります。単一の末尾の改行を印刷する場合としない場合があります。

通常のクインルールも適用されるため、直接または間接に独自のソースコードを読み取ってはなりません。同様に、入力された各式の値を自動的に出力するREPL環境を想定してはなりません。

勝者は、最小の辺の長さNのプログラムです。同点の場合、ソースコードのシンボルが最も少ない提出が勝ちます。同点の場合は、最も早い回答が優先されます。


出力は任意のタイプのソースコードである必要はないので、これは本当に「クイン」タイプの課題ですか?
リアム

良い点は、実際にはそうではないと思います。
ルーク

@LiamNoronha出力はソースコードの関数であり、標準のクインルールが適用されるという点で、一般化されたクインだと思います。
マーティンエンダー

1
「独自のソースコードの読み取り」を定義します。たとえば、出力に文字をコピーするコマンドがある場合、これは「読み取り」のインスタンスになりますか?
コナーオブライエン

回答:


11

GolfScript、3×3(4シンボル)

4,m
`3/
n*o

Web GolfScriptでオンラインで試してください。

出力

[0 
1 2
 3]

使い方

4,  # Push the array [0 1 2 3].
  m # Undefined token. Does nothing.
`   # Push the string representation of the array. Pushes "[0 1 2 3]".
 3/ # Split into chunks of length 3. Pushes ["[0 " " 1 " "2 3]"].
n*  # Join the chunks, separated by linefeeds. Pushes the output.
  o # Undefined token. Does nothing.

11

CJam、3×3(5シンボル)

[5,
S*3
/N*

CJamインタープリターでオンラインで試してください。

使い方

[   e# Unmatched [. Does nothing.
 5, e# Push [0 1 2 3 4].
S*  e# Join the integers, separating by spaces. Pushes "0 1 2 3 4".
  3 e#
/   e# Split into chunks of length 3. Pushes ["0 1" " 2 " "3 4"].
 N* e# Join the chunks, separated by linefeeds. Pushes the output.

出力

0 1
 2 
3 4

10

Pyth、3x3、4シンボル

S]1
.5;
S]1

出力:

[1]
0.5
[1]

説明:

  • Sは1要素リストをソートします ]1
  • 数値リテラル.5はとして出力され0.5;ステートメントを終了します(この場合は何もしません)

<alphanum><symbol><alphanum>はPythやCJamでどうやって得ることができるかについて、長くて難しいです。フロートを使用することは私には決してありませんでした...いい仕事です!
デニス

5

C ++、18 x 18

「仕事には常に最悪のツールを選択してください。」

#include<cstdio>  
int main(){ for  (
int line =  0lu;  
1lu*line <  18l;  
1lu*line++){pri\  
ntf(line == 0lu * 
123*line? "\x41.\\
x2e\x02e...\x2e\\ 
x42\x02e...\x2e.\ 
CDE\x00a":  14l!= 
1lu*line?".\x2e.\\
x46\x02e...\x47""\
HIJ\x02e..""KLM"  
 /*O*/"\n":  /*The
bad code:*/"NOP.\ 
QRS\x054." "UVW\  
XYZ\x02e" "\x2e\\ 
x2e\x00a"); 0lu;}}

出力:

A.......B......CDE
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
NOP.QRST.UVWXYZ...
...F....GHIJ...KLM
...F....GHIJ...KLM
...F....GHIJ...KLM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.