हमें केवल मेरे डेटा संरचना वर्ग में एक नई परियोजना सौंपा गया था - मार्कोव चेन के साथ पाठ उत्पन्न करना।मार्कोव चेन टेक्स्ट जनरेशन
अवलोकन
एक इनपुट पाठ फ़ाइल देखते हुए, हम n लंबाई पात्रों में से एक प्रारंभिक बीज पैदा करते हैं। हम इसे हमारे आउटपुट स्ट्रिंग में जोड़ते हैं और आवृत्ति विश्लेषण के आधार पर हमारे अगले चरित्र का चयन करते हैं ..
यह बिल्ली है और दो कुत्ते हैं।
Initial seed: "Th"
Possible next letters -- i, e, e
Therefore, probability of choosing i is 1/3, e is 2/3.
Now, say we choose i. We add "i" to the output string. Then our seed becomes
hi and the process continues.
मेरे समाधान
मैं 3 वर्गों, नोड, ConcreteTrie, और ड्राइवर
बेशकहै, ConcreteTrie वर्ग पारंपरिक अर्थों की एक Trie नहीं है। यह ऐसे काम करता है:
कश्मीर = 2 के साथ वाक्य को देखते हुए:
यह बिल्ली है और वहाँ दो कुत्ते हैं।
मैं नोड्स थ, हाय, है, ... + ..., जीएस, एस उत्पन्न करता हूं। इनमें से प्रत्येक नोड में बच्चे हैं जो उनके अनुसरण वाले पत्र हैं। उदाहरण के लिए, नोड थ में बच्चों और मैं बच्चे होंगे। मैं उन नोड्स में से प्रत्येक में मायने रखता हूं ताकि मैं बाद में अगले पत्र को चुनने के लिए संभावनाएं उत्पन्न कर सकूं।
मेरा प्रश्न:
सबसे पहले, क्या इस परियोजना को पूरा करने लिए सबसे कारगर तरीका है? मेरा समाधान बहुत तेज़ प्रतीत होता है, लेकिन मैं वास्तव में अपने प्रोफेसर के मोजे बंद करना चाहता हूं। (मेरी आखिरी परियोजना पर संपादन दूरी की समस्या का एक बदलाव, मैंने ए *, एक जेनेटिक एल्गोरिदम, एक बीएफएस, और सिम्युलेटेड एनीलिंग किया - और मुझे पता है कि समस्या एनपी-हार्ड है)
दूसरा, क्या है इस असाइनमेंट का मुद्दा? यह वास्तव में कक्षा में शामिल किए गए अधिकांश चीज़ों से संबंधित नहीं लगता है। हमें क्या सीखना है?
हो सकता है कि आपके प्रोफेसर एक बहुत उपयोगकर्ता के होंगे है, और वह है अगर आप में ध्यान दे रहे थे देखना चाहता है कक्षा, और आप इसे कितनी अच्छी तरह से समझा सकते हैं। – pavium
उन्होंने कक्षा में मार्कोव चेन का उल्लेख नहीं किया। – dacman