เขียนบล็อกสี่เหลี่ยมของข้อความที่จัดเรียงไว้ในพรม Sierpinskiโดยใช้ช่องว่างขนาดเดียวกันสำหรับส่วนที่ว่างเปล่าสร้างโปรแกรมที่ส่งออกจำนวนการทำซ้ำของพรม
ตัวอย่างเช่นหากบล็อกข้อความของคุณคือ
TXT
BLK
จากนั้นเรียกใช้โปรแกรม
TXTTXTTXT
BLKBLKBLK
TXT TXT
BLK BLK
TXTTXTTXT
BLKBLKBLK
ควรส่งออก1
เพราะรูปร่างของโปรแกรมแสดงถึงการวนซ้ำครั้งแรกของพรม Sierpinski
ในทำนองเดียวกันวิ่ง
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 เพราะนี่คือรูปร่างของการทำซ้ำพรม Sierpinski ที่สอง
เรียกใช้บล็อกข้อความตามที่เป็นอยู่
TXT
BLK
ควรเอาต์พุต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>
เกณฑ์การให้คะแนน
การส่งที่มีบล็อกข้อความเริ่มต้นน้อยที่สุดตามพื้นที่ (ความสูงคูณความกว้าง) เป็นผู้ชนะ TXT\nBLK
ตัวอย่างคือ 3 โดย 2 คะแนน 6. (โดยทั่วไปที่สั้นที่สุดชนะรหัสจึงแท็กรหัสกอล์ฟ.)
Tiebreaker ไปที่การส่งที่ใช้อักขระที่ต่างกันน้อยที่สุดในบล็อกข้อความ หากยังคงผูกคำตอบที่โพสต์ชนะครั้งแรก