Lostเป็นภาษาการเขียนโปรแกรม 2 มิติซึ่งตำแหน่งเริ่มต้นและทิศทางของ ip นั้นสุ่มทั้งหมด
สิ่งนี้ทำให้ยากมากที่จะทำให้โปรแกรมที่กำหนดขึ้นได้ยาก อย่างไรก็ตามวันนี้เราไม่ได้เขียนโปรแกรมที่กำหนดขึ้นมาเรากำลังเขียน RNG
เขียนโปรแกรม Lost ที่ไม่มีอินพุตและเอาต์พุตเป็นตัวเลขหลักเดียว (0,1,2,3,4,5,6,7,8 หรือ 9) โดยมีตัวเลขทั้งหมดที่มีความน่าจะเป็นเท่ากับเอาท์พุท เนื่องจากตำแหน่งและทิศทางเริ่มต้นของ Lost เป็นเพียงแหล่งกำเนิดของการสุ่มเท่านั้นวิธีเดียวในการทำเช่นนี้คือให้ทุกตำแหน่งในแหล่งที่มาของคุณส่งออกตัวเลขที่แตกต่างจาก 0 ถึง 9 โดยมีจำนวนเท่ากันออกแต่ละหลัก
คุณสามารถคำนวณความน่าจะเป็นของแต่ละหลักโดยใช้การ-Q
ตั้งค่าสถานะและไพพ์ลงในสคริปต์หลามนี้
import sys
a=sys.stdin.read().split()[:-1]
for x in range(10):print x,':',a.count(`x`)
print[x for x in a if x not in list("1234567890")]
นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น
ภาพรวมของ Lost
สิ่งที่ขาดหายไปคือการห่อหุ้มภาษา IO 2D โดยนัยซึ่งเอามาจากรูปแบบของไคลน์ นี่คือสูตรโกงอย่างรวดเร็วของคำสั่งที่หายไป
\
,/
,|
กระจกทรัพย์สินทางปัญญา<
,^
,>
,v
คะแนน IP ในทิศทางที่[
สะท้อนไอพีถ้ามันเคลื่อนไปทางตะวันออก; จะกลายเป็น]
ถ้า IP เคลื่อนที่ในแนวนอน]
สะท้อนไอพีถ้ามันเคลื่อนไปทางตะวันตก; จะกลายเป็น[
ถ้า IP เคลื่อนที่ในแนวนอน!
ข้ามการดำเนินการถัดไป?
ดึงออกจากด้านบนของสแต็กและกระโดดถ้าไม่เป็นศูนย์:
ทำซ้ำส่วนบนสุดของสแต็ก$
สลับสองรายการบนสุดของสแต็ก(
ดึงข้อมูลจากสแต็กและดันไปยังขอบเขต)
ดึงข้อมูลจากขอบเขตและส่งไปยังสแต็ก0
-9
กด n ไปด้านบนสุดของสแต็ก"
เริ่มต้นและสิ้นสุดตัวอักษรสตริง ในระหว่างคำสั่งตัวอักษรสตริงจะไม่ถูกเรียกใช้และแทนที่ค่าอักขระของพวกเขาจะถูกผลักไปยังกอง+
เพิ่มตัวเลขสองอันดับแรก*
ทวีคูณตัวเลขสองอันดับแรก-
คูณด้านบนด้วย -1%
ปิดความปลอดภัย#
เปิดความปลอดภัย@
สิ้นสุดการดำเนินการหากความปลอดภัยปิด (เริ่มต้น)
[]
ทำหน้าที่เป็นประตู<>
ชี้ไปในทิศทางและ()
จัดเก็บและเรียกคืนจากขอบเขต ขอบเขตที่ใช้ในการจัดเก็บค่า
@
หรือมีการใช้งานอื่น ๆ becomes ] if the ip is moving horizontally
เกี่ยวกับวงเล็บฉันไม่เข้าใจส่วนนี้: การเคลื่อนที่ไปทางทิศตะวันออกก็อยู่ในแนวนอนด้วยใช่ไหม