ทำให้ RNG ที่หายไป


17

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")]

ลองออนไลน์!

นี่คือดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น


ภาพรวมของ Lost

สิ่งที่ขาดหายไปคือการห่อหุ้มภาษา IO 2D โดยนัยซึ่งเอามาจากรูปแบบของไคลน์ นี่คือสูตรโกงอย่างรวดเร็วของคำสั่งที่หายไป

  • \, /, |กระจกทรัพย์สินทางปัญญา

  • <, ^, >, vคะแนน IP ในทิศทางที่

  • [สะท้อนไอพีถ้ามันเคลื่อนไปทางตะวันออก; จะกลายเป็น]ถ้า IP เคลื่อนที่ในแนวนอน

  • ]สะท้อนไอพีถ้ามันเคลื่อนไปทางตะวันตก; จะกลายเป็น[ถ้า IP เคลื่อนที่ในแนวนอน

  • ! ข้ามการดำเนินการถัดไป

  • ? ดึงออกจากด้านบนของสแต็กและกระโดดถ้าไม่เป็นศูนย์

  • : ทำซ้ำส่วนบนสุดของสแต็ก

  • $ สลับสองรายการบนสุดของสแต็ก

  • ( ดึงข้อมูลจากสแต็กและดันไปยังขอบเขต

  • ) ดึงข้อมูลจากขอบเขตและส่งไปยังสแต็ก

  • 0- 9กด n ไปด้านบนสุดของสแต็ก

  • "เริ่มต้นและสิ้นสุดตัวอักษรสตริง ในระหว่างคำสั่งตัวอักษรสตริงจะไม่ถูกเรียกใช้และแทนที่ค่าอักขระของพวกเขาจะถูกผลักไปยังกอง

  • + เพิ่มตัวเลขสองอันดับแรก

  • * ทวีคูณตัวเลขสองอันดับแรก

  • - คูณด้านบนด้วย -1

  • % ปิดความปลอดภัย

  • # เปิดความปลอดภัย

  • @ สิ้นสุดการดำเนินการหากความปลอดภัยปิด (เริ่มต้น)


จะเกิดอะไรขึ้นถ้าคุณพยายามสลับสองค่าจากสแต็ก แต่มีเพียงหนึ่งค่าหรือลองป๊อปอัพจากสแต็กเปล่า
pppery

@ppperry สแต็กจะถูกเติมด้วยศูนย์โดยนัย
โพสต์ Rock Garf Hunter

1
ข้อมูลต่ำเกินไปเกี่ยวกับภาษา มันห่อหรือไม่ ความปลอดภัยหมายถึงอะไร คำอธิบายของ Bracets ทำให้เข้าใจผิด? ขอบเขตใช้งานอย่างไร?
Possum ที่ตายแล้ว

@DeadPossum ฉันพยายามทำให้รัดกุม มันห่อ ความปลอดภัยได้อธิบายไว้ในคำถามแล้ว ฉันไม่รู้ว่าคุณหมายถึงอะไรเกี่ยวกับวงเล็บ []ทำหน้าที่เป็นประตู<>ชี้ไปในทิศทางและ()จัดเก็บและเรียกคืนจากขอบเขต ขอบเขตที่ใช้ในการจัดเก็บค่า
โพสต์ Rock Garf Hunter

@WeatWizard ดังนั้นความปลอดภัยเป็นเพียงเงื่อนไข@หรือมีการใช้งานอื่น ๆ becomes ] if the ip is moving horizontallyเกี่ยวกับวงเล็บฉันไม่เข้าใจส่วนนี้: การเคลื่อนที่ไปทางทิศตะวันออกก็อยู่ในแนวนอนด้วยใช่ไหม
Dead Possum

คำตอบ:


12

81 101 ไบต์

นี่อาจจะเป็นสนามกอล์ฟต่อไป ...

>%(0@>%(1@>%(2@>%(3@>%(4@>%(5@>%(6@>%(7@>%(8@>%(9@
^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<

ลองออนไลน์!


1
วิธีการที่น่าสนใจ! ฉันไม่ได้คิดอย่างนั้น
โพสต์ร็อคการ์ฟฮันเตอร์

1
101 ไบต์ที่แก้ไขการพิมพ์สองครั้ง เพิ่งเพิ่มป๊อปอัพสแต็กก่อนที่ความปลอดภัยจะถูกปิดดังนั้นหากคุณกดหมายเลขที่จุดเริ่มต้นก็สามารถป๊อปอัพดันมันอีกครั้งแล้วตาย ฉันไม่รู้ว่านี่เป็นเทคนิคแบบสุ่มหรือไม่แม้ว่า ...
Arnold Palmer

1
แท้จริงฉันขึ้นมาด้วยความคิดเดียวกันในเวลาเดียวกัน ...
pppery

1
ผลลัพธ์ของคุณไม่เหมือนกัน 0มีโอกาสในการพิมพ์ 7/101 ครั้ง (มีอย่างใดอย่างหนึ่ง<หรือ^ภายใต้บล็อกรวมทั้งสัญลักษณ์>และ%) 1- 8มีโอกาส 10/101 และ9มีโอกาส 11/101 ดูเหมือนว่าอาจมีโอกาสที่จะเกิดขึ้นตลอดไป
Arnold Palmer

1
มันต้องห่อหรือมิฉะนั้นสิ่งนี้จะยุติลงเมื่อมันเริ่มต้นที่บรรทัดบนสุด
pppery

9

แพ้ 54 ไบต์

>%(0@>%(1@
@>%(2@>%(3
5@>%(4@>%(
(7@>%(6@>%
%(9@>%(8@>

ลองออนไลน์!

คัดลอกมาจากคำตอบของ ppperyและทำสิ่งสุ่ม ฉันไม่รู้อะไรเกี่ยวกับภาษาที่หายไป และฉันก็ไม่รู้ด้วยซ้ำว่าเกิดอะไรขึ้นกับรหัสข้างต้น มันใช้งานได้ไหม (ฉันไม่รู้)


รหัสของคุณสร้างผลลัพธ์ได้มากกว่าครึ่งหนึ่งของ ppperry ฉันเดาว่าเป็นเพราะวิธีการ-Qทำงานอย่างไร เอาท์พุทดูเหมือนกระจายตามปกติอยู่แล้ว มันคงจะดีถ้ามีสเป็คเต็มรูปแบบของภาษาที่เชื่อมโยงในคำถาม
แอรอน

@ Aaron ฉันควรจะอธิบายวิธีการ-Qทำงาน เนื่องจากภาษาเป็นแบบสุ่มการตรวจสอบจึงดำเนินการโดยใช้ความเป็นไปได้ทั้งหมด -Qทำสิ่งนี้และพิมพ์ผลลัพธ์ทั้งหมด -Qที่สั้นกว่าโปรแกรมความเป็นไปได้น้อยที่มีและเอาท์พุทน้อยลงมาจาก
โพสต์ Rock Garf Hunter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.