राइट लाइनर ग्रामर - ar अंक
S->ε
S->1A
S->0S
S->9I
S->3C
S->5E
S->4D
S->2B
S->7G
S->6F
S->8H
F->3K
K->0F
A->2L
K->1G
A->5B
A->0J
B->7A
J->5A
G->6K
G->8S
H->9K
F->5S
K->2H
I->6E
I->5D
J->4S
D->8I
B->6S
K->9B
F->6A
G->9A
K->6L
K->4J
C->1E
L->8K
E->5C
B->4K
C->0D
J->2K
D->2C
A->9F
J->7C
C->6J
C->8L
E->0K
L->0C
B->9C
E->2S
L->6I
I->0L
J->0I
B->2I
I->3B
H->1C
I->7F
C->4H
F->1I
G->4I
I->0G
C->3G
F->8C
D->0A
E->3A
I->9H
A->7D
C->2F
H->7I
A->8E
F->9D
E->8F
A->6C
D->6G
G->0E
D->5F
E->9G
H->2D
D->7H
H->3E
I->2A
K->3I
C->9S
C->7K
E->4B
D->1B
L->1D
J->9E
I->1S
E->1L
J->8D
D->9J
L->2E
J->3L
B->5L
B->8B
L->7J
L->9L
G->1F
A->4A
K->5K
B->3J
H->6H
E->7E
J->1J
D->4E
G->2G
J->6B
D->3D
E->6D
H->4F
I->4C
C->5I
F->0H
H->5G
K->7S
G->3H
L->5H
H->8J
A->3S
H->0B
B->1H
G->7L
K->8A
F->2J
F->7B
L->4G
F->4L
A->1K
B->0G
G->5J
L->3F
फिर आप इसे 'रन' कैसे चुनते हैं, इसके आधार पर यह 'हां' या 'नहीं' को आउटपुट करेगा।
गंभीर प्रविष्टि नहीं, बस कुछ मजेदार;)
संपादित करें:
शायद मुझे थोड़ा समझाना चाहिए।
एक व्याकरण नियमों (प्रस्तुतियों) का एक सेट है जो एक भाषा को परिभाषित करता है । एक भाषा को वर्णमाला द्वारा निर्मित सभी संभावित स्ट्रिंग्स के रूप में सोचा जा सकता है, जो कि इसके व्याकरण के नियमों के अनुरूप है।
यहाँ वर्णमाला सभी दशमलव अंकों का समूह है। व्याकरण के नियम हैं कि सभी तार दशमलव पूर्णांक बनाने चाहिए जो कि 13 से विभाज्य हैं।
हम परीक्षण करने के लिए उपर्युक्त व्याकरण का उपयोग कर सकते हैं कि क्या कोई स्ट्रिंग हमारी भाषा की है।
व्याकरण के नियमों में टर्मिनल प्रतीक (जो भाषा में तत्व हैं) के साथ-साथ गैर-टर्मिनल प्रतीक भी होते हैं जिन्हें पुनरावर्ती रूप से प्रतिस्थापित किया जाता है।
उदाहरण के साथ क्या हो रहा है, यह स्पष्ट करना आसान है:
उदाहरण के लिए कहते हैं कि हम जिस स्ट्रिंग का परीक्षण कर रहे हैं वह 71955 है।
हमेशा एक स्टार्ट सिंबल (जो नॉन-टर्मिनल होता है), इसके ऊपर व्याकरण के मामले में 'S' होता है। इस बिंदु पर हमने अपनी स्ट्रिंग से कोई वर्ण नहीं पढ़ा है:
current pattern symbol read
S ε
अब, हम अपने स्ट्रिंग में पहला सिंबल पढ़ते हैं जो '7' है, फिर हम व्याकरण में एक नियम की तलाश करते हैं, जिसमें हमारे वर्तमान पैटर्न में कोई भी गैर-टर्मिनल 'बाएं हाथ की ओर' -> 'और' '->' के दाहिने हाथ में हमारा प्रतीक है। सौभाग्य से एक (S-> 7G) है, इसलिए हम अपने मौजूदा पैटर्न में नए नियम के दाहिने हाथ के साथ गैर-टर्मिनल प्रतीकों को प्रतिस्थापित करते हैं:
current pattern symbol read
7G 7
अब हमारे पास अपने पैटर्न में गैर-टर्मिनल 'जी' है, और पढ़ा जाने वाला अगला प्रतीक '1' है, इसलिए हम अपने व्याकरण में एक नियम की तलाश करते हैं जो 'जी-> 1 "से शुरू होता है। हम पाते हैं कि एक है। (G-> 1F), इसलिए हम अपने नए नियम के आरएचएस के साथ गैर टर्मिनल को प्रतिस्थापित करते हैं:
current pattern symbol read
71F 1
इस प्रक्रिया को दोहराते रहें:
अगला नियम: एफ-> 9 डी
current pattern symbol read
719D 9
अगला नियम: D-> 5F
current pattern symbol read
7195F 5
अगला नियम: F-> 5S
current pattern symbol read
71955S 5
इस बिंदु पर हमारे पास हमारे स्ट्रिंग में और अधिक प्रतीक नहीं हैं, लेकिन हमारे पास वहां एक और गैर-टर्मिनल प्रतीक है। हम व्याकरण में पहले नियम से देखते हैं कि हम खाली स्ट्रिंग के साथ 'S' को बदल सकते हैं (:): S-> rule
ऐसा करने से हमें वर्तमान संरक्षक मिलता है: 71955 is जो 71955 के बराबर है।
हमने अपने स्ट्रिंग में सभी प्रतीकों को पढ़ा है, और पैटर्न में कोई गैर-टर्मिनल प्रतीक नहीं हैं। जिसका अर्थ है कि स्ट्रिंग भाषा से संबंधित है और इसलिए 71955 वास्तव में 13 से विभाज्य है।
यानी लक्ष्य के लिए पैटर्न = स्ट्रिंग है। यदि आप किसी भी गैर-टर्मिनल प्रतीकों के साथ छोड़ दिए जाते हैं, तो अपने स्ट्रिंग के सभी प्रतीकों को पढ़ने के बाद, यह स्ट्रिंग भाषा से संबंधित नहीं है। इसी तरह, यदि आपके पास अभी भी पढ़ने के लिए आपके स्ट्रिंग में अधिक प्रतीक हैं, लेकिन व्याकरण में कोई नियम नहीं हैं जो आपको आगे जाने की अनुमति देते हैं, तो स्ट्रिंग भाषा से संबंधित नहीं है।