मूव सीक्वेंस रुबिक क्यूब पर मूव्स (टर्न) का एक क्रम है (नोटेशन नीचे देखें)। खाली चाल अनुक्रम के अलावा, कई अन्य चाल क्रम हैं, जिनका घन पर कोई प्रभाव नहीं है। हम इन चाल अनुक्रमों को पहचान अनुक्रम कहते हैं।
इन पहचान अनुक्रमों में से कुछ निर्धारित करने के लिए स्पष्ट हैं, जैसे U2 R R' U2
या U D2 U' D2
। पहले एक में, दो यादृच्छिक चालें की जाती हैं U2 R
और बाद में तुरंत पूर्ववत किया जाता है R' U2
। दूसरा समान है। पहले दो यादृच्छिक चालें U D2
और बाद में वे पूर्ववत हैं, लेकिन उलटे क्रम में U' D2
। यह केवल काम करता है, क्योंकि चाल U
केवल ऊपरी परत के D2
टुकड़ों पर प्रभाव डालती है और चाल केवल निचली परत के टुकड़ों पर प्रभाव डालती है। आप इन दो चाल अनुक्रमों का एक दृश्य देख सकते हैं।
अन्य पहचान अनुक्रम स्पष्ट नहीं हो सकते हैं। उदाहरण के लिए अनुक्रम R' U' R' F' U F U' R' F R F' U' R U2 R
। यह बहुत लंबा है, लेकिन घन पर भी इसका कोई प्रभाव नहीं है।
मूवमेंट नोटेशन
एक चाल घन के छह चेहरों में से एक की एक परत की बारी का वर्णन करती है। एक चाल में एक अक्षर होता है जो बारी के कोण का प्रतिनिधित्व करते हुए एक वैकल्पिक प्रत्यय के साथ चेहरे का प्रतिनिधित्व करता है।
अक्षर और उनके संगत चेहरे U हैं (ऊपर - ऊपर की ओर का सामना करना पड़ रहा है), D (नीचे - नीचे की ओर का सामना करना पड़ रहा है), R (दाएं - दाईं ओर का सामना करना पड़ रहा है), L (बाएं - बाईं ओर का सामना करना पड़ रहा है) , एफ (सामने - आपके सामने की तरफ) और बी (पीछे - आपके सामने की तरफ का भाग)।
यदि कोई प्रत्यय नहीं है, तो चेहरे को 90-डिग्री दक्षिणावर्त घुमाया जाता '
है, प्रत्यय का अर्थ है, चेहरा 90-डिग्री वामावर्त मुड़ता है, और प्रत्यय का 2
अर्थ है, चेहरा 180-डिग्री दक्षिणावर्त हो गया है।
यह आपको नोटेशन के साथ कोई समस्या है, बस http://alg.cubing.net का उपयोग करें , जहां आप इस तरह के चाल अनुक्रमों की कल्पना कर सकते हैं।
चुनौती
आपका कार्य एक कार्यक्रम लिखना है, जो यह निर्धारित करता है कि एक चाल अनुक्रम एक पहचान है या नहीं।
आप एक पूर्ण कार्यक्रम या एक समारोह लिख सकते हैं। इसे इनपुट (STDIN, कमांड-लाइन तर्क, प्रॉम्प्ट या फ़ंक्शन तर्क के माध्यम से) और आउटपुट (वापसी मान या STDOUT के माध्यम से) बूलियन मान या संबंधित पूर्णांक के रूप में एक स्ट्रिंग अनुक्रम प्राप्त होता है (इनपुट्स स्पेस से अलग होते हैं)। सत्य - १ - पहचान अनुक्रम / मिथ्या - ० - पहचान क्रम नहीं)।
यदि आप प्रत्यय '
अपनी प्रोग्रामिंग भाषा में समस्याएं पैदा करते हैं, तो आप एक अलग प्रतीक का उपयोग कर सकते हैं, लेकिन अंक में नहीं। R F2 U3
अनुमति नहीं है।
यह कोडगोल्फ है, इसलिए सबसे छोटा कोड (बाइट्स में) जीतता है।
परीक्षण के मामलों
"" -> True
"U2 R R' U2" -> True
"U D2 U' D2" -> True
"U2 R U2 R'" -> False
"R' U' R' F' U F U' R' F R F' U' R U2 R" -> True
"L'" -> False
"B B2 B' B2" -> True
"D D2 D'" -> False
"R F' D2 U B' F2 B' U2 D2 F2 B2 U F R'" -> True
"D2 U' R2 U F2 D2 U' R2 U' B' L2 R' B' D2 U B2 L' D' R2" -> False
"R U R' U' R' F R2 U' R' U' R U R' F' R2 U R2 U' R2 U' D R2 U' R2 U R2 D'" -> True
"R U R' U' R' F R2 U' R' U' R U R' F' R2 U' R2 U R2 U' D R2 U' R2 U R2 D'" -> False
"B2 F2 U' F2 U R2 F2 U2 B D' R' D' R2 D' F2 U' F U R2 U R B D B D2 L2 D' F2 U D' R' D B R2 D2 F2 R' F2 D2" -> True
"R U2 R' U R' U2 R U2 R U R' U' R' U R U2" -> False
"U F B' R' U F' R U' F' B L U' F L'" -> False
"R2 U' R' U' R U R U R U' R" -> False
"R' F R' B2 R F' R' B2 R2" -> False
U3
, तो आप केवल एक अंक में प्रत्यय डाल सकते थे।
R2 D2
।
That is F(orward), B(ackward), L(eft), R(ight), U(p), D(own)
R F2 U3
?