มี bijection ที่รู้จักกันดีระหว่างการเรียงสับเปลี่ยนขององค์ประกอบ n และตัวเลข 0 ถึง n! -1 เช่นนั้นการเรียงลำดับพจนานุกรมของการเปลี่ยนลำดับและตัวเลขที่สอดคล้องกันจะเหมือนกัน ตัวอย่างเช่นด้วย n = 3:
0 <-> (0, 1, 2)
1 <-> (0, 2, 1)
2 <-> (1, 0, 2)
3 <-> (1, 2, 0)
4 <-> (2, 0, 1)
5 <-> (2, 1, 0)
มันเป็นที่รู้จักกันดีว่าการเรียงสับเปลี่ยนขององค์ประกอบ n ประกอบกันเป็นกลุ่ม (กลุ่มสมมาตรของคำสั่ง n!) - ดังนั้นโดยเฉพาะอย่างยิ่งการเรียงสับเปลี่ยนขององค์ประกอบหนึ่งอันที่นำไปใช้กับการเรียงสับเปลี่ยนครั้งที่สองขององค์ประกอบ n .
ตัวอย่างเช่น (1, 0, 2) ใช้กับ (a, b, c) ผลตอบแทน (b, a, c) ดังนั้น (1, 0, 2) นำไปใช้กับ (2, 1, 0) ผลผลิต (1, 2 , 0)
เขียนโปรแกรมที่รับอาร์กิวเมนต์จำนวนเต็มสามตัว ได้แก่ n, p1 และ p2; ตีความ p1 และ p2 เป็นพีชคณิตขององค์ประกอบ n; ใช้ครั้งแรกกับวินาที และส่งออกจำนวนเต็มที่สอดคล้องกัน ตัวอย่างเช่น:
$ ./perm.sh 3 2 5
3
A.
เมื่อวานนี้ แต่ก็เหนื่อยเกินกว่าจะลองและประกอบคำสั่งที่ถูกต้องสำหรับคำถาม O :-)