-X
ลองออนไลน์!
ลองย้อนกลับ!
คำอธิบาย
ปรากฎว่าสิ่งนี้ง่ายกว่าการท้าทายครั้งก่อนใน Stack Cats โปรแกรมเต็มรูปแบบ (หลังจากใช้-m
) -X-
ที่นี่คือ X
ใช้ในการสลับสแต็คทางซ้ายและขวาของหัวเทปนั่นคือไม่มีผลกับสแต็กเริ่มต้นเลยเราสามารถข้ามได้ แต่แล้วโปรแกรมก็มีประสิทธิภาพเพียง--
(ลบล้างส่วนบนสุดของสแต็กสองครั้ง) ซึ่งไม่ทำอะไรเลย
สำหรับโปรแกรมผกผันใช้ให้-m
X-X
อีกครั้งX
ไม่ทำอะไรเลยดังนั้นโปรแกรมจึงมีประสิทธิภาพเพียง-
ซึ่งขัดแย้งกับส่วนบนสุดของสแต็ก
โซลูชัน 2 ไบต์อื่น ๆ เท่านั้น-=
แต่ก็เหมือนกันทุกประการ ความแตกต่างเพียงอย่างเดียวคือการ=
แลกเปลี่ยนเฉพาะยอดของกองที่อยู่ติดกันไม่ใช่กองทั้งหมด
แต่อีกครั้งการใช้-m
รู้สึกเหมือนโกงดังนั้นด้านล่างเป็นโซลูชันที่ใช้โปรแกรมที่มิเรอร์ทั้งหมด
:I<->I:
ลองออนไลน์!
ลองย้อนกลับ!
คำอธิบาย
การพิจารณาจากคำตอบก่อนหน้านี้ยังคงใช้ : ความต้องการใด ๆ I
วิธีการแก้ปัญหาที่ถูกต้องที่จะใช้ตัวละครที่จับคู่และ โซลูชั่นที่เป็นไปได้หกประการ (รวมอยู่ในลิงค์ TIO) เหมือนกันหมด -
และ_
เทียบเท่าในโปรแกรมนี้และ:
สามารถถูกแทนที่ด้วย|
หรือT
(ซึ่งทำเช่นเดียวกันสำหรับอินพุตที่ไม่เป็นศูนย์ ฉันเพิ่งเลือกอันนี้เพื่ออธิบายเพราะมันง่ายที่สุด
ดังนั้นโปรดจำไว้ว่าสแต็กเริ่มต้นเก็บอินพุตไว้ที่ด้านบนของ-1
(ด้านบนของศูนย์จำนวนมากอนันต์) ในขณะที่สแต็คอื่น ๆ ตามเทปจะเก็บค่าศูนย์ไว้เท่านั้น Stack Cats ยังมีคุณสมบัติที่โปรแกรมที่มีความยาวเท่ากันไม่ได้ทำอะไรเลย (หากมันถูกยกเลิก แต่เราไม่สามารถใช้ลูปสำหรับความท้าทายนี้ได้) จากนั้นก็เหมือนกันจริงสำหรับโปรแกรมที่มีความยาวคี่ซึ่งตัวละครศูนย์กลางไม่ได้ทำอะไรเลย ... ลองดู:
: Swap the input with the -1 below.
I Move the -1 one stack to the left and turn it into +1.
< Move another stack left (without taking the value).
- Negate the zero on top of that stack (i.e. do nothing).
ดังนั้นช่วงครึ่งหลังของโปรแกรมจะเป็นการยกเลิกครึ่งแรกและเราก็จบลงด้วยอินพุตที่ด้านบนของ-1
อีกครั้ง
:I>-<I:
โปรแกรมที่ตรงกันข้ามคือ มาดูกันว่าการเปลี่ยนแปลงสิ่งต่าง ๆ :
: Swap the input with the -1 below.
I Move the -1 one stack to the left and turn it into +1.
> Move one stack right, i.e. back onto the initial stack which still holds the input.
- Negate the input.
< Move back to the left where we've parked the 1.
I Move that 1 back onto the initial stack and turn it back into a -1.
: Swap the -1 below the negated input to act as an EOF marker.