Tuesday 5 December 2017

Dfa विभाज्य दर $ 5 की बाइनरी विकल्प


यह परिमित राज्य मशीन (एफएसएम) द्विआधारी संख्या स्वीकार करती है जो तीन से विभाज्य होती है। सिद्धांत रूप में राज्यों को मूल्य एनएमड 3 के बराबर होना चाहिए, लेकिन यह बाइनरी संख्याओं के लिए यह काम कैसे करता है कि मैं कैसे न मिलाता कि बदलाव एक साथ कैसे हो जाता है क्योंकि एक नया इनपुट 0 या 1 का मतलब यह नहीं है कि एक निश्चित संख्या सिर्फ समग्र एन। क्या आप कृपया मुझे समझने में मदद करें कि अग्रिम राज्यों ए, बी और सी में धन्यवाद अनुक्रिया 0,1 के अनुरूप है, और 2 मॉड 3 क्रमशः है। मान लीजिए कि इनपुट अभी तक 3 के एक गुणगान को दर्शाता है, ताकि आप राज्य ए में हो। ए 0 वर्तमान संख्या को 2 से गुणा करता है, इसलिए यह अभी भी 3 का एक गुण है, और आप राज्य ए में अभी भी हैं। ए 1 इसे 2 से गुणा करता है और 1 जोड़ता है, इसे 1 मॉड 3 के साथ मिलकर बनाकर आपको राज्य बी में डाल दिया जाता है। यदि वर्तमान संख्या 1 मॉड 3 के अनुरूप है, तो आप राज्य बी में हैं। 0 का एक इनपुट नंबर दोगुण है, इसे 2 मॉड 3 के अनुरूप बनाना और ले जाना आप राज्य सी। 1 का इनपुट, दूसरी ओर, संख्या को दोगुनी बनाते हैं, इसे 2 मॉड 3 के साथ मिलकर बनाते हैं, और फिर 1 जोड़ते हैं, इसे 3 का एक बड़ा बनाते हैं और आपको स्टेट ए को भेजते हैं। उसी तरह आप विश्लेषण कर सकते हैं कि जब वर्तमान संख्या 2 मॉड 3 के साथ मिलती है और आप राज्य में होते हैं तो सी: संख्या दोहरीकरण से 4 से संगत हो जाता है और इसलिए 1 मॉड 3 में जाता है और आपको बी को राज्य में ले जाता है, और इसे दोहरीकरण करता है और एक जोड़कर आपको छोड़ देता है राज्य सी। इसलिए, तीन राज्य वास्तव में ठीक से जुड़े हुए हैं। यह सब उगलता को देखते हुए टेड ने अपने जवाब में दिया है: जब आप थोड़ी सी बी पढ़ते हैं, तो आप वर्तमान नंबर एक स्थान को बायीं ओर स्थानांतरित कर रहे हैं, जो इसे 2 से गुणा करता है, और फिर आप बी को जोड़ते हुए एफएसएम प्रभाव को नकल करते हैं नंबर 3 के अवशेष पर उस ऑपरेशन का उत्तर 3. 3 मई को 7 बजे उत्तर दिया गया है। यहां एक और और अधिक पंडिताऊ दृष्टिकोण है: नंबर एन sum dk 2k दें। Rk 2k bmod 3 को परिभाषित करें, और नोट करें कि आरके 2 जब k अजीब है, और rk 1 जब k भी है। इस प्रकार 3 बीएमडी 3 बीएमडी आरएमएम बीएमड 3. यह एक राज्य आरेख बनाने की कुंजी है, जिसमें द्विआधारी अंक डी 0 है। घ आदानों के रूप में योग की गणना करने के लिए, मौजूदा राशि (मॉड्यूल 3, निश्चित रूप से) को ट्रैक करने की आवश्यकता है और क्या सूचकांक अजीब है या यहां तक ​​कि (आरक के मूल्य को जानने के लिए)। तो राज्य अंतरिक्ष बार है यह स्वीकार करने वाले राज्यों (0, अजीब) और (0, यहां तक ​​कि) के साथ राज्य चित्र बनाने के लिए सीधा है। amp (0, अजीब) amp (0, अजीब) amp (2, अजीब) (1, अजीब) amp (0, अजीब) amp (0, यहां तक ​​कि) amp (1, यहां तक ​​कि) (0, भी) amp amp; amp; (2, अजीब) (2, अजीब) amp (2, भी) amp (0, यहां तक ​​कि) amp (0, यहां तक ​​कि) (2, यहां तक ​​कि) amp (1, यहां तक ​​कि) amp (2, यहां तक ​​कि) amp (1, भी) amp (1, अजीब) amp (0, अजीब) amp (2, अजीब) amp (1, अजीब) अंत यह पकड़ है कि 6 राज्य हैं, न कि ऊपर 3 चित्र के रूप में। हालांकि, यदि हम एफएसएम टेबल भरने वाले एल्गोरिदम पर लागू होते हैं (उदाहरण के लिए, होप्राफ्ट, मोटवानी, उल्मन, ऑटोमैटाटा थ्योरी, भाषा और कंप्यूटेशन का परिचय देखें), अलग-अलग राज्यों को खोजने के लिए, हम निम्न जोड़े को अलग-अलग पहचाना नहीं पाते हैं:,,। जिसके परिणामस्वरूप एफएसएम उपरोक्त एफएसएम के समान है, राज्य पहचान के साथ एक सिम, बी सिम और सी सिम। 3 मई को 20:06 पर उत्तर दिया, यह विपरीत rk1 है जब k भी है। और आरक्यू 2 जब कश्मीर अजीब है। (जैसे कि 1: आरके (21 मोड 3) 2 जबकि के 2: आरके (22 मोड 3) 1) नंद दोर सितम्बर 25 15 बजे 17:32 डोर: नंदश तांबे को पकड़ने के लिए धन्यवाद। 25 सितंबर को 17:50 आपका उत्तर 2017 स्टैक एक्सचेंज, इंक एक क्लास के लिए सेट समस्या पर काम कर रहा है, और जो मैंने काम कर रहा था उससे संबंधित प्रश्न का विचार। क्या कोई न्यूनतम संख्या में राज्यों को एक द्विआधारी स्ट्रिंग को स्वीकार करने के लिए होना चाहिए, जो एक पूर्णांक के द्वारा विभाज्य संख्याओं को दर्शाते हैं। पहले की समस्या सेट में, मैं एक डीएफए बनाने में सक्षम था जो 3 राशियों के साथ 3 से विभाज्य बाइनरी स्ट्रिंग को स्वीकार करता था। । क्या यह संयोग है, या कुछ ऐसी स्ट्रिंग्स को पहचानने की सामान्य समस्या के निहित कुछ है जो कि न्यूनतम राज्यों को बताता है जो मैं वादा करता हूं यह मेरे लिए होमवर्क प्रश्न का उत्तर नहीं देगा। ) 2 9 जनवरी से 0:35 बजे हुकबेंनेट से पूछा मैं कहेह से सहमत हूं कि इस प्रश्न को सीस्तरी पर बंद किया जाना चाहिए, अधिकतर अनुरूप होना चाहिए। हालांकि, मैं भी आपके साथ सहमत हूं: यह एक मजेदार प्रश्न है और जब आप पहली बार डीएफए देखते हैं तो निश्चित रूप से आपको अपने आप से पूछना चाहिए। मुझे लगता है कि ओपी को अपने लिए जवाब देने में कुछ मजेदार काम करने की कोशिश करनी चाहिए, और फिर अधिक जानकारी के लिए गणित से संपर्क करें। ndash Artem Kaznatcheev 9830 Jan 29 12 at 6:10 यह एक होमवर्क (हालांकि यह एक होमवर्क सवाल से प्रेरित है), यह एक दिलचस्प सवाल है, मुझे नहीं लगता है कि यह एक प्रसिद्ध परिणाम है और सवाल का जवाब एक शोध पत्रिका में दिखाई दिया। मुझे नहीं पता कि इसे बंद क्यों करना चाहिए। ऊपरी बाध्य होमवर्क था, और वास्तव में आसान है, लेकिन यह सवाल कम बद्ध के बारे में था। ndash Peter Shor Jan 29 12 at 13: 43 मैं आत्म-अध्ययन नियमित अभिव्यक्ति हूं और एक दिलचस्प अभ्यास समस्या ऑनलाइन पाया जिसमें प्रत्येक बाइनरी संख्या को 3 (और केवल ऐसी संख्या) से विभाजित करने के लिए एक नियमित अभिव्यक्ति लिखना शामिल है। ईमानदार होने के लिए, समस्या ने इस तरह के परिदृश्य के लिए एक डीएफए बनाने के लिए कहा, लेकिन मुझे लगा कि नियमित अभिव्यक्ति का उपयोग करके यह संभवतः संभव होना चाहिए। मुझे पता है कि जगह जानने में थोड़ा नियम है कि यदि कोई द्विआधारी संख्या 3 से विभाज्य है तो अंकों की भी संख्या में लोगों की संख्या ले लीजिए और अंक में अजीब जगहों में लोगों की संख्या से घटाना - यदि यह शून्य के बराबर है , संख्या 3 से विभाज्य है (उदाहरण: 110 - 1 भी 2 स्लॉट में और एक 1 अजीब 1 स्लॉट में)। हालांकि, Im एक नियमित अभिव्यक्ति करने के लिए इस आदत डाल कुछ परेशानी है। निकटतम Ive आ रहा है पता है कि संख्या 0 हो सकता है, तो यह पहला राज्य होगा मैंने यह भी देखा कि 3 से विभाज्य सभी बाइनरी संख्या 1 के साथ शुरू होती है, इसलिए यह दूसरा राज्य होगा, लेकिन इम वहां से फंस गया। क्या किसी ने 11 मार्च को 1:50 पर पूछा कि ओली चार्ल्सवर्थ क्या कहता है, आप किसी विशिष्ट डिवाइजर डी द्वारा बेस बी नंबर की विभाज्यता के लिए डीएफए बना सकते हैं। जहां डीएफए में राज्य विभाजन के शेष भाग का प्रतिनिधित्व करते हैं। आपके मामले के लिए (आधार 2 - बाइनरी संख्या, विभाजक डी 3 10): ध्यान दें कि ऊपर डीएफए खाली स्ट्रिंग को 3 से विभाज्य के रूप में स्वीकार करता है। यह आसानी से सामने एक और मध्यवर्ती अवस्था जोड़कर तय किया जा सकता है: सैद्धांतिक नियमित अभिव्यक्ति सामान्य प्रक्रिया के साथ किया जा सकता है पुनरावृत्त regex का समर्थन करता है जो flavors में व्यावहारिक regex करने के लिए रूपांतरण आसानी से किया जा सकता है, जब आप डीएफए मिल गया है। यह CodeGolf. SE से इस प्रश्न में (आधार बी 10, डी 7 10) के मामले के लिए दिखाया गया है इसे नीचे तोड़कर, आप देख सकते हैं कि यह कैसे बनाया गया है। परमाणु समूह (या गैर बैकट्रैकिंग समूह, या एक समूह जो स्वभावपूर्वक व्यवहार करता है) को यह सुनिश्चित करने के लिए उपयोग किया जाता है कि केवल रिक्त स्ट्रिंग विकल्प का मिलान किया गया हो। यह पर्ल में अनुकरण करने के लिए एक चाल है (DEFINE) फिर समूह A से जी 0 से 6 के शेष के अनुरूप होता है, जब संख्या 7 से विभाजित होती है। 11 मार्च को 6:44 पर उत्तर दिया I इस समस्या का एक और तरीका है और मुझे लगता है कि यह समझना आसान है। जब हम किसी संख्या को 3 से विभाजित करते हैं तो हम तीन रह सकते हैं: 0,1,2 हम उस संख्या का वर्णन कर सकते हैं जो अभिव्यक्ति 3t (टी एक प्राकृतिक संख्या है) का उपयोग करके 3 से विभाजित है। जब हम एक बाइनरी संख्या के बाद 0 जोड़ते हैं जिसका शेष 0 है, तो वास्तविक दशमलव संख्या दोगुनी हो जाएगी। क्योंकि प्रत्येक अंक एक उच्च स्थिति में बढ़ रहा है। 3 टी 2 6 टी, यह भी 3 से विभाज्य है। जब हम एक बाइनरी संख्या के बाद 1 जोड़ रहे हैं जिसका शेष 0 है, तो वास्तविक दशमलव संख्या दोगुनी हो जाएगी प्लस 1। क्योंकि प्रत्येक अंक एक उच्च स्थान पर जा रहा है जिसके बाद 1 3 टी 2 1. शेष 1 है। जब हम एक बाइनरी संख्या के बाद 1 जोड़ रहे हैं जिसका शेष 1 है। वास्तविक दशमलव संख्या दोगुनी हो जाएगी प्लस एक, और शेष 0 है (3 टी 1) 2 1 6 टी 3 यह विभाज्य है 3. जब हम एक बाइनरी संख्या के बाद 0 जोड़ते हैं जिसका शेष 1 है। वास्तविक दशमलव संख्या दोगुनी हो जाएगी। और बाकी 2 (3 टी 1) 2 6 टी 2 होगी। जब हम एक बाइनरी संख्या के बाद 0 जोड़ते हैं शेष 2 है। शेष 1 होगी। (3 टी 2) 2 3 टी 4 3 (2 टी 1) 1 जब हम एक बाइनरी संख्या के बाद 1 जोड़ते हैं जिसका शेष 2 है। तब शेष अभी भी 2 होगा। (3 टी 2) 2 1 टी 5 3 (2 टी 1) 2. कोई फर्क नहीं पड़ता कि कितने 1 आप एक बाइनरी संख्या में जोड़ते हैं जिसका शेष 2 है, शेष 2 हमेशा के लिए होगा (3 (टी 1) 2) 2 1 3 (टी 2) 5 3 (टी 3) 2 उत्तर दिया 6 नवंबर 15 पर 20:45 बाइनरी संख्या 3 से विभाजित करके 3 श्रेणियों में आती है: दो से लगातार 1 एस या दो 1 एस के साथ अलग-अलग नंबर 0 की एक भी संख्या प्रभावी रूप से हर जोड़ी अपने आप को रद्द कर देती है। (पूर्व 11, 110, 1100,1001, 10010, 1111) (दशमलव: 3, 6, 12, 9, 18, 15) तीन 1 से प्रत्येक के साथ संख्या 0 की एक अजीब संख्या से विभाजित। ये ट्रिपलेट्स भी स्वयं को रद्द कर देते हैं (पूर्व 10101, 101010, 1010001, 1000101) (दशमलव: 21, 42, 81, 69) पहले दो नियमों के कुछ संयोजन (एक दूसरे के अंदर) (पूर्व 1010111, 1110101, 1011100110001) (दशमलव: 87, 117 , 5937) तो एक नियमित अभिव्यक्ति है जो इन तीन नियमों को ध्यान में रखती है, बस है: इसका मतलब है कि पिछले नंबर समूह वैकल्पिक है, कोष्ठक के भीतर दोनों ओर के विकल्पों में से एक विकल्प का संकेत मिलता है, मैंने एन के बराबर 5 के लिए एक उत्तर लिखा है, लेकिन आप आवेदन कर सकते हैं किसी भी मूल्य के लिए डीएफए आकर्षित करने के लिए समान दृष्टिकोण और किसी भी स्थितीय संख्या प्रणाली जैसे बाइनरी, टर्नरी। सबसे पहले पूर्ण डीएफए, एक डीएफए शब्द पूर्ण डोमेन में परिभाषित किया गया है: क्यू प्रश्न को पूर्ण डीएफए कहा जाता है। दूसरे शब्दों में हम पूर्ण डीएफ़ए के संक्रमण आरेख में कह सकते हैं कि कोई लापता किनारा नहीं है (उदाहरण के प्रत्येक राज्य में क्यू में प्रत्येक भाषा के प्रतीक के लिए एक निवर्तमान बढ़त मौजूद है)। नोट: कुछ समय हम क्यू प्रश्न के रूप में आंशिक डीएफए परिभाषित करते हैं (पढ़ें: कैसे: Q Q एक डीएफए की परिभाषा में पढ़ता है) डिज़ाइन डीएफए संख्या n से विभाज्य बाइनरी संख्या स्वीकार करना: चरण -1। जब आप किसी संख्या को n से विभाजित करते हैं तो रिमाइंडर 0, 1 या तो हो सकते हैं (n - 2) या (n - 1)। यदि शेष 0 है, तो इसका अर्थ है विभाज्य n अन्यथा नहीं। इसलिए, मेरे डीएफए में एक राज्य क्वार्टर आर होगा जो शेष मूल्य आर के अनुरूप होगा। जहां 0 एलटी आर एलटी (एन -1) और डीएफए में राज्यों की कुल संख्या n है एक संख्या स्ट्रिंग संसाधित करने के बाद, अंत राज्य है q r का अर्थ है कि n r (रिमाइंडर ऑपरेटर)। किसी भी automata में, एक राज्य का उद्देश्य स्मृति तत्व की तरह है एंटोमाटा में एक राज्य कुछ जानकारी जैसे प्रशंसकों को स्विच करता है जो यह बता सकता है कि प्रशंसक बंद या राज्य में है या नहीं 5 के लिए, डीएफए में पांच राज्यों में पांच अनुस्मारक सूचनाओं के अनुसार निम्नानुसार है: राज्य q 0 यदि रिमाइंडर 0 है तो पहुंचे। राज्य q0 अंतिम राज्य है (स्वीकार राज्य) यह एक प्रारंभिक राज्य है राज्य क्यू 1 पहुंचता है यदि रिमाइंडर 1, एक गैर-अंतिम स्थिति है। राज्य क्यू 2 यदि रिमाइंडर 2 है, तो एक गैर-अंतिम स्थिति। राज्य 3 यदि रिमाइंडर 3 है, तो एक गैर-अंतिम राज्य है। राज्य क्यू 4 यदि अनुस्मारक 4 है, तो एक गैर-अंतिम स्थिति। उपरोक्त जानकारी का प्रयोग करते हुए, हम पांच राज्यों के संक्रमण आरेख टीडीडी को शुरू करना शुरू कर सकते हैं: तो, 5 शेष मानों के लिए 5 राज्य। एक स्ट्रिंग संसाधित करने के बाद यदि अंतिम-राज्य क्यू 0 हो जाता है तो इसका मतलब है कि इनपुट स्ट्रिंग का दशमलव समतुल्य 5 से विभाज्य है। ऊपर की संख्या में q 0 अंतिम राज्य को दो समकक्ष चक्र के रूप में चिह्नित किया गया है। इसके अतिरिक्त, मैंने एक ट्रांज़िशन नियम परिभाषित किया है: (q 0। 0) q 0, राज्य 0 पर 0 के प्रतीक के लिए स्व-लूप के रूप में इसका कारण यह है कि किसी भी स्ट्रिंग के दशमलव समकक्ष में केवल 0 से 0 और 0 एक से विभाज्य है। चरण 2 । उपर्युक्त टीडी अपूर्ण है और केवल 0 एस के तार की प्रक्रिया कर सकते हैं अब कुछ और किनारों को जोड़ें ताकि वह बाद के नंबरों की स्ट्रिंग्स पर प्रक्रिया कर सके। नीचे दी गई तालिका की जांच करें, नए संक्रमण नियम दिखाए जाते हैं जिन्हें अगला कदम जोड़ा जा सकता है: बाइनरी स्ट्रिंग को संसाधित करने के लिए 1 संक्रमण नियम होना चाहिए: (q 0। 1) q 1 दो: - बाइनरी का प्रतिनिधित्व 10. अंत-राज्य होना चाहिए q 2 । और 10 प्रक्रिया करने के लिए। हमें एक और संक्रमण नियम जोड़ने की जरूरत है: (q1। 0) q2 पथ (क्यू 0) 1 (क्यू 1) 0 (क्यू 2) तीन: - बाइनरी में यह 11 है। अंत-राज्य क्यू 3 है और हमें एक संक्रमण नियम जोड़ने की आवश्यकता है: (q1। 1) q 3 पथ (क्यू 0) 1 (क्यू 1) 1 (क्यू 3) चार: - बाइनरी 100 में। अंत-राज्य क्यू 4 है। टीडी पहले से ही उपसर्ग स्ट्रिंग 10 प्रक्रिया करती है और हमें एक नया संक्रमण नियम जोड़ने की आवश्यकता है: (q2। 0) q 4 पथ (क्यू 0) 1 (क्यू 1) 0 (क्यू 2) 0 (क्यू 4) स्टेप -3 पांच 101 चित्रा 2 में संक्रमण के ऊपर चित्र अभी भी अधूरा है और कई लापता किनार हैं, उदाहरण के लिए कोई संक्रमण परिभाषित नहीं किया गया है: (q2। 1) -। और 101 की तरह तार संसाधित करने के लिए नियम मौजूद होना चाहिए। क्योंकि 101 5 5 से विभाज्य है, और 101 को स्वीकार करने के लिए मैं जोड़ूंगा: (q2। 1) उपरोक्त आंकड़ा -2 में q 0 इस नए नियम के साथ पथ: (क्यू 0) 1 (क्यू 1) 0 (क्यू 2) 1 (क्यू 0), ट्रांज़िशन आरेख निम्न प्रकार से हो जाता है: प्रत्येक चरण में मैं अगले अनुवर्ती बाइनरी नंबर को तब तक लेता हूं जब तक मैं नहीं मिल पाता हूँ एक पूर्ण डीएफए के रूप में टीडी हम आंकड़े -3 में वर्तमान टीडीएस में 11 पर प्रक्रिया कर सकते हैं: (क्यू 0) 11 (क्यू 3) 0 ()। क्योंकि 6 5 1 इसका अर्थ है एक नियम जोड़ने के लिए: (q3। 0) q 1 चरण -6 बारह, तेरह, चौथा जोड़ें संक्रमण आरेख संख्या -12 में किनारों की कुल संख्या 15 क्यू 5 3 (एक पूर्ण डीएफए) है। और यह डीएफए सभी स्ट्रिंग्स को स्वीकार कर सकता है जो दशमलव समतुल्य 5 से विभाज्य है। यदि आप प्रत्येक चरण में नोटिस करते हैं, तो तालिका में तीन प्रविष्टियां होती हैं क्योंकि प्रत्येक चरण में मैं एक राज्य से सभी संभव निवर्तमान किनारे जोड़कर एक पूर्ण डीएफए (और मैं किनारे जोड़ता हूं ताकि qr राज्य शेष के लिए हो। R) आगे जोड़ने के लिए, याद रखें कि दो नियमित भाषाओं का संघ भी एक नियमित रूप से है। यदि आपको डीएफ़ए को डिज़ाइन करने की ज़रूरत हो तो द्विआधारी स्ट्रिंग स्वीकार कर लेते हैं तो दशमलव समतुल्य या तो 3 या 5 के बराबर है, फिर विभाजित करने के लिए 3 और 5 के बीच दो अलग-अलग डीएफए आकर्षित करें, तो डीएफए दोनों को लक्ष्य डीएफए (1 एलटी एनटीटी 10 के लिए यूनियन 10 डीएफए) यदि आपको डीएफ़ए आकर्षित करने के लिए कहा जाता है जो द्विआधारी स्ट्रिंग स्वीकार करता है जैसे कि दशमलव समतुल्य 5 और 3 से विभाज्य है, तो आप 15 से विभाज्य (लेकिन 6 और 8 के बारे में क्या) के डीएफए की तलाश कर रहे हैं। नोट: इस तकनीक से तैयार किए गए डीएफए को डीएफ़ए कम से कम किया जाएगा, जब संख्या n और आधार उदाहरण के बीच कोई सामान्य कारक न हो। पहले उदाहरण में 5 और 2 के बीच कोई दूसरा उदाहरण नहीं है, या दूसरे उदाहरण में 5 और 3 के बीच में है, इसलिए ऊपर बनाये गए दोनों डीएफए डीएफए कम कर रहे हैं। यदि आप संख्या n और बेस बी पढ़ने वाले पेपर के लिए संभव मिनी राज्यों के बारे में और आगे पढ़ना चाहते हैं: विघटनशीलता और राज्य जटिलता नीचे मैंने एक पायथन स्क्रिप्ट को जोड़ दिया है, मैंने इसे अजगर पुस्तकालय Pygraphviz सीखने के दौरान मस्ती के लिए लिखा था। मैं इसे जोड़ रहा हूं मुझे आशा है कि किसी तरह के लिए किसी के लिए यह सहायक हो सकता है नंबर बी द्वारा विभाजित करने वाले बेस बी नंबर स्ट्रिंग के लिए डिज़ाइन डीएफए: इसलिए हम किसी भी बेस में उन संख्याओं को पहचानने के लिए डीएफ़ए आकर्षित करने के लिए उपर्युक्त आवेदन कर सकते हैं जो उनको दिए गए संख्या n विभाजित करते हैं। उस डीएफए में कुल राज्यों की संख्या n (n रहने वालों के लिए) होगी और किनारों की संख्या बी एनएमडीश के बराबर होनी चाहिए, जो कि पूर्ण डीएफए: डीएफए की भाषा में प्रतीकों की संख्या और एन राज्यों की संख्या। उपरोक्त चाल का उपयोग करके, मैंने इनपुट बेस और नंबर के लिए डीएफए आकर्षित करने के लिए पायथन स्क्रिप्ट को लिखा है। स्क्रिप्ट में, विभाजित फ़ंक्शन डीएनए संक्रमण संख्या को बेस नंबर चरणों में प्रदर्शित करता है। प्रत्येक चरण - num में, मैं संख्या base स्ट्रिंग एनएन () का उपयोग करते हुए num string को बदलता हूँ। प्रत्येक नंबर स्ट्रिंग को प्रसंस्करण से बचने के लिए, मैंने एक अस्थायी डेटा-स्ट्रक्चर लूटेक्टबल का इस्तेमाल किया है। प्रत्येक चरण में, अगले चरण में उपयोग करने के लिए संख्या स्ट्रिंग के लिए एंड-स्टेट का मूल्यांकन किया जाता है और देखने योग्य में संग्रहीत होता है। डीएफए के संक्रमण ग्राफ के लिए, मैंने Pygraphviz पुस्तकालय (उपयोग करने में बहुत आसान) का उपयोग कर एक फ़ंक्शन drawtransitiongraph लिखा है। इस स्क्रिप्ट का उपयोग करने के लिए आपको ग्राफ़विज़ को स्थापित करना होगा। संक्रमण आरेख में रंगीन किनारों को जोड़ने के लिए, मैं प्रत्येक प्रतीक getcolordict फ़ंक्शन के लिए बेतरतीब ढंग से रंग कोड उत्पन्न करता है। इसी प्रकार, उत्पन्न करने के लिए आधार 4 और संख्या 7 दर्ज करें- आधार 4 में dfa स्वीकृति संख्या स्ट्रिंग जो 7 बीटीड द्वारा विभाज्य हैं, फ़ाइल नाम बदलकर. png या.jpeg करें।

No comments:

Post a Comment