अनौपचारिक समस्या कथन:
एक स्ट्रिंग को देखते हुए, उदाहरण के लिए, , हम कुछ अक्षरों को लाल और कुछ अक्षरों को नीला (और कुछ को बिल्कुल नहीं) रंगना चाहते हैं, जैसे कि बाएं से दाएं केवल लाल अक्षरों को पढ़ने से पढ़ने के समान परिणाम मिलते हैं। केवल नीले अक्षर।
उदाहरण में हम उन्हें इस तरह से रंग सकते हैं:
इसलिए, हम कहते हैं कि A C C A B B A B की एक दोहराया जाने वाली प्रक्रिया है । यह सबसे लंबे समय तक दोहराए जाने वाला परिणाम है (जो जांचना आसान है)।
क्या हम कुशलता से सबसे लंबे समय तक दोहराया अनुवर्ती गणना कर सकते हैं?
औपचारिक प्रश्न:
क्या एक स्ट्रिंग और कुछ लिए निर्णय लेना कठिन है , क्या लंबाई की बार-बार आवश्यकता स्ट्रिंग में मौजूद है?
- यदि हां: तो इस समस्या को किस समस्या में कम किया जा सकता है?
- यदि नहीं: क्या एक कुशल एल्गोरिथ्म है? (स्पष्ट रूप से, इस एल्गोरिथ्म का उपयोग सबसे लंबे समय तक दोहराए जाने वाले कंप्यूटर की गणना करने के लिए किया जा सकता है)
बोनस प्रश्न:
क्या उनकी हमेशा लंबाई की दोहराई जाने वाली अनुवर्तीता होगी यदि वर्णमाला का आकार एक स्थिरांक से घिरा होता है?
(यह द्विआधारी अक्षर के लिए सच माना जाता है।)
संपादन 2: बोनस प्रश्न का नकारात्मक उत्तर पहले से ही कम से कम आकार के अक्षर के लिए जाना जाता है । आकार के अक्षर के लिए वास्तव में , वहाँ केवल की लंबाई की सबसे लंबी दोहराया subsequences के साथ तार कर रहे हैं । इसे दिखाने के लिए रैंडम स्ट्रिंग्स पर्याप्त हैं। परिणाम पहले से ही मौजूद था, लेकिन मैंने इसे अनदेखा कर दिया।
संपादित करें: नोट:
कुछ लोगों का अर्थ है "प्रतिस्थापन" जब वे कहते हैं "बाद में"। मैं नही। यह दो बार एक substrings खोजने की समस्या नहीं है।