空白の部分に同じサイズのスペースブロックを使用して、シェルピンスキーカーペットに配置したときに、カーペットの繰り返し数を出力するプログラムを作成する長方形のテキストブロックを記述します。
たとえば、テキストブロックが
TXT
BLK
その後、プログラムを実行する
TXTTXTTXT
BLKBLKBLK
TXT TXT
BLK BLK
TXTTXTTXT
BLKBLKBLK
1
プログラムの形状は、シェルピンスキーカーペットの最初の反復を表すため、出力する必要があります。
同様に、実行中
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXT TXTTXT TXTTXT TXT
BLK BLKBLK BLKBLK BLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXTTXTTXT TXTTXTTXT
BLKBLKBLK BLKBLKBLK
TXT TXT TXT TXT
BLK BLK BLK BLK
TXTTXTTXT TXTTXTTXT
BLKBLKBLK BLKBLKBLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXT TXTTXT TXTTXT TXT
BLK BLKBLK BLKBLK BLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
これは2番目のシェルピンスキーカーペット反復の形状であるため、2を出力する必要があります。
テキストブロックをそのまま実行する
TXT
BLK
0
0回目の反復と見なすことができるため、出力する必要があります。
これは、それ以降のすべての反復で機能するはずです。(少なくとも理論的には、コンピューターにメモリとすべてが搭載されていると仮定します。)
詳細
- プログラムは、ソースコードに関する情報を読み取ったりアクセスしたりすることはできません。これを厳しい馬の挑戦のように扱ってください。
- 出力はstdoutまたは同様の代替になります。数値とオプションの末尾の改行のみを出力します。入力はありません。
- テキストブロックには、行末記号と見なされない文字が含まれる場合があります。テキストブロックにはスペースを含めることができます。
- カーペットの「空のスペース」は、スペース文字のみで構成する必要があります。
- オプションで、すべてのプログラムの末尾に改行があると想定することもできます。
このスタックスニペットを使用して、任意の反復で特定のテキストブロックのカーペットを生成できます。
<style>#o,#i{font-family:monospace;}</style><script>function c(e){e=e.split("\n");for(var n=new Array(3*e.length),t=0;t<n.length;t++){var l=t%e.length;n[t]=e[l]+(t>=e.length&&t<2*e.length?e[l].replace(/./g," "):e[l])+e[l]}return n.join("\n")}function f(){for(i=document.getElementById("i").value,n=parseInt(document.getElementById("n").value);n>0;)i=c(i),n--;document.getElementById("o").value=i}</script><textarea id='i'placeholder='code block...'rows='8'cols='32'></textarea><br>Iterations <input id='n'type='text' value='1'><br><br><button type='button'onclick='f()'>Generate</button><br><br><textarea id='o'placeholder='output...'rows='8'cols='32'style='background-color:#eee'readonly></textarea>
得点
最初のテキストブロックが面積(幅x高さ)で最小の提出物が勝者です。TXT\nBLK
例は、6のスコアのために2によって3である(基本的に最短コード勝、したがってコードゴルフタグ)。
Tiebreakerは、テキストブロック内で最も少数の異なる文字を使用する送信に進みます。まだ同点の場合、回答は投稿された最初の勝利です。