J, 28 ตัวอักษร
((C.!.2=_1^i.&0)&.".&.stdin''
ลำดับการป้อนข้อมูลเป็นแถวหลักพร้อมแถวอ่านสลับซ้ายไปขวาและจากขวาไปซ้ายในเส้นทางเดียวทั่วตาราง ถือว่าศูนย์เป็นของมุมซ้ายบน
การใช้งานบน Windows:
<nul set /p="0 1 2 3 7 6 5 4 8 9 10 11 15 14 13 12" | jconsole c:\...\15.jhs
คำอธิบาย:
<nul set /p=
ใช้เพื่อป้องกันการขึ้นบรรทัดใหม่ในอินพุตซึ่งecho
สร้างที่".
ไม่ชอบ แน่นอน, Unix echo /n
สนับสนุน
v&.".&.stdin''
อ่าน "v ภายใต้การแยกวิเคราะห์ภายใต้ stdin" ความหมาย "อินพุตแล้วแยกวิเคราะห์อินพุตจากนั้นทำ v แล้วเลิกทำการแยกวิเคราะห์ (รูปแบบ =) แล้วยกเลิกการป้อนข้อมูล (= เอาต์พุต)" 1!:1]3
สั้นกว่าหนึ่งตัวอักษร แต่ไม่มีอินเวิร์สที่นิยามไว้
C.!.2
หมายถึง "การเปลี่ยนแปลงความเท่าเทียมกัน" มันจะส่งกลับทั้ง1
(เท่าเทียมกันเท่าเทียมกัน) หรือ_1
(คี่เท่าเทียม) นั่นคือ,_1^inversions
_1^i.&0
หมายถึง "-1 ถึงพลังของดัชนี 0"
- ด้วยเหตุนี้
C.!.2=_1^i.&0
หมายความว่า "การเปลี่ยนแปลงของความเท่าเทียมกันเท่าเทียมกับตำแหน่งของหลุม?"
มันใช้งานได้กับบอร์ด 4x4 แต่ถ้าตำแหน่งสุดท้ายที่ต้องการคือซ้าย - ขวา - แถวใหญ่จากนั้นการเรียงสับเปลี่ยนตำแหน่งที่แก้ไขจะมีจำนวนการเปลี่ยนคี่เป็นจำนวนคี่ (สำหรับลำดับอินพุตใด ๆ ) เมื่อตำแหน่งของรูที่ต้องการเคลื่อนที่จากซ้ายไปขวาล่าง ในทั้งสองกรณีการแก้ไขคือหนึ่งอักขระ: เพิ่ม-
หลังจาก=
เพื่อย้อนกลับพาริตีที่คาดไว้
หลักฐานความถูกต้อง:
หลังจากการย้ายแต่ละครั้งศูนย์จะเปลี่ยนตำแหน่งที่มีตัวเลขจำนวนหนึ่งพลิกความเท่าเทียมกันของการเปลี่ยนแปลง ศูนย์ยังสลับกันระหว่างตำแหน่งกระดานหมากรุกสีขาวและสีดำซึ่งระบุด้วยตำแหน่งคี่และคู่ในการสั่งซื้ออินพุต ดังนั้นเงื่อนไขนี้เป็นสิ่งจำเป็น นอกจากนี้ยังเพียงพอโดยการโต้แย้งการนับ: มันเป็นความรู้ทั่วไปที่ตำแหน่งครึ่งหนึ่งสามารถแก้ไขได้ เงื่อนไขนี้กรองออกครึ่งหนึ่งของตำแหน่งที่เป็นไปได้