8
Scrambles Cube ของ Rubik
งานของคุณคือการสร้างลำดับการเคลื่อนที่แบบสุ่มซึ่งสามารถใช้ในการช่วงชิง Cube ของ Rubik ช่วงชิงดังกล่าวประกอบด้วยการเคลื่อนไหว 25 ครั้ง ย้ายแต่ละประกอบด้วยตัวอักษรตามด้วยหนึ่งคำต่อท้ายUDRLFB'2 สัญกรณ์นี้เรียกว่าสัญกรณ์ Singmaster UDRLFBแสดงถึงหนึ่งใน 6 ใบหน้าและคำต่อท้ายที่'2เป็นตัวเลือกแสดงถึงมุมเลี้ยว ข้อมูลนี้ไม่จำเป็นต้องใช้ในการแก้ปัญหา เพื่อให้มั่นใจว่าสัญญาณรบกวนนั้นมีคุณภาพดีต้องใช้กฎสองข้อต่อไปนี้: การเคลื่อนที่สองครั้งติดต่อกันจะต้องไม่มีตัวอักษรเดียวกัน นี้ห้ามการเคลื่อนไหวต่อเนื่องUU, DD, RR, LL, FFและBBและการรวมกันของพวกเขาทั้งหมดโดยใช้ตัวเลือกต่อท้ายเหมือนหรือU2UU'U' คู่การย้ายเหล่านี้ถูกแบนเนื่องจากสามารถลดการเคลื่อนไหวเป็น 1 หรือ 0 ได้อย่างง่ายดาย U2Uมีผลเช่นเดียวกับU', ผลเช่นเดียวกับR'R การเคลื่อนไหวติดต่อกันสามครั้งจะต้องไม่อยู่ในกลุ่มตัวอักษรเดียวกัน กลุ่มตัวอักษรที่อยู่UD, และRL FBกฎนี้ยังห้ามการเคลื่อนไหวต่อเนื่องUDU, DUD, RLR, LRL, FBF, BFBและการรวมกันของพวกเขาทั้งหมดโดยใช้ตัวเลือกต่อท้ายเช่นU2DU, หรือRL'RB2FB' กลุ่มจัดเรียงใบหน้าตามแกนการเคลื่อนไหว UและDอยู่ในกลุ่มเดียวกันเพราะทั้งคู่หันไปรอบแกนเดียวกัน ดังนั้นการUเคลื่อนไหวจะไม่ส่งผลต่อชิ้นส่วนของDใบหน้าและการDเคลื่อนไหวจะไม่ส่งผลกระทบต่อชิ้นส่วนของUใบหน้า ดังนั้นสองย้ายสามารถแลกเปลี่ยนUDUมีผลเช่นเดียวกับและนี้สามารถลดลงได้UUDU2D ท้าทาย เขียนสคริปต์หรือฟังก์ชั่นที่สร้างช่วงชิงสุ่ม ไม่มีอินพุต สคริปต์ / ฟังก์ชั่นจะต้องพิมพ์ 25 การเคลื่อนไหวโดยไม่มีการแยกหรือคั่นด้วยช่องว่างหนึ่งช่องหรือส่งคืนสตริงผู้ติดต่อ …