งูของคุณนานแค่ไหน


14

หลังจากดำเนินการท้าทายลำดับที่สามงานของคุณคือการเขียนโปรแกรมOuroborosที่ใช้ภาษาได้มากที่สุด

นั่นคือในภาษา A ให้เขียนโปรแกรม pA ซึ่งเอาต์พุตโปรแกรม pB ในภาษา B โปรแกรม pB ควรเอาต์พุตโปรแกรม pC ในภาษา C และต่อ ๆ ไปจนกระทั่งในที่สุดโปรแกรมจะส่งออกโปรแกรมดั้งเดิม pA ในภาษา A

ไม่มีสองภาษาในลูปของคุณสามารถเหมือนกันหรือเซ็ตย่อยหรือซูเปอร์เซ็ตของกันและกัน ไม่มีโปรแกรมใดในลูปที่อาจจะเหมือนกัน

โซ่ที่ยาวที่สุดของภาษาชนะ ความยาวของซอร์สโค้ดจะเป็นตัวแบ่งไทเบรก

นี่คือตัวอย่างการแก้ปัญหาของความยาว 3 ที่กำหนดโดย Ventero

s='print q<puts %%q{s=%r;print s%%s}>';print s%s

ด้วย Python สร้างตัวอย่างของ Perl นี้

print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>

ซึ่งสร้างรหัสทับทิมต่อไปนี้

puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}

ซึ่งจะพิมพ์ตัวอย่าง Python ดั้งเดิม:

s='print q<puts %%q{s=%r;print s%%s}>';print s%s

10
ที่เกี่ยวข้อง: 50 ภาษา "Ouroboros"
algorithmshark


@Ypnypn มันไม่เหมือนกันใช่มั้ย ฉันหมายถึงการทำลูปให้นานที่สุดเท่าที่จะเป็นไปได้ด้วยไทเบรกเกอร์ของความยาวซอร์สโค้ด ไม่มีใครเคยมีโอกาสโพสต์ความยาว 4 Ouroborous มาก่อน :) นอกจากนี้ยังมีวงที่แตกต่างจากห่วงโซ่

มันคล้ายกับอันนี้จริง ๆแต่นั่นไม่ต้องการลำดับวนรอบดังนั้นจึงไม่มีองค์ประกอบควินิน
Martin Ender

4
สัตว์ 50 ภาษาน่าจะเป็นผู้ชนะก่อนที่เราจะเริ่ม

คำตอบ:


8

นี่คือลูปของ 4 ภาษา:

C -> Bash -> Batch -> Python -> C

main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}

ทุบตี

echo "echo print 'main(){char *c=\"echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c\";printf(c,34,39,92,34,c,92,34,39,34);}'"

ชุด

echo print 'main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}'

หลาม

print 'main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}'

ที่น่าประทับใจมาก!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.