<!-- wp:html --> <!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>MCQ Quiz</title> <style> /* Basic CSS resets */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Arial, sans-serif; background-color: #f1f8e9; color: #33691e; } .content-container { background-color: #dcedc8; padding: 5px; border-radius: 5px; max-width: auto; margin: 20px auto; box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1); position: relative; } .header { background-color: #7cb342; color: #ffffff; text-align: center; padding: 20px; border-radius: 10px; margin-bottom: 20px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); position: relative; } .header h1 { margin: 0; font-size: 28px; } /* Hamburger Menu Icon */ .hamburger { position: absolute; top: 8px; left: 8px; z-index: 1000; width: 20px; height: 15px; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer; } .hamburger-line { height: 3px; background-color: #fff; border-radius: 2px; } /* Sidebar (Question Nav) */ #questionNavOverlay { position: fixed; top: 0; left: -250px; /* hidden by default */ width: 250px; height: 100%; background-color: #fff; transition: left 0.3s ease-in-out; z-index: 2000; box-shadow: 2px 0 6px rgba(0,0,0,0.3); padding: 20px; overflow-y: auto; } #questionNavOverlay.show { left: 0; /* slide in */ } #questionNavTitle { margin-bottom: 10px; font-weight: bold; font-size: 1.1rem; } .question-nav { display: flex; flex-wrap: wrap; gap: 5px; } .circle-number { width: 30px; height: 30px; border-radius: 50%; background-color: #ccc; color: #000; display: flex; justify-content: center; align-items: center; cursor: pointer; user-select: none; /* Prevent text selection */ transition: background-color 0.2s; } .circle-number:hover { background-color: #aaa; } .circle-number.active { background-color: #4CAF50; color: #fff; } /* Quiz Container */ .quiz-container { background-color: #fff; border-radius: 10px; padding: 5px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); max-width: auto; width: 100%; margin: 0 auto; text-align: center; position: relative; } .question-counter { font-weight: bold; padding: 5px 10px; border-radius: 5px; background-color: #d9edf7; position: absolute; top: 10px; left: 10px; } /* Timer display */ .timer { font-weight: bold; padding: 5px 10px; border-radius: 5px; background-color: #ffcccb; position: absolute; top: 10px; right: 10px; } .question { font-size: 1.2rem; margin-top: 40px; margin-bottom: 20px; text-align: left; } .choices { display: flex; flex-direction: column; gap: 10px; } .choice { padding: 10px; background-color: #f0f0f0; border: 1px solid #ddd; border-radius: 5px; cursor: pointer; transition: background-color 0.3s, box-shadow 0.3s; } .choice:hover { background-color: #e0e0e0; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .choice.selected { background-color: #28a745; /* More vivid green */ color: #fff; } .choice.correct { background-color: #28a745; /* More vivid green */ border-color: #28a745; color: #fff; } .choice.incorrect { background-color: #dc3545; /* More vivid red */ border-color: #dc3545; color: #fff; } .choice.disabled { cursor: not-allowed; pointer-events: none; opacity: 0.6; } .explanation { margin-top: 20px; text-align: left; background-color: #e7f3fe; padding: 15px; border-left: 5px solid #2196F3; border-radius: 5px; } .buttons { display: flex; justify-content: center; gap: 10px; margin-top: 20px; flex-wrap: wrap; } .btn { flex: 1 1 auto; padding: 8px 12px; background-color: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 0.9rem; text-align: center; min-width: 100px; max-width: 150px; transition: none; } .btn.disabled { background-color: #cccccc; cursor: not-allowed; } .hidden { display: none; } /* Result Section */ #resultContent { text-align: center; margin-top: 20px; } .congrats { font-size: 1.5rem; color: #4CAF50; } .sad { font-size: 1.5rem; color: #d32f2f; } /* Popup Message (Optional) */ #popupMessage { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); color: white; padding: 10px 20px; border-radius: 5px; font-size: 1rem; z-index: 5000; display: none; } #popupMessage.show { display: block; } #popupMessage.correct { background-color: #28a745; } #popupMessage.incorrect { background-color: #dc3545; } </style> </head> <body> <div class="content-container"> <div class="header"> <!-- Hamburger menu button --> <div class="hamburger" id="hamburgerBtn"> <div class="hamburger-line"></div> <div class="hamburger-line"></div> <div class="hamburger-line"></div> </div> <h1 style="color: #ffffff;">MCQs Quiz</h1> </div> <!-- Sidebar (Question Nav) --> <div id="questionNavOverlay"> <div id="questionNavTitle">Questions</div> <div class="question-nav" id="questionNav"></div> </div> <!-- Quiz Container --> <div class="quiz-container" id="quizContent"> <div class="question-counter" id="questionCounter">1/3</div> <!-- Timer display here --> <div class="timer" id="timer">Time: 00:00</div> <div class="question" id="question">Loading question...</div> <div class="choices" id="choices"></div> <!-- Explanation and feedback --> <div class="explanation hidden" id="explanation"></div> <!-- Buttons for navigation and submission --> <div class="buttons"> <button class="btn" id="prevButton">Previous</button> <button class="btn" id="submitAnswerButton">Submit Answer</button> <button class="btn hidden" id="nextButton">Next</button> </div> </div> <!-- Result Section --> <div id="resultContent" class="hidden"> <h2>Quiz Completed</h2> <div id="resultMessage"></div> <p id="scoreMessage"></p> </div> </div> <!-- Optional Popup Message --> <div id="popupMessage" class="hidden"></div> <script> /***** JavaScript Code *****/ // Quiz data (sample) const quizData = [ { "question": "भाषा और व्याकरण में, 'Context-Free Grammar' का मुख्य गुण क्या है?", "options": [ "यह केवल रेगुलर भाषाओं को परिभाषित कर सकता है", "इसके नियम किसी भी संदर्भ में लागू हो सकते हैं", "यह ट्यूरिंग मशीन द्वारा मान्यता प्राप्त नहीं होती", "इसके उत्पादन नियम एकल गैर-टर्मिनल प्रतीक से होते हैं" ], "correct": 3, "explanation": "Context-Free Grammar में, उत्पादन नियम एकल गैर-टर्मिनल प्रतीक से होते हैं। यह जटिल संरचनाओं को परिभाषित करने में सक्षम है, जैसे कि प्रोग्रामिंग भाषाओं के सिंटेक्स।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Pushdown Automaton' किस प्रकार की भाषा को पहचान सकता है?", "options": [ "रेगुलर भाषा", "कंटेक्स्ट-फ्री भाषा", "रेज्युमे भाषा", "सभी प्रकार की भाषाएँ" ], "correct": 1, "explanation": "'Pushdown Automaton' कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है। इसमें स्टैक का उपयोग होता है जो भाषा की नेस्टिंग संरचनाओं को संभालने में मदद करता है।" }, { "question": "ट्यूरिंग मशीन में, 'हेलिंग प्रॉब्लम' क्या है?", "options": [ "एक समस्या जिसे हल किया जा सकता है", "एक समस्या जिसे नहीं हल किया जा सकता", "ट्यूरिंग मशीन का एक प्रकार", "एक प्रकार का एल्गोरिदम" ], "correct": 1, "explanation": "'हेलिंग प्रॉब्लम' एक ऐसी समस्या है जिसे ट्यूरिंग मशीन कभी नहीं हल कर सकती। यह सिद्ध किया गया है कि कोई भी एल्गोरिदम इस समस्या का समाधान नहीं कर सकता।" }, { "question": "कंप्यूटेबिलिटी में, 'Recursively Enumerable Languages' क्या हैं?", "options": [ "ऐसी भाषाएँ जिन्हें एक ट्यूरिंग मशीन हमेशा स्वीकार करेगी", "ऐसी भाषाएँ जिन्हें एक ट्यूरिंग मशीन कभी नहीं स्वीकार करेगी", "सिर्फ रेगुलर भाषाएँ", "सिर्फ कंटेक्स्ट-फ्री भाषाएँ" ], "correct": 0, "explanation": "'Recursively Enumerable Languages' वे भाषाएँ हैं जिन्हें एक ट्यूरिंग मशीन कभी नहीं रोकने के लिए एक प्रोग्राम चलाता है। यह तब स्वीकार करती हैं जब ट्यूरिंग मशीन अंततः स्वीकार कर लेती है, लेकिन अस्वीकार करने की गारंटी नहीं होती।" }, { "question": "जटिलता सिद्धांत में, 'P Class' में कौन सी समस्याएँ आती हैं?", "options": [ "वे समस्याएँ जिन्हें पॉलीनॉमियल समय में हल किया जा सकता है", "वे समस्याएँ जिन्हें एक्सपोनेंशियल समय में हल किया जा सकता है", "वे समस्याएँ जिन्हें हल नहीं किया जा सकता", "सिर्फ NP-पूर्ण समस्याएँ" ], "correct": 0, "explanation": "'P Class' में वे समस्याएँ आती हैं जिन्हें पॉलीनॉमियल समय में हल किया जा सकता है। ये समस्याएँ कुशलतापूर्वक हल करने योग्य मानी जाती हैं।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'NP-पूर्ण' समस्याएँ क्या होती हैं?", "options": [ "वे समस्याएँ जिन्हें पॉलीनॉमियल समय में हल किया जा सकता है", "वे समस्याएँ जिन्हें किसी भी एल्गोरिदम से नहीं हल किया जा सकता", "वे समस्याएँ जो NP क्लास की सबसे कठिन समस्याएँ होती हैं", "वे समस्याएँ जो केवल गणितीय होते हैं" ], "correct": 2, "explanation": "'NP-पूर्ण' समस्याएँ NP क्लास की सबसे कठिन समस्याएँ होती हैं। यदि किसी NP-पूर्ण समस्या का पॉलीनॉमियल समय में समाधान मिलता है, तो सभी NP समस्याएँ भी पॉलीनॉमियल समय में हल हो सकती हैं।" }, { "question": "भाषा और व्याकरण में, 'Chomsky Hierarchy' में सबसे शक्तिशाली व्याकरण कौन सा है?", "options": [ "रेगुलर व्याकरण", "कंटेक्स्ट-फ्री व्याकरण", "कंटेक्स्ट-सेंसिटिव व्याकरण", "संचालित व्याकरण" ], "correct": 2, "explanation": "Chomsky Hierarchy में सबसे शक्तिशाली व्याकरण कंटेक्स्ट-सेंसिटिव व्याकरण हैं। ये जटिल भाषाओं को परिभाषित करने में सक्षम होते हैं।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Deterministic Finite Automaton (DFA)' की विशेषता क्या है?", "options": [ "यह किसी भी इनपुट के लिए एक से अधिक ट्रांजिशन्स हो सकते हैं", "हर राज्य में प्रत्येक इनपुट के लिए सिर्फ एक ही ट्रांजिशन होता है", "इसमें स्टैक का उपयोग होता है", "यह केवल कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है" ], "correct": 1, "explanation": "Deterministic Finite Automaton (DFA) में हर राज्य में प्रत्येक इनपुट के लिए सिर्फ एक ही ट्रांजिशन होता है। यह इसे सरल और अनिश्चितता मुक्त बनाता है।" }, { "question": "ट्यूरिंग मशीन में, 'बैंडेड ट्यूरिंग मशीन' क्या है?", "options": [ "एक ट्यूरिंग मशीन जो सीमित बैंडविड्थ पर काम करती है", "एक ट्यूरिंग मशीन जिसमें हेड सीमित दूरी तक ही बैंड पर मूव कर सकता है", "एक ट्यूरिंग मशीन जो मल्टीटास्किंग करता है", "एक ट्यूरिंग मशीन जो बिना स्टॉप बैंड के काम करती है" ], "correct": 1, "explanation": "बैंडेड ट्यूरिंग मशीन में, ट्यूरिंग मशीन का हेड केवल सीमित दूरी तक ही बैंड पर मूव कर सकता है। यह सीमित संसाधनों के साथ समस्याओं को हल करने के लिए उपयोग किया जाता है।" }, { "question": "कंप्यूटेबिलिटी में, 'Halting Problem' को क्या कहा जाता है?", "options": [ "एक समस्या जिसे हल करना संभव है", "एक समस्या जिसे किसी ट्यूरिंग मशीन द्वारा हल नहीं किया जा सकता", "एक समस्या जिसे अल्गोरिदमिक तरीके से हल किया जा सकता है", "एक समस्या जिसे केवल मानव हल कर सकते हैं" ], "correct": 1, "explanation": "Halting Problem एक ऐसी समस्या है जिसे ट्यूरिंग मशीन द्वारा हल नहीं किया जा सकता। यह यह निर्धारित करने की कोशिश करता है कि कोई भी प्रोग्राम किसी भी इनपुट पर रुकेगा या नहीं।" }, { "question": "जटिलता सिद्धांत में, 'NP-हर्ड' समस्याएँ क्या होती हैं?", "options": [ "वे समस्याएँ जिन्हें पॉलीनॉमियल समय में हल किया जा सकता है", "वे समस्याएँ जो NP क्लास की सबसे कठिन समस्याएँ नहीं हैं", "वे समस्याएँ जो NP क्लास की सबसे कठिन समस्याएँ होती हैं और NP में भी आती हैं", "सिर्फ गणितीय समस्याएँ" ], "correct": 2, "explanation": "NP-हर्ड समस्याएँ NP क्लास की सबसे कठिन समस्याएँ होती हैं। यदि किसी NP-हर्ड समस्या का पॉलीनॉमियल समय में समाधान मिलता है, तो सभी NP समस्याएँ भी पॉलीनॉमियल समय में हल हो सकती हैं।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'NP-कम्पलीट' समस्याएँ किस प्रकार की होती हैं?", "options": [ "वे समस्याएँ जिन्हें पॉलीनॉमियल समय में हल किया जा सकता है", "वे समस्याएँ जो NP क्लास की सबसे कठिन समस्याएँ होती हैं", "वे समस्याएँ जिन्हें हल करना संभव नहीं है", "सिर्फ गणितीय समस्याएँ" ], "correct": 1, "explanation": "'NP-कम्पलीट' समस्याएँ वे हैं जो NP क्लास की सबसे कठिन समस्याएँ होती हैं। यदि इन्हें पॉलीनॉमियल समय में हल किया जा सकता है, तो सभी NP समस्याएँ भी पॉलीनॉमियल समय में हल हो सकती हैं।" }, { "question": "भाषा और व्याकरण में, 'Lexical Analysis' का कार्य क्या है?", "options": [ "प्रोग्राम के सिंटेक्स को जांचना", "प्रोग्राम के स्रोत कोड को टोकन्स में विभाजित करना", "डेटा को एन्कोड करना", "डेटा को स्टोर करना" ], "correct": 1, "explanation": "Lexical Analysis का कार्य प्रोग्राम के स्रोत कोड को टोकन्स में विभाजित करना होता है। यह एक कंपाइलर के पहले चरण में किया जाता है, जहाँ कोड को समझने योग्य टोकन्स में बदला जाता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Non-deterministic Finite Automaton (NFA)' की विशेषता क्या है?", "options": [ "हर राज्य में प्रत्येक इनपुट के लिए सिर्फ एक ही ट्रांजिशन होता है", "एक राज्य में एक से अधिक ट्रांजिशन हो सकते हैं", "इसमें स्टैक का उपयोग होता है", "यह केवल रेगुलर भाषाओं को पहचान सकता है" ], "correct": 1, "explanation": "Non-deterministic Finite Automaton (NFA) में, एक राज्य में एक से अधिक ट्रांजिशन हो सकते हैं। यह इसे अधिक लचीला बनाता है, लेकिन इसका मान्यता करने के लिए अतिरिक्त प्रक्रिया की आवश्यकता होती है।" }, { "question": "ट्यूरिंग मशीन में, 'Oracle Turing Machine' क्या है?", "options": [ "एक ट्यूरिंग मशीन जो बिना किसी अतिरिक्त संसाधन के काम करती है", "एक ट्यूरिंग मशीन जिसमें एक ओरेकल होता है जो किसी विशेष समस्या का तुरंत समाधान प्रदान करता है", "एक ट्यूरिंग मशीन जो केवल गणितीय समस्याएँ हल कर सकती है", "एक ट्यूरिंग मशीन जो मल्टीटास्किंग कर सकती है" ], "correct": 1, "explanation": "Oracle Turing Machine में एक ओरेकल होता है जो किसी विशेष समस्या का तुरंत समाधान प्रदान करता है। यह ट्यूरिंग मशीन की क्षमताओं को बढ़ाने के लिए एक कल्पनाशील उपकरण है।" }, { "question": "कंप्यूटेबिलिटी में, 'Decidability' का क्या अर्थ है?", "options": [ "एक समस्या जिसे कोई भी मशीन हल नहीं कर सकती", "एक समस्या जिसे एक ट्यूरिंग मशीन निश्चित रूप से हल कर सकती है", "एक समस्या जिसे केवल मानव हल कर सकते हैं", "एक समस्या जिसे मल्टीटास्किंग से हल किया जा सकता है" ], "correct": 1, "explanation": "'Decidability' का मतलब है कि एक समस्या को एक ट्यूरिंग मशीन निश्चित रूप से हल कर सकती है, चाहे वह हल हो या नहीं। यह कंप्यूटेबिलिटी का एक महत्वपूर्ण पहलू है।" }, { "question": "जटिलता सिद्धांत में, 'Big O Notation' का उपयोग किसके लिए किया जाता है?", "options": [ "एल्गोरिदम की स्पेस जटिलता को व्यक्त करने के लिए", "एल्गोरिदम की टाइम जटिलता को व्यक्त करने के लिए", "डेटा को एन्कोड करने के लिए", "डेटा को स्टोर करने के लिए" ], "correct": 1, "explanation": "Big O Notation का उपयोग एल्गोरिदम की टाइम जटिलता को व्यक्त करने के लिए किया जाता है, जो बताता है कि एल्गोरिदम की रनटाइम कैसे बढ़ती है जब इनपुट का आकार बढ़ता है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Graph Traversal' किसके लिए उपयोग किया जाता है?", "options": [ "डेटा को एन्कोड करना", "ग्राफ के सभी नोड्स को विजिट करना", "डेटा को स्टोर करना", "यूज़र इंटरफेस को स्टाइल करना" ], "correct": 1, "explanation": "'Graph Traversal' का उपयोग ग्राफ के सभी नोड्स को विजिट करने के लिए किया जाता है। यह एल्गोरिदम्स जैसे कि BFS (Breadth-First Search) और DFS (Depth-First Search) में महत्वपूर्ण होता है।" }, { "question": "भाषा और व्याकरण में, 'Ambiguous Grammar' क्या होती है?", "options": [ "ऐसी व्याकरण जिसमें कोई भी वाक्य एक ही ढांचे में विश्लेषित हो सकता है", "ऐसी व्याकरण जिसमें एक वाक्य को कई ढाँचों में विश्लेषित किया जा सकता है", "एक सरल व्याकरण", "एक पूर्ण व्याकरण" ], "correct": 1, "explanation": "Ambiguous Grammar में, एक ही वाक्य को कई ढाँचों में विश्लेषित किया जा सकता है। यह सिंटेक्स एनालिसिस में समस्याएँ पैदा कर सकता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'ε-transition' क्या है?", "options": [ "एक ट्रांजिशन जो बिना किसी इनपुट के होता है", "एक ट्रांजिशन जो हमेशा होता है", "एक ट्रांजिशन जो केवल एक विशेष इनपुट पर होता है", "एक ट्रांजिशन जो त्रुटियों को संभालता है" ], "correct": 0, "explanation": "ε-transition एक ट्रांजिशन होता है जो बिना किसी इनपुट के होता है। यह नॉन-डिटरमिनिस्टिक ऑटोमेटा में उपयोग किया जाता है।" }, { "question": "ट्यूरिंग मशीन में, 'Halting State' क्या है?", "options": [ "एक स्टेट जिसमें मशीन हमेशा चलती रहती है", "एक स्टेट जिसमें मशीन रुक जाती है", "एक स्टेट जो कभी नहीं पहुँचता", "एक स्टेट जो मशीन को गति देता है" ], "correct": 1, "explanation": "Halting State वह स्टेट होता है जिसमें ट्यूरिंग मशीन रुक जाती है और आगे के इंस्ट्रक्शन्स को निष्पादित नहीं करती। यह मशीन के काम के समाप्त होने का संकेत देता है।" }, { "question": "कंप्यूटेबिलिटी में, 'Church-Turing Thesis' क्या कहता है?", "options": [ "प्रत्येक एल्गोरिदमिक प्रक्रिया को एक ट्यूरिंग मशीन द्वारा मॉडल किया जा सकता है", "ट्यूरिंग मशीन सभी समस्याओं को हल कर सकती है", "प्रत्येक समस्या को गणितीय तरीके से हल किया जा सकता है", "किसी भी समस्या का समाधान संभव है" ], "correct": 0, "explanation": "Church-Turing Thesis कहता है कि प्रत्येक एल्गोरिदमिक प्रक्रिया को एक ट्यूरिंग मशीन द्वारा मॉडल किया जा सकता है। यह कंप्यूटेबिलिटी की नींव रखता है।" }, { "question": "जटिलता सिद्धांत में, 'NP' क्लास में कौन सी समस्याएँ आती हैं?", "options": [ "वे समस्याएँ जिन्हें पॉलीनॉमियल समय में हल किया जा सकता है", "वे समस्याएँ जिन्हें एक संभावित समाधान को पॉलीनॉमियल समय में सत्यापित किया जा सकता है", "वे समस्याएँ जिन्हें हल करना संभव नहीं है", "सिर्फ गणितीय समस्याएँ" ], "correct": 1, "explanation": "'NP' क्लास में वे समस्याएँ आती हैं जिन्हें एक संभावित समाधान को पॉलीनॉमियल समय में सत्यापित किया जा सकता है, भले ही उन्हें पॉलीनॉमियल समय में हल करना संभव न हो।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Dynamic Programming' किस प्रकार की समस्याओं के लिए उपयुक्त है?", "options": [ "वे समस्याएँ जिनमें सबप्रॉब्लम ओवरलैप करते हैं", "वे समस्याएँ जो ग्राफ पर आधारित हैं", "वे समस्याएँ जिन्हें केवल ग्रीडी एल्गोरिदम से हल किया जा सकता है", "वे समस्याएँ जिनमें कोई स्पष्ट सबप्रॉब्लम नहीं हैं" ], "correct": 0, "explanation": "Dynamic Programming उन समस्याओं के लिए उपयुक्त है जिनमें सबप्रॉब्लम ओवरलैप करते हैं और उन्हें पुनः उपयोग करके समाधान निकाला जा सकता है। यह मेमोरी तकनीकों का उपयोग करके दक्षता बढ़ाता है।" }, { "question": "भाषा और व्याकरण में, 'Left Recursion' किस प्रकार की व्याकरणिक समस्या को संदर्भित करता है?", "options": [ "जब एक नियम सीधे स्वयं से पुनरावृत्ति करता है", "जब एक नियम अप्रत्यक्ष रूप से स्वयं से पुनरावृत्ति करता है", "जब व्याकरण में किसी नियम के निष्पादन के दौरान बायां तरफ पुनरावृत्ति होती है", "जब व्याकरण में किसी नियम के निष्पादन के दौरान दाहिना तरफ पुनरावृत्ति होती है" ], "correct": 2, "explanation": "Left Recursion तब होती है जब व्याकरण के किसी नियम के निष्पादन के दौरान बायां तरफ पुनरावृत्ति होती है। यह पार्सर एल्गोरिदम में समस्याएँ पैदा कर सकता है और इसे निष्क्रिय करना आवश्यक होता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Finite State Transducer' क्या करता है?", "options": [ "सिर्फ स्वीकार करता है", "सिर्फ अस्वीकार करता है", "इनपुट को आउटपुट में परिवर्तित करता है", "डेटा को स्टोर करता है" ], "correct": 2, "explanation": "Finite State Transducer इनपुट को आउटपुट में परिवर्तित करता है। यह एक प्रकार का ऑटोमेटा है जो डेटा को संसाधित करने और रूपांतरित करने के लिए उपयोग किया जाता है।" }, { "question": "ट्यूरिंग मशीन में, 'Infinite Tape' का क्या महत्व है?", "options": [ "यह मशीन की गति को बढ़ाता है", "यह मशीन को असीमित मेमोरी प्रदान करता है", "यह मशीन को अधिक शक्तिशाली बनाता है", "यह मशीन को स्टॉप करने में मदद करता है" ], "correct": 1, "explanation": "Infinite Tape ट्यूरिंग मशीन को असीमित मेमोरी प्रदान करता है, जिससे यह किसी भी समस्या को हल करने की क्षमता रखती है, बशर्ते वह कंप्यूटेबल हो।" }, { "question": "कंप्यूटेबिलिटी में, 'Decidable Language' क्या है?", "options": [ "ऐसी भाषा जिसे किसी भी मशीन द्वारा नहीं पहचाना जा सकता", "ऐसी भाषा जिसे एक ट्यूरिंग मशीन निश्चित रूप से स्वीकार या अस्वीकार कर सकती है", "ऐसी भाषा जो केवल प्राकृतिक भाषाएँ होती हैं", "ऐसी भाषा जिसे केवल मानव समझ सकते हैं" ], "correct": 1, "explanation": "Decidable Language ऐसी भाषा है जिसे एक ट्यूरिंग मशीन निश्चित रूप से स्वीकार या अस्वीकार कर सकती है, जिससे यह कंप्यूटेबिलिटी में एक महत्वपूर्ण वर्ग है।" }, { "question": "जटिलता सिद्धांत में, 'Big Omega Notation' का उपयोग किसके लिए किया जाता है?", "options": [ "एल्गोरिदम की समय जटिलता का सबसे कम सीमा निर्धारित करने के लिए", "एल्गोरिदम की समय जटिलता का सबसे उच्च सीमा निर्धारित करने के लिए", "एल्गोरिदम की स्पेस जटिलता का निर्धारण करने के लिए", "डेटा को एन्कोड करने के लिए" ], "correct": 0, "explanation": "Big Omega Notation का उपयोग एल्गोरिदम की समय जटिलता का सबसे कम सीमा निर्धारित करने के लिए किया जाता है, जो बताता है कि एल्गोरिदम कितनी तेजी से काम नहीं कर सकता।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Greedy Algorithm' किस प्रकार की समस्याओं के लिए उपयुक्त है?", "options": [ "वे समस्याएँ जिनमें सबसे कम विकल्प होता है", "वे समस्याएँ जिनमें स्थानीय इष्टतम निर्णय वैश्विक इष्टतम समाधान प्रदान करते हैं", "वे समस्याएँ जिनमें बहुस्तरीय निर्णय लेने होते हैं", "वे समस्याएँ जिन्हें Dynamic Programming से हल किया जा सकता है" ], "correct": 1, "explanation": "Greedy Algorithm उन समस्याओं के लिए उपयुक्त है जिनमें स्थानीय इष्टतम निर्णय वैश्विक इष्टतम समाधान प्रदान करते हैं। यह एल्गोरिदम सरल और कुशल होता है, लेकिन सभी समस्याओं के लिए उपयुक्त नहीं होता।" }, { "question": "भाषा और व्याकरण में, 'Right Recursion' किस प्रकार की व्याकरणिक समस्या को संदर्भित करता है?", "options": [ "जब एक नियम सीधे स्वयं से पुनरावृत्ति करता है", "जब एक नियम अप्रत्यक्ष रूप से स्वयं से पुनरावृत्ति करता है", "जब व्याकरण में किसी नियम के निष्पादन के दौरान बायां तरफ पुनरावृत्ति होती है", "जब व्याकरण में किसी नियम के निष्पादन के दौरान दाहिना तरफ पुनरावृत्ति होती है" ], "correct": 3, "explanation": "Right Recursion तब होती है जब व्याकरण के किसी नियम के निष्पादन के दौरान दाहिना तरफ पुनरावृत्ति होती है। यह पार्सर एल्गोरिदम में समस्याएँ नहीं पैदा करती है और इसे आसानी से निष्क्रिय किया जा सकता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Pushdown Automaton' और 'Finite Automaton' में मुख्य अंतर क्या है?", "options": [ "Pushdown Automaton में स्टैक होता है, जबकि Finite Automaton में नहीं", "Finite Automaton में स्टैक होता है, जबकि Pushdown Automaton में नहीं", "दोनों में स्टैक होता है", "दोनों में स्टैक नहीं होता है" ], "correct": 0, "explanation": "Pushdown Automaton में स्टैक होता है, जिससे यह कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है, जबकि Finite Automaton में स्टैक नहीं होता है और यह केवल रेगुलर भाषाओं को पहचान सकता है।" }, { "question": "ट्यूरिंग मशीन में, 'Tape Alphabet' क्या होता है?", "options": [ "टेप पर इस्तेमाल होने वाले वर्णों का सेट", "मशीन के इनपुट वर्णों का सेट", "मशीन के आउटपुट वर्णों का सेट", "मशीन के सभी संभव स्थितियों का सेट" ], "correct": 0, "explanation": "'Tape Alphabet' ट्यूरिंग मशीन के टेप पर इस्तेमाल होने वाले सभी वर्णों का सेट होता है। यह वर्ण इनपुट, आउटपुट और स्टैक के लिए उपयोग किए जाते हैं।" }, { "question": "कंप्यूटेबिलिटी में, 'Reductions' का क्या उपयोग है?", "options": [ "समस्याओं को हल करने के लिए एल्गोरिदम्स बनाना", "एक समस्या को दूसरी समस्या में बदलना", "डेटा को स्टोर करना", "यूज़र इंटरफेस को स्टाइल करना" ], "correct": 1, "explanation": "'Reductions' का उपयोग एक समस्या को दूसरी समस्या में बदलने के लिए किया जाता है, जिससे यह दिखाया जा सके कि यदि दूसरी समस्या हल हो सकती है, तो पहली समस्या भी हल हो सकती है।" }, { "question": "जटिलता सिद्धांत में, 'P vs NP' समस्या क्या है?", "options": [ "क्या P क्लास में सभी NP समस्याएँ भी शामिल हैं?", "क्या P क्लास और NP क्लास पूरी तरह से अलग हैं?", "क्या कोई एल्गोरिदम NP समस्याओं को पॉलीनॉमियल समय में हल कर सकता है?", "सभी विकल्प सही हैं" ], "correct": 3, "explanation": "'P vs NP' समस्या यह है कि क्या P क्लास में सभी NP समस्याएँ भी शामिल हैं या नहीं। यह एक खुली समस्या है और अभी तक इसका समाधान नहीं मिला है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Divide and Conquer' रणनीति का मुख्य सिद्धांत क्या है?", "options": [ "समस्या को सीधे हल करना", "समस्या को छोटे, स्वतंत्र सबप्रॉब्लम्स में विभाजित करना और उन्हें हल करना", "समस्या को ग्रीडी तरीके से हल करना", "समस्या को रिकर्सिव तरीके से हल करना बिना विभाजन के" ], "correct": 1, "explanation": "'Divide and Conquer' रणनीति में, समस्या को छोटे, स्वतंत्र सबप्रॉब्लम्स में विभाजित किया जाता है और उन्हें हल करके मूल समस्या का समाधान प्राप्त किया जाता है।" }, { "question": "भाषा और व्याकरण में, 'Terminal Symbols' क्या होते हैं?", "options": [ "वे प्रतीक जो व्याकरण के नियमों में गैर-टर्मिनल्स से उत्पन्न होते हैं", "वे प्रतीक जिन्हें व्याकरण के नियमों में पुनः उत्पन्न नहीं किया जा सकता", "वे प्रतीक जो व्याकरण में सबसे अधिक उपयोग किए जाते हैं", "वे प्रतीक जो केवल स्टार्ट सिम्बल होते हैं" ], "correct": 1, "explanation": "'Terminal Symbols' वे प्रतीक होते हैं जिन्हें व्याकरण के नियमों में पुनः उत्पन्न नहीं किया जा सकता। ये अंतिम उत्पादन होते हैं जो वास्तविक भाषा के शब्दों का प्रतिनिधित्व करते हैं।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Moore Machine' और 'Mealy Machine' में क्या अंतर है?", "options": [ "Moore Machine का आउटपुट केवल स्टेट्स पर निर्भर करता है, जबकि Mealy Machine का आउटपुट इनपुट्स पर भी निर्भर करता है", "Mealy Machine का आउटपुट केवल स्टेट्स पर निर्भर करता है, जबकि Moore Machine का आउटपुट इनपुट्स पर भी निर्भर करता है", "दोनों मशीनों का आउटपुट समान होता है", "दोनों मशीनों में कोई अंतर नहीं होता" ], "correct": 0, "explanation": "Moore Machine का आउटपुट केवल स्टेट्स पर निर्भर करता है, जबकि Mealy Machine का आउटपुट इनपुट्स पर भी निर्भर करता है। यह दोनों मशीनों के आउटपुट जनरेशन के तरीके में अंतर को दर्शाता है।" }, { "question": "ट्यूरिंग मशीन में, 'Tape Head' का कार्य क्या है?", "options": [ "टेप को पढ़ना और लिखना", "टेप को चलाना", "टेप को साफ करना", "टेप की गति को नियंत्रित करना" ], "correct": 0, "explanation": "'Tape Head' ट्यूरिंग मशीन का हिस्सा होता है जो टेप को पढ़ता और लिखता है। यह मशीन के संचालन के लिए महत्वपूर्ण होता है क्योंकि यह डेटा के साथ इंटरैक्ट करता है।" }, { "question": "कंप्यूटेबिलिटी में, 'Church-Turing Thesis' का क्या महत्व है?", "options": [ "यह बताता है कि ट्यूरिंग मशीन सभी कंप्यूटेबल समस्याओं को हल कर सकती है", "यह बताता है कि कोई भी समस्या कंप्यूटेबल नहीं है", "यह एल्गोरिदमिक समस्याओं को वर्गीकृत करता है", "यह कंप्यूटर हार्डवेयर की क्षमताओं को बढ़ाता है" ], "correct": 0, "explanation": "Church-Turing Thesis यह बताता है कि ट्यूरिंग मशीन सभी कंप्यूटेबल समस्याओं को हल कर सकती है। यह कंप्यूटेबिलिटी का मूल सिद्धांत है।" }, { "question": "जटिलता सिद्धांत में, 'Big Theta Notation' का क्या उपयोग है?", "options": [ "एल्गोरिदम की स्पेस जटिलता को व्यक्त करने के लिए", "एल्गोरिदम की टाइम जटिलता के दोनों ऊपरी और निचले सीमाओं को व्यक्त करने के लिए", "एल्गोरिदम की स्पीड को मापने के लिए", "डेटा को एन्कोड करने के लिए" ], "correct": 1, "explanation": "Big Theta Notation का उपयोग एल्गोरिदम की टाइम जटिलता के दोनों ऊपरी और निचले सीमाओं को व्यक्त करने के लिए किया जाता है, जिससे यह दर्शाता है कि एल्गोरिदम का रनटाइम किस सीमा में रहता है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Backtracking' तकनीक का उपयोग किसके लिए किया जाता है?", "options": [ "समस्या को ग्रीडी तरीके से हल करने के लिए", "समस्या के संभावित समाधानों को खोजने के लिए, जहां गलती होने पर पीछे जाना आवश्यक होता है", "समस्या को डायनमिक प्रोग्रामिंग से हल करने के लिए", "डेटा को एन्कोड करने के लिए" ], "correct": 1, "explanation": "Backtracking तकनीक का उपयोग उन समस्याओं के संभावित समाधानों को खोजने के लिए किया जाता है, जहाँ गलती होने पर पिछे जाना और अन्य विकल्पों का प्रयास करना आवश्यक होता है।" }, { "question": "भाषा और व्याकरण में, 'Ambiguity' किस प्रकार की व्याकरणिक विशेषता को दर्शाती है?", "options": [ "किसी वाक्य का केवल एक ही व्याकरणिक संरचना होना", "किसी वाक्य का कई व्याकरणिक संरचनाओं में विश्लेषण किया जा सकता है", "किसी व्याकरण के नियमों का स्पष्ट होना", "किसी व्याकरण के नियमों का अप्रभावी होना" ], "correct": 1, "explanation": "'Ambiguity' यह दर्शाती है कि किसी वाक्य को कई व्याकरणिक संरचनाओं में विश्लेषित किया जा सकता है। यह पार्सिंग प्रक्रियाओं में समस्याएँ पैदा कर सकता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Equivalence of DFA and NFA' का क्या अर्थ है?", "options": [ "DFA और NFA किसी भी भाषा को पहचानने में समान हैं", "DFA केवल रेगुलर भाषाओं को पहचान सकता है, जबकि NFA नहीं", "NFA केवल रेगुलर भाषाओं को पहचान सकता है, जबकि DFA नहीं", "दोनों में कोई समानता नहीं है" ], "correct": 0, "explanation": "DFA और NFA दोनों ही किसी भी रेगुलर भाषा को पहचानने में सक्षम हैं। किसी भी NFA को एक समकक्ष DFA में बदला जा सकता है, जिससे दोनों की क्षमता समान होती है।" }, { "question": "ट्यूरिंग मशीन में, 'Universal Turing Machine' क्या है?", "options": [ "एक ट्यूरिंग मशीन जो केवल गणितीय समस्याएँ हल कर सकती है", "एक ट्यूरिंग मशीन जो किसी भी अन्य ट्यूरिंग मशीन को सिमुलेट कर सकती है", "एक ट्यूरिंग मशीन जो असीमित गति से काम करती है", "एक ट्यूरिंग मशीन जो सिर्फ छोटे समस्याएँ हल कर सकती है" ], "correct": 1, "explanation": "Universal Turing Machine एक ऐसा ट्यूरिंग मशीन है जो किसी भी अन्य ट्यूरिंग मशीन को सिमुलेट कर सकती है। यह कंप्यूटर विज्ञान में एक महत्वपूर्ण अवधारणा है, जो कंप्यूटर की सार्वभौमिकता को दर्शाती है।" }, { "question": "कंप्यूटेबिलिटी में, 'Rice's Theorem' क्या कहता है?", "options": [ "किसी भी गैर-ट्रिवियल प्रॉपर्टी का स्वचालित परीक्षण संभव है", "किसी भी गैर-ट्रिवियल प्रॉपर्टी का स्वचालित परीक्षण असंभव है", "सभी भाषाएँ कंप्यूटेबल हैं", "किसी भी प्रॉपर्टी का परीक्षण करने के लिए केवल मनुष्यों की आवश्यकता होती है" ], "correct": 1, "explanation": "Rice's Theorem कहता है कि किसी भी गैर-ट्रिवियल प्रॉपर्टी का स्वचालित परीक्षण ट्यूरिंग मशीन पर असंभव है। यह कंप्यूटेबिलिटी में एक महत्वपूर्ण परिणाम है।" }, { "question": "जटिलता सिद्धांत में, 'NP-Complete' समस्याओं का क्या महत्व है?", "options": [ "यह बताता है कि इन समस्याओं को पॉलीनॉमियल समय में हल किया जा सकता है", "यह बताता है कि अगर कोई NP-Complete समस्या पॉलीनॉमियल समय में हल हो सकती है, तो सभी NP समस्याएँ भी हल हो सकती हैं", "यह बताता है कि ये समस्याएँ हल नहीं की जा सकती", "यह बताता है कि ये समस्याएँ केवल मशीनों द्वारा हल की जा सकती हैं" ], "correct": 1, "explanation": "NP-Complete समस्याओं का महत्व यह है कि यदि कोई भी NP-Complete समस्या पॉलीनॉमियल समय में हल हो सकती है, तो सभी NP समस्याएँ भी पॉलीनॉमियल समय में हल हो सकती हैं। यह P vs NP समस्या के संदर्भ में महत्वपूर्ण है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Breadth-First Search (BFS)' का उपयोग किसके लिए किया जाता है?", "options": [ "ग्राफ में गहराई से खोजने के लिए", "ग्राफ में चौड़ाई से खोजने के लिए", "डेटा को एन्कोड करने के लिए", "डेटा को स्टोर करने के लिए" ], "correct": 1, "explanation": "Breadth-First Search (BFS) का उपयोग ग्राफ में चौड़ाई से खोजने के लिए किया जाता है, जिससे सबसे कम दूरी पर स्थित नोड्स को पहले खोजा जाता है।" }, { "question": "भाषा और व्याकरण में, 'Regular Expressions' का उपयोग किसके लिए किया जाता है?", "options": [ "डेटा को एन्कोड करने के लिए", "टेक्स्ट पैटर्न्स को परिभाषित और पहचानने के लिए", "प्रोग्रामिंग भाषाओं के सिंटेक्स को परिभाषित करने के लिए", "डेटा को स्टोर करने के लिए" ], "correct": 1, "explanation": "Regular Expressions का उपयोग टेक्स्ट पैटर्न्स को परिभाषित और पहचानने के लिए किया जाता है। यह डेटा प्रोसेसिंग, सर्च, और टेक्स्ट मैनिपुलेशन में महत्वपूर्ण होता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'DFA' और 'NFA' के बीच किस प्रकार का संबंध है?", "options": [ "DFA, NFA की तुलना में अधिक शक्तिशाली है", "NFA, DFA की तुलना में अधिक शक्तिशाली है", "DFA और NFA की शक्तियाँ समान हैं", "DFA और NFA अलग-अलग समस्याओं को हल करते हैं" ], "correct": 2, "explanation": "DFA और NFA की शक्तियाँ समान हैं। किसी भी NFA को एक समकक्ष DFA में बदला जा सकता है, जिससे दोनों ही रेगुलर भाषाओं को पहचानने में सक्षम होते हैं।" }, { "question": "ट्यूरिंग मशीन में, 'Multiple Tapes' का क्या लाभ है?", "options": [ "मशीन की गति को बढ़ाना", "मशीन को अधिक जटिल समस्याएँ हल करने में सक्षम बनाना", "मशीन की क्षमता को सीमित करना", "मशीन को अधिक सरल बनाना" ], "correct": 1, "explanation": "Multiple Tapes का उपयोग ट्यूरिंग मशीन की क्षमता को बढ़ाने के लिए किया जाता है, जिससे यह अधिक जटिल समस्याओं को अधिक कुशलतापूर्वक हल कर सकती है।" }, { "question": "कंप्यूटेबिलिटी में, 'Decidability' और 'Semi-Decidability' में क्या अंतर है?", "options": [ "Decidability में समस्याएँ हल नहीं हो सकतीं, जबकि Semi-Decidability में हल हो सकतीं हैं", "Decidability में समस्याएँ हमेशा हल हो जाती हैं, जबकि Semi-Decidability में केवल स्वीकार करने वाली समस्याएँ हल हो सकती हैं", "दोनों में कोई अंतर नहीं है", "Decidability केवल गणितीय समस्याओं के लिए है, जबकि Semi-Decidability कंप्यूटर समस्याओं के लिए है" ], "correct": 1, "explanation": "Decidability में समस्याएँ हमेशा हल हो जाती हैं, चाहे वे स्वीकार हो या अस्वीकार। Semi-Decidability में केवल स्वीकार करने वाली समस्याएँ हल हो सकती हैं, अस्वीकार करने वाली के लिए नहीं।" }, { "question": "जटिलता सिद्धांत में, 'Space Complexity' किसे मापता है?", "options": [ "एल्गोरिदम की समय की जटिलता", "एल्गोरिदम द्वारा उपयोग की जाने वाली मेमोरी की मात्रा", "डेटा ट्रांसमिशन की गति", "डेटा स्टोरेज की क्षमता" ], "correct": 1, "explanation": "'Space Complexity' एल्गोरिदम द्वारा उपयोग की जाने वाली मेमोरी की मात्रा को मापता है। यह बताता है कि एल्गोरिदम की मेमोरी उपयोग कैसे बढ़ती है जब इनपुट का आकार बढ़ता है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Backtracking' और 'Branch and Bound' में क्या मुख्य अंतर है?", "options": [ "Backtracking केवल सर्च समस्याओं में उपयोग होता है, Branch and Bound नहीं", "Branch and Bound में एक सीमा निर्धारित की जाती है, जबकि Backtracking में नहीं", "Backtracking अधिक कुशल होता है", "Branch and Bound केवल ग्राफ समस्याओं में उपयोग होता है" ], "correct": 1, "explanation": "Branch and Bound में एक सीमा निर्धारित की जाती है जिससे सर्च स्पेस को सीमित किया जा सके, जबकि Backtracking में यह प्रक्रिया नहीं होती। इससे Branch and Bound अधिक कुशल बनता है जब उपयुक्त सीमा निर्धारित की जाती है।" }, { "question": "भाषा और व्याकरण में, 'Pushdown Automaton' और 'Regular Expression' के बीच क्या संबंध है?", "options": [ "Pushdown Automaton केवल नियमित भाषाओं को पहचान सकता है", "Regular Expression केवल कंटेक्स्ट-फ्री भाषाओं को परिभाषित कर सकता है", "Pushdown Automaton कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है, जबकि Regular Expression केवल नियमित भाषाओं को परिभाषित करता है", "दोनों एक ही प्रकार की भाषाओं को परिभाषित करते हैं" ], "correct": 2, "explanation": "Pushdown Automaton कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है, जबकि Regular Expression केवल नियमित भाषाओं को परिभाषित करता है। ये दोनों अलग-अलग प्रकार की भाषाओं को संभालने के लिए डिज़ाइन किए गए हैं।" }, { "question": "ट्यूरिंग मशीन में, 'Universal Turing Machine' किसके लिए महत्वपूर्ण है?", "options": [ "विशिष्ट समस्याओं को हल करने के लिए", "किसी भी ट्यूरिंग मशीन को सिमुलेट करने के लिए", "सिर्फ गणितीय समस्याओं को हल करने के लिए", "मल्टीटास्किंग को संभालने के लिए" ], "correct": 1, "explanation": "Universal Turing Machine किसी भी अन्य ट्यूरिंग मशीन को सिमुलेट कर सकती है। यह कंप्यूटेशनल यूनिवर्सलिटी को दर्शाती है और कंप्यूटर के सिद्धांत में एक महत्वपूर्ण अवधारणा है।" }, { "question": "कंप्यूटेबिलिटी में, 'Oracle Machines' क्या हैं?", "options": [ "ट्यूरिंग मशीन के एक प्रकार जो त्रुटियों को सुधार सकती हैं", "ट्यूरिंग मशीन के एक प्रकार जिनमें अतिरिक्त जानकारी के लिए एक ओरेकल होता है", "ट्यूरिंग मशीन का एक प्रकार जो केवल गणितीय समस्याएँ हल कर सकता है", "ट्यूरिंग मशीन का एक प्रकार जो तेजी से काम करती है" ], "correct": 1, "explanation": "Oracle Machines ट्यूरिंग मशीन के एक प्रकार हैं जिनमें अतिरिक्त जानकारी के लिए एक ओरेकल होता है। यह मशीन को समस्याओं के तुरंत समाधान प्रदान करने की क्षमता देता है, जिससे यह गणितीय और कंप्यूटेशनल सिद्धांतों में उपयोगी होती है।" }, { "question": "जटिलता सिद्धांत में, 'Reduction' का क्या उपयोग है?", "options": [ "एक समस्या को हल करने के लिए एल्गोरिदम बनाना", "एक समस्या को दूसरी समस्या में बदलना ताकि उसकी जटिलता का विश्लेषण किया जा सके", "एल्गोरिदम की स्पीड बढ़ाना", "डेटा को एन्कोड करना" ], "correct": 1, "explanation": "Reduction का उपयोग एक समस्या को दूसरी समस्या में बदलने के लिए किया जाता है, जिससे उसकी जटिलता का विश्लेषण किया जा सके और यह समझा जा सके कि क्या एक समस्या दूसरी समस्या से हल की जा सकती है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Memoization' का क्या उपयोग है?", "options": [ "समस्या को ग्रीडी तरीके से हल करना", "समस्या के समाधान को कैश में स्टोर करना ताकि पुनः गणना से बचा जा सके", "समस्या को डायनमिक प्रोग्रामिंग से हल करना", "समस्या को विभाजित करना" ], "correct": 1, "explanation": "Memoization तकनीक में समस्या के समाधान को कैश में स्टोर किया जाता है ताकि भविष्य में उसी सबप्रॉब्लम का समाधान तुरंत उपलब्ध हो सके, जिससे गणना की पुनरावृत्ति से बचा जा सके और एल्गोरिदम की दक्षता बढ़ाई जा सके।" }, { "question": "भाषा और व्याकरण में, 'Chomsky Normal Form' का उपयोग किसके लिए किया जाता है?", "options": [ "व्याकरण को सरल बनाने के लिए ताकि उसे आसानी से पार्स किया जा सके", "व्याकरण को जटिल बनाने के लिए", "डेटा को एन्कोड करने के लिए", "डेटा को स्टोर करने के लिए" ], "correct": 0, "explanation": "Chomsky Normal Form व्याकरण को एक मानक रूप में लाने के लिए उपयोग किया जाता है, जिससे उसे आसानी से पार्स किया जा सके। यह पार्सिंग एल्गोरिदम्स के लिए आवश्यक होता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'ε-NFA' किस प्रकार का ऑटोमेटा है?", "options": [ "एक डिटरमिनिस्टिक ऑटोमेटा", "एक नॉन-डिटरमिनिस्टिक ऑटोमेटा जिसमें ε-ट्रांजिशन्स होते हैं", "एक ऑटोमेटा जो केवल रेगुलर भाषाओं को पहचानता है", "एक ऑटोमेटा जो सिर्फ कंटेक्स्ट-फ्री भाषाओं को पहचानता है" ], "correct": 1, "explanation": "ε-NFA एक नॉन-डिटरमिनिस्टिक ऑटोमेटा होता है जिसमें ε-ट्रांजिशन्स होते हैं, जो बिना किसी इनपुट के होते हैं। यह अधिक लचीला होता है लेकिन इसका मान्यता करने के लिए अतिरिक्त प्रक्रिया की आवश्यकता होती है।" }, { "question": "ट्यूरिंग मशीन में, 'Infinite Tape' का क्या कार्य है?", "options": [ "टेप को पढ़ना", "मशीन को असीमित मेमोरी प्रदान करना", "टेप को लिखना", "मशीन की गति बढ़ाना" ], "correct": 1, "explanation": "Infinite Tape ट्यूरिंग मशीन को असीमित मेमोरी प्रदान करता है, जिससे यह किसी भी कंप्यूटेशन को बिना मेमोरी की सीमाओं के हल कर सकती है।" }, { "question": "कंप्यूटेबिलिटी में, 'Recursion' का क्या महत्व है?", "options": [ "समस्याओं को दोहराकर हल करने में मदद करता है", "डेटा को स्टोर करने में मदद करता है", "यूज़र इंटरफेस को स्टाइल करता है", "डेटा ट्रांसमिशन को तेज करता है" ], "correct": 0, "explanation": "Recursion तकनीक समस्याओं को दोहराकर हल करने में मदद करती है, जहाँ एक समस्या का समाधान छोटे, समान समस्याओं के हल से निकाला जाता है।" }, { "question": "जटिलता सिद्धांत में, 'Exponential Time' एल्गोरिदम का क्या मतलब है?", "options": [ "एल्गोरिदम का रनटाइम लीनियर होता है", "एल्गोरिदम का रनटाइम पॉलीनॉमियल होता है", "एल्गोरिदम का रनटाइम एक्सपोनेंशियल होता है", "एल्गोरिदम का रनटाइम लॉगरिदमिक होता है" ], "correct": 2, "explanation": "Exponential Time एल्गोरिदम का मतलब है कि उसका रनटाइम इनपुट के आकार के साथ एक्सपोनेंशियल रूप से बढ़ता है, जिससे यह बड़े इनपुट पर अस्वीकार्य हो जाता है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Heuristic Algorithm' का क्या उपयोग है?", "options": [ "सटीक समाधान प्रदान करना", "समस्या के लगभग समाधान प्रदान करना", "डेटा को स्टोर करना", "यूज़र इंटरफेस को स्टाइल करना" ], "correct": 1, "explanation": "Heuristic Algorithm का उपयोग समस्या के लगभग समाधान प्रदान करने के लिए किया जाता है, जो समय-सारिणी में तेजी से हल प्रदान करता है लेकिन हमेशा सटीक नहीं होता।" }, { "question": "भाषा और व्याकरण में, 'Leftmost Derivation' क्या है?", "options": [ "व्याकरणिक नियमों का पालन करते हुए बायां से शुरू करके वाक्य का निर्माण करना", "व्याकरणिक नियमों का पालन करते हुए दाहिना से शुरू करके वाक्य का निर्माण करना", "एक ही वाक्य को कई तरीकों से विश्लेषित करना", "व्याकरणिक नियमों का उल्लंघन करना" ], "correct": 0, "explanation": "Leftmost Derivation में व्याकरणिक नियमों का पालन करते हुए बायां से शुरू करके वाक्य का निर्माण किया जाता है। यह पार्सिंग में एक विशिष्ट तरीका होता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Mealy Machine' की विशेषता क्या है?", "options": [ "इसके आउटपुट केवल स्टेट्स पर निर्भर करता है", "इसके आउटपुट इनपुट्स पर भी निर्भर करते हैं", "यह केवल डिटरमिनिस्टिक ऑटोमेटा है", "यह केवल रेगुलर भाषाओं को पहचानता है" ], "correct": 1, "explanation": "Mealy Machine में आउटपुट इनपुट्स पर भी निर्भर करता है, जिससे यह अधिक लचीला और सक्षम होता है। यह एक प्रकार का फॉर्मल ऑटोमेटा है।" }, { "question": "ट्यूरिंग मशीन में, 'Multi-tape Turing Machine' क्या है?", "options": [ "एक ट्यूरिंग मशीन जिसमें एक ही टेप होता है", "एक ट्यूरिंग मशीन जिसमें एक से अधिक टेप होते हैं", "एक ट्यूरिंग मशीन जो केवल गणितीय समस्याएँ हल कर सकती है", "एक ट्यूरिंग मशीन जो तेज़ी से काम करती है" ], "correct": 1, "explanation": "Multi-tape Turing Machine में एक से अधिक टेप होते हैं, जिससे यह अधिक जटिल समस्याओं को अधिक कुशलतापूर्वक हल कर सकती है।" }, { "question": "कंप्यूटेबिलिटी में, 'Gödel's Incompleteness Theorems' क्या कहते हैं?", "options": [ "हर गणितीय प्रणाली पूर्ण है", "किसी भी पर्याप्त शक्तिशाली गणितीय प्रणाली में कुछ सत्य बातें ऐसी होती हैं जिन्हें साबित नहीं किया जा सकता", "गणितीय प्रणालियाँ हमेशा सुसंगत होती हैं", "गणितीय प्रणालियाँ बिना त्रुटियों के काम करती हैं" ], "correct": 1, "explanation": "Gödel's Incompleteness Theorems कहते हैं कि किसी भी पर्याप्त शक्तिशाली गणितीय प्रणाली में कुछ सत्य बातें ऐसी होती हैं जिन्हें सिस्टम के नियमों के आधार पर साबित नहीं किया जा सकता।" }, { "question": "जटिलता सिद्धांत में, 'Parallel Computing' का क्या महत्व है?", "options": [ "एल्गोरिदम को तेजी से चलाना", "एल्गोरिदम की समय जटिलता को बढ़ाना", "डेटा को एन्कोड करना", "यूज़र इंटरफेस को स्टाइल करना" ], "correct": 0, "explanation": "Parallel Computing का महत्व एल्गोरिदम को तेजी से चलाने में है, जहाँ कई प्रोसेसरों या कोरों का उपयोग करके काम को समानांतर में किया जाता है। इससे समय जटिलता कम होती है।" }, { "question": "भाषा और व्याकरण में, 'Parse Tree' क्या है?", "options": [ "एक ट्री जिसमें सभी व्याकरणिक नियमों को दिखाया जाता है", "एक ट्री जिसमें एक वाक्य के व्याकरणिक संरचना को दर्शाया जाता है", "एक ट्री जिसमें वाक्य के सभी शब्दों को दिखाया जाता है", "एक ट्री जिसमें केवल गैर-टर्मिनल्स को दिखाया जाता है" ], "correct": 1, "explanation": "'Parse Tree' एक ट्री संरचना है जिसमें एक वाक्य के व्याकरणिक संरचना को दर्शाया जाता है। यह पार्सिंग प्रक्रिया के दौरान उत्पन्न होता है और यह दिखाता है कि कैसे व्याकरणिक नियमों का पालन करके वाक्य का निर्माण होता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Equivalence of DFA and Regular Expressions' का क्या अर्थ है?", "options": [ "DFA केवल कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है", "प्रत्येक DFA को एक समकक्ष Regular Expression में बदला जा सकता है और vice versa", "Regular Expressions अधिक शक्तिशाली हैं", "DFA और Regular Expressions में कोई संबंध नहीं है" ], "correct": 1, "explanation": "Equivalence of DFA and Regular Expressions का अर्थ है कि प्रत्येक DFA को एक समकक्ष Regular Expression में बदला जा सकता है और प्रत्येक Regular Expression को एक समकक्ष DFA में बदला जा सकता है।" }, { "question": "ट्यूरिंग मशीन में, 'Single-tape Turing Machine' क्या है?", "options": [ "एक ट्यूरिंग मशीन जिसमें एक ही टेप होता है", "एक ट्यूरिंग मशीन जिसमें एक से अधिक टेप होते हैं", "एक ट्यूरिंग मशीन जो सिर्फ गणितीय समस्याएँ हल कर सकती है", "एक ट्यूरिंग मशीन जो तेजी से काम करती है" ], "correct": 0, "explanation": "Single-tape Turing Machine में एक ही टेप होता है, जिस पर मशीन डेटा पढ़ती और लिखती है। यह ट्यूरिंग मशीन का एक सरल प्रकार है।" }, { "question": "कंप्यूटेबिलिटी में, 'Undecidable Problems' क्या हैं?", "options": [ "ऐसी समस्याएँ जिन्हें किसी भी ट्यूरिंग मशीन द्वारा हल नहीं किया जा सकता", "ऐसी समस्याएँ जिन्हें आसानी से हल किया जा सकता है", "ऐसी समस्याएँ जो केवल मानव हल कर सकते हैं", "ऐसी समस्याएँ जिन्हें केवल गणितीय तरीके से हल किया जा सकता है" ], "correct": 0, "explanation": "Undecidable Problems ऐसी समस्याएँ होती हैं जिन्हें किसी भी ट्यूरिंग मशीन द्वारा हल नहीं किया जा सकता। ये समस्याएँ कंप्यूटेबिलिटी के सिद्धांत में महत्वपूर्ण भूमिका निभाती हैं।" }, { "question": "जटिलता सिद्धांत में, 'Big Omega' और 'Big O' में क्या अंतर है?", "options": [ "Big Omega समय जटिलता का ऊपरी सीमा निर्धारित करता है, जबकि Big O निचली सीमा", "Big Omega समय जटिलता का निचली सीमा निर्धारित करता है, जबकि Big O ऊपरी सीमा", "दोनों एक ही हैं", "Big O स्पेस जटिलता को मापता है, जबकि Big Omega समय जटिलता को" ], "correct": 1, "explanation": "Big Omega समय जटिलता का निचली सीमा निर्धारित करता है, जबकि Big O समय जटिलता का ऊपरी सीमा निर्धारित करता है। ये दोनों एल्गोरिदम की कार्यक्षमता के विभिन्न पहलुओं को व्यक्त करते हैं।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Greedy Algorithm' का उपयोग किसके लिए किया जाता है?", "options": [ "समस्या के सभी संभावित समाधानों को खोजने के लिए", "समस्या के सबसे अच्छा स्थानीय विकल्प चुनकर समाधान प्राप्त करने के लिए", "समस्या को विभाजित करने के लिए", "समस्या के जटिल समाधानों को सरल बनाने के लिए" ], "correct": 1, "explanation": "Greedy Algorithm का उपयोग समस्या के सबसे अच्छा स्थानीय विकल्प चुनकर समाधान प्राप्त करने के लिए किया जाता है। यह एल्गोरिदम सरल और कुशल होता है, लेकिन सभी समस्याओं के लिए उपयुक्त नहीं होता।" }, { "question": "भाषा और व्याकरण में, 'Type-0 Grammar' क्या है?", "options": [ "सिर्फ रेगुलर भाषाओं को परिभाषित करने वाला व्याकरण", "सिर्फ कंटेक्स्ट-फ्री भाषाओं को परिभाषित करने वाला व्याकरण", "सिर्फ कंटेक्स्ट-सेंसिटिव भाषाओं को परिभाषित करने वाला व्याकरण", "कोई भी व्याकरण जो टी-चॉम्स्की हायेरार्की के तहत आता है" ], "correct": 3, "explanation": "Type-0 Grammar कोई भी व्याकरण हो सकता है जो टी-चॉम्स्की हायेरार्की के तहत आता है, जिसमें सबसे शक्तिशाली व्याकरण शामिल होते हैं जो सभी प्रकार की भाषाओं को परिभाषित कर सकते हैं।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Deterministic Pushdown Automaton' (DPDA) किन भाषाओं को पहचान सकता है?", "options": [ "सिर्फ रेगुलर भाषाएँ", "सिर्फ कंटेक्स्ट-फ्री भाषाएँ", "सिर्फ कंटेक्स्ट-सेंसिटिव भाषाएँ", "सभी प्रकार की भाषाएँ" ], "correct": 1, "explanation": "Deterministic Pushdown Automaton (DPDA) केवल कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है। यह एक प्रकार का फॉर्मल ऑटोमेटा है जो स्टैक का उपयोग करता है।" }, { "question": "ट्यूरिंग मशीन में, 'Halting Problem' को क्या कहा जाता है?", "options": [ "एक समस्या जिसे हल करना संभव है", "एक समस्या जिसे हल करना असंभव है", "ट्यूरिंग मशीन का एक प्रकार", "एक एल्गोरिदम" ], "correct": 1, "explanation": "Halting Problem एक ऐसी समस्या है जिसे ट्यूरिंग मशीन द्वारा हल करना असंभव है। यह निर्धारित करने की कोशिश करता है कि कोई भी प्रोग्राम किसी भी इनपुट पर रुकेगा या नहीं।" }, { "question": "कंप्यूटेबिलिटी में, 'Lambda Calculus' किसका मॉडल है?", "options": [ "एक विशेष प्रकार की ट्यूरिंग मशीन", "प्रोग्रामिंग भाषाओं का एक फॉर्मल सिस्टम", "डायनमिक प्रोग्रामिंग का एक मॉडल", "ग्राफ अल्गोरिदम का एक मॉडल" ], "correct": 1, "explanation": "Lambda Calculus प्रोग्रामिंग भाषाओं का एक फॉर्मल सिस्टम है, जो फंक्शनल प्रोग्रामिंग की मूल अवधारणाओं को परिभाषित करता है।" }, { "question": "जटिलता सिद्धांत में, 'NP' क्लास के बाहर की कौन सी क्लास आती है?", "options": [ "P", "Co-NP", "NP-Complete", "NP-Hard" ], "correct": 3, "explanation": "NP-Hard क्लास NP क्लास के बाहर आती है। NP-Hard समस्याएँ उन समस्याओं की श्रेणी हैं जिन्हें NP क्लास की किसी भी समस्या में रूपांतरित किया जा सकता है, भले ही वे खुद NP में न हों।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Depth-First Search (DFS)' का उपयोग किसके लिए किया जाता है?", "options": [ "ग्राफ में चौड़ाई से खोजने के लिए", "ग्राफ में गहराई से खोजने के लिए", "डेटा को एन्कोड करने के लिए", "डेटा को स्टोर करने के लिए" ], "correct": 1, "explanation": "Depth-First Search (DFS) का उपयोग ग्राफ में गहराई से खोजने के लिए किया जाता है, जहाँ यह एक रास्ते के अंत तक जाता है और फिर पीछे मुड़कर अन्य रास्ते खोजता है।" }, { "question": "भाषा और व्याकरण में, 'Ambiguous Grammar' किस प्रकार की समस्या पैदा कर सकता है?", "options": [ "सिंटेक्स एनालिसिस में सटीकता", "पार्सिंग में असमानता", "डेटा को एन्कोड करने में कठिनाई", "डेटा को स्टोर करने में समस्याएँ" ], "correct": 1, "explanation": "Ambiguous Grammar पार्सिंग में असमानता पैदा कर सकती है, क्योंकि एक ही वाक्य को कई व्याकरणिक संरचनाओं में विश्लेषित किया जा सकता है। यह पार्सर को सही संरचना चुनने में कठिनाई पैदा कर सकता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Epsilon Closure' क्या है?", "options": [ "एक स्थिति से शुरू होकर सभी ε-ट्रांजिशन्स के माध्यम से पहुँची जाने वाली स्थितियों का सेट", "एक स्थिति से शुरू होकर केवल एक ε-ट्रांजिशन के माध्यम से पहुँची जाने वाली स्थिति", "सभी स्थितियों को शामिल करने वाला सेट", "कोई विशेष स्थिति नहीं है" ], "correct": 0, "explanation": "'Epsilon Closure' एक स्थिति से शुरू होकर सभी ε-ट्रांजिशन्स के माध्यम से पहुँची जाने वाली स्थितियों का सेट होता है। यह NFA के संचालन में महत्वपूर्ण होता है।" }, { "question": "ट्यूरिंग मशीन में, 'Configuration' क्या होती है?", "options": [ "मशीन की वर्तमान स्थिति", "मशीन की वर्तमान स्थिति, टेप की सामग्री, और हेड की स्थिति", "मशीन की सभी संभावित स्थितियाँ", "मशीन की गति और मेमोरी" ], "correct": 1, "explanation": "Configuration ट्यूरिंग मशीन की वर्तमान स्थिति, टेप की सामग्री, और हेड की स्थिति को दर्शाती है। यह मशीन की पूरी स्थिति को परिभाषित करती है।" }, { "question": "कंप्यूटेबिलिटी में, 'Reducibility' किसके लिए उपयोग किया जाता है?", "options": [ "एक समस्या को हल करने के लिए नए एल्गोरिदम बनाना", "एक समस्या को दूसरी समस्या में बदलना ताकि उसकी जटिलता का विश्लेषण किया जा सके", "एल्गोरिदम की स्पीड बढ़ाना", "डेटा को स्टोर करना" ], "correct": 1, "explanation": "'Reducibility' का उपयोग एक समस्या को दूसरी समस्या में बदलने के लिए किया जाता है, जिससे यह दिखाया जा सके कि यदि दूसरी समस्या हल की जा सकती है, तो पहली समस्या भी हल की जा सकती है।" }, { "question": "जटिलता सिद्धांत में, 'Space Hierarchy Theorem' क्या कहता है?", "options": [ "अधिक मेमोरी वाले क्लास अधिक जटिलताएँ संभाल सकते हैं", "कम मेमोरी वाले क्लास अधिक जटिलताएँ संभाल सकते हैं", "सभी क्लासों की जटिलता समान होती है", "Space Hierarchy Theorem कोई महत्व नहीं रखता" ], "correct": 0, "explanation": "Space Hierarchy Theorem कहता है कि अधिक मेमोरी वाले क्लास अधिक जटिलताएँ संभाल सकते हैं। यह दिखाता है कि विभिन्न मेमोरी सीमाओं के साथ कंप्यूटेशनल शक्तियाँ अलग-अलग होती हैं।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Backtracking' किस प्रकार की समस्याओं के लिए उपयुक्त है?", "options": [ "उन समस्याओं के लिए जिन्हें ग्रीडी तरीके से हल किया जा सकता है", "उन समस्याओं के लिए जिन्हें पूर्ण खोज की आवश्यकता होती है", "उन समस्याओं के लिए जिन्हें डायनमिक प्रोग्रामिंग से हल किया जा सकता है", "उन समस्याओं के लिए जिन्हें नहीं हल किया जा सकता" ], "correct": 1, "explanation": "'Backtracking' उन समस्याओं के लिए उपयुक्त है जिन्हें पूर्ण खोज की आवश्यकता होती है, जैसे कि पहेली, गेम्स, और संयोजन समस्याएँ, जहाँ समाधान खोजने के लिए कई रास्ते तलाशने होते हैं।" }, { "question": "भाषा और व्याकरण में, 'Terminal Symbols' और 'Non-Terminal Symbols' में क्या अंतर है?", "options": [ "Terminal Symbols को पुनः उत्पन्न किया जा सकता है, Non-Terminal Symbols नहीं", "Non-Terminal Symbols को पुनः उत्पन्न किया जा सकता है, Terminal Symbols नहीं", "दोनों को पुनः उत्पन्न किया जा सकता है", "दोनों को पुनः उत्पन्न नहीं किया जा सकता" ], "correct": 1, "explanation": "Non-Terminal Symbols को पुनः उत्पन्न किया जा सकता है, जबकि Terminal Symbols को पुनः उत्पन्न नहीं किया जा सकता। Non-Terminal Symbols व्याकरण के नियमों में उपयोग होते हैं और Terminal Symbols वास्तविक भाषा के प्रतीक होते हैं।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Deterministic Pushdown Automaton' (DPDA) क्या कर सकता है?", "options": [ "यह केवल रेगुलर भाषाओं को पहचान सकता है", "यह केवल कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है", "यह कंटेक्स्ट-सेंसिटिव भाषाओं को भी पहचान सकता है", "यह सभी प्रकार की भाषाओं को पहचान सकता है" ], "correct": 1, "explanation": "Deterministic Pushdown Automaton (DPDA) केवल कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है। यह एक प्रकार का फॉर्मल ऑटोमेटा है जो स्टैक का उपयोग करता है।" }, { "question": "ट्यूरिंग मशीन में, 'Tape Head Movement' के कितने प्रकार होते हैं?", "options": [ "केवल बाएं", "केवल दाएं", "बाएं, दाएं, और स्थिर", "बाएं और दाएं" ], "correct": 2, "explanation": "Tape Head Movement ट्यूरिंग मशीन में बाएं, दाएं, और स्थिर हो सकता है। यह हेड को टेप पर पढ़ने और लिखने के लिए आवश्यक दिशा प्रदान करता है।" }, { "question": "कंप्यूटेबिलिटी में, 'Oracle Machines' का उपयोग किसके लिए किया जाता है?", "options": [ "त्रुटियों को सुधारने के लिए", "अतिरिक्त जानकारी प्रदान करने के लिए", "डेटा को स्टोर करने के लिए", "यूज़र इंटरफेस को स्टाइल करने के लिए" ], "correct": 1, "explanation": "Oracle Machines ट्यूरिंग मशीन के एक प्रकार हैं जिनमें एक ओरेकल होता है जो अतिरिक्त जानकारी प्रदान करता है, जिससे मशीन को समस्याओं का तुरंत समाधान प्राप्त हो सके।" }, { "question": "जटिलता सिद्धांत में, 'Polynomial Time' क्या है?", "options": [ "वे समय जो एल्गोरिदम के इनपुट आकार के साथ एक्सपोनेंशियल रूप से बढ़ते हैं", "वे समय जो एल्गोरिदम के इनपुट आकार के पॉलीनॉमियल रूप से बढ़ते हैं", "वे समय जो एल्गोरिदम के इनपुट आकार के साथ लीनियर रूप से बढ़ते हैं", "वे समय जो एल्गोरिदम को बहुत जल्दी हल करने में मदद करते हैं" ], "correct": 1, "explanation": "Polynomial Time वह समय है जो एल्गोरिदम के इनपुट आकार के पॉलीनॉमियल रूप से बढ़ता है। यह एल्गोरिदम की दक्षता को मापने का एक महत्वपूर्ण तरीका है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Branch and Bound' का मुख्य उद्देश्य क्या है?", "options": [ "समस्या के सभी संभावित समाधानों को खोजना", "समस्या के समाधान के लिए संभावित मार्गों को सीमित करना", "समस्या को ग्रीडी तरीके से हल करना", "समस्या को डायनमिक प्रोग्रामिंग से हल करना" ], "correct": 1, "explanation": "'Branch and Bound' का मुख्य उद्देश्य समस्या के समाधान के लिए संभावित मार्गों को सीमित करना है, जिससे सर्च स्पेस को कम किया जा सके और एल्गोरिदम को अधिक कुशल बनाया जा सके।" }, { "question": "भाषा और व्याकरण में, 'Chomsky Hierarchy' में सबसे कम शक्तिशाली व्याकरण कौन सा है?", "options": [ "Type-0 Grammar", "Type-1 Grammar", "Type-2 Grammar", "Type-3 Grammar" ], "correct": 3, "explanation": "Chomsky Hierarchy में सबसे कम शक्तिशाली व्याकरण Type-3 Grammar होता है, जिसे रेगुलर व्याकरण भी कहा जाता है। यह सबसे सरल व्याकरणिक संरचनाओं को परिभाषित करता है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Deterministic Pushdown Automaton' (DPDA) की तुलना में 'Non-Deterministic Pushdown Automaton' (NPDA) की क्या विशेषता है?", "options": [ "NPDA केवल रेगुलर भाषाओं को पहचान सकता है", "NPDA में एक से अधिक ट्रांजिशन्स हो सकते हैं", "NPDA को हल करना आसान होता है", "NPDA में स्टैक का उपयोग नहीं होता है" ], "correct": 1, "explanation": "Non-Deterministic Pushdown Automaton (NPDA) में एक से अधिक ट्रांजिशन्स हो सकते हैं, जिससे यह अधिक लचीला होता है और अधिक भाषाओं को पहचान सकता है।" }, { "question": "ट्यूरिंग मशीन में, 'Single-tape' और 'Multi-tape' मशीनों के बीच क्या अंतर है?", "options": [ "Single-tape मशीन में एक ही टेप होता है, जबकि Multi-tape मशीन में एक से अधिक टेप होते हैं", "Multi-tape मशीन में एक ही टेप होता है, जबकि Single-tape मशीन में एक से अधिक टेप होते हैं", "दोनों में कोई अंतर नहीं है", "दोनों में केवल स्टेट्स की संख्या में अंतर होता है" ], "correct": 0, "explanation": "Single-tape ट्यूरिंग मशीन में एक ही टेप होता है, जबकि Multi-tape ट्यूरिंग मशीन में एक से अधिक टेप होते हैं। इससे Multi-tape मशीन अधिक जटिल समस्याओं को अधिक कुशलतापूर्वक हल कर सकती है।" }, { "question": "कंप्यूटेबिलिटी में, 'Turing Degree' क्या है?", "options": [ "ट्यूरिंग मशीन की गति", "ट्यूरिंग मशीन की मेमोरी क्षमता", "एक समस्या की कंप्यूटेबिलिटी की शक्ति", "ट्यूरिंग मशीन के आउटपुट का प्रकार" ], "correct": 2, "explanation": "Turing Degree एक समस्या की कंप्यूटेबिलिटी की शक्ति को दर्शाता है। यह बताता है कि दो समस्याएँ कितनी जटिल हैं और क्या एक को दूसरे में रिड्यूस किया जा सकता है।" }, { "question": "जटिलता सिद्धांत में, 'P-Class' और 'NP-Class' के बीच क्या संबंध है?", "options": [ "P-Class हमेशा NP-Class से बड़ी होती है", "NP-Class हमेशा P-Class से बड़ी होती है", "P-Class NP-Class का एक उपक्लास है", "P-Class और NP-Class समान हैं" ], "correct": 2, "explanation": "P-Class NP-Class का एक उपक्लास है, क्योंकि P-Class में वे समस्याएँ शामिल हैं जिन्हें NP-Class में भी शामिल किया जा सकता है। यह एक महत्वपूर्ण संबंध है जो P vs NP समस्या से जुड़ा हुआ है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Memoization' और 'Tabulation' में क्या अंतर है?", "options": [ "Memoization टॉप-डाउन दृष्टिकोण है, Tabulation बॉटम-अप दृष्टिकोण है", "Tabulation टॉप-डाउन दृष्टिकोण है, Memoization बॉटम-अप दृष्टिकोण है", "दोनों एक ही तकनीक हैं", "दोनों तकनीकें पुनरावृत्ति को रोकती हैं" ], "correct": 0, "explanation": "Memoization टॉप-डाउन दृष्टिकोण है, जिसमें सबप्रॉब्लम्स को रिकर्सिव तरीके से हल किया जाता है और उनके समाधान को स्टोर किया जाता है। Tabulation बॉटम-अप दृष्टिकोण है, जिसमें सबप्रॉब्लम्स को पहले हल किया जाता है और उनके समाधान को एक तालिका में स्टोर किया जाता है।" }, { "question": "भाषा और व्याकरण में, 'Ambiguous Grammar' को कैसे सुधारा जा सकता है?", "options": [ "व्यासंगत व्याकरण का उपयोग करके", "डिटरमिनिस्टिक व्याकरण का उपयोग करके", "Left Recursion को हटाकर", "सभी विकल्प सही हैं" ], "correct": 3, "explanation": "Ambiguous Grammar को सुधारने के लिए व्यासंगत व्याकरण, डिटरमिनिस्टिक व्याकरण का उपयोग करना, और Left Recursion को हटाना आवश्यक होता है। ये सभी तरीके व्याकरण को अधिक स्पष्ट और पार्स करने योग्य बनाते हैं।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Transition Function' क्या होती है?", "options": [ "मशीन की स्टेट्स का सेट", "मशीन की इनपुट्स का सेट", "एक फंक्शन जो वर्तमान स्टेट और इनपुट के आधार पर अगली स्टेट निर्धारित करता है", "मशीन का आउटपुट फंक्शन" ], "correct": 2, "explanation": "'Transition Function' एक फंक्शन होता है जो वर्तमान स्टेट और इनपुट के आधार पर मशीन की अगली स्टेट निर्धारित करता है। यह फॉर्मल ऑटोमेटा के संचालन में केंद्रीय भूमिका निभाता है।" }, { "question": "ट्यूरिंग मशीन में, 'Blank Symbol' का क्या उपयोग है?", "options": [ "डेटा को लिखने के लिए", "टेप पर खाली स्थान को दर्शाने के लिए", "मशीन की स्टेट को बदलने के लिए", "टेप को साफ करने के लिए" ], "correct": 1, "explanation": "Blank Symbol ट्यूरिंग मशीन में टेप पर खाली स्थान को दर्शाने के लिए उपयोग होता है। यह उन स्थानों पर लिखा जाता है जहाँ कोई डेटा नहीं होता है।" }, { "question": "कंप्यूटेबिलिटी में, 'Turing-Complete' क्या है?", "options": [ "एक भाषा जो केवल सरल गणितीय समस्याओं को हल कर सकती है", "एक भाषा या सिस्टम जो किसी भी कंप्यूटेबल समस्या को हल कर सकता है", "एक भाषा जो केवल रेगुलर भाषाओं को संभाल सकती है", "एक भाषा जो केवल कंटेक्स्ट-फ्री भाषाओं को संभाल सकती है" ], "correct": 1, "explanation": "'Turing-Complete' एक भाषा या सिस्टम होता है जो किसी भी कंप्यूटेबल समस्या को हल करने की क्षमता रखता है, बशर्ते उसे पर्याप्त समय और मेमोरी मिले।" }, { "question": "जटिलता सिद्धांत में, 'Approximation Algorithms' का क्या उपयोग है?", "options": [ "समस्याओं का सटीक समाधान प्रदान करने के लिए", "समस्याओं के लगभग समाधान प्रदान करने के लिए", "समस्याओं को डायनमिक प्रोग्रामिंग से हल करने के लिए", "डेटा को एन्कोड करने के लिए" ], "correct": 1, "explanation": "Approximation Algorithms उन समस्याओं के लिए उपयोग किए जाते हैं जिनका सटीक समाधान पॉलीनॉमियल समय में नहीं हो सकता। ये लगभग सही समाधान प्रदान करते हैं, जो व्यावहारिक उपयोग के लिए पर्याप्त होते हैं।" }, { "question": "भाषा और व्याकरण में, 'Leftmost Derivation' और 'Rightmost Derivation' में क्या अंतर है?", "options": [ "Leftmost Derivation में बाएं से, Rightmost Derivation में दाएं से नियम लागू किए जाते हैं", "Leftmost Derivation में दाएं से, Rightmost Derivation में बाएं से नियम लागू किए जाते हैं", "दोनों में कोई अंतर नहीं है", "Leftmost Derivation में नियमों को पुनः उत्पन्न किया जाता है, Rightmost Derivation में नहीं" ], "correct": 0, "explanation": "Leftmost Derivation में व्याकरणिक नियमों को बाएं से लागू किया जाता है, जबकि Rightmost Derivation में दाएं से लागू किया जाता है। ये दोनों अलग-अलग पार्सिंग रणनीतियाँ हैं।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Finite Automaton' की सीमाएँ क्या हैं?", "options": [ "यह केवल रेगुलर भाषाओं को पहचान सकता है", "यह कंटेक्स्ट-फ्री भाषाओं को पहचान सकता है", "यह कंटेक्स्ट-सेंसिटिव भाषाओं को पहचान सकता है", "यह सभी प्रकार की भाषाओं को पहचान सकता है" ], "correct": 0, "explanation": "Finite Automaton केवल रेगुलर भाषाओं को पहचान सकता है। यह एक सीमित मेमोरी वाला ऑटोमेटा होता है, जिससे यह जटिल भाषाओं को पहचानने में सक्षम नहीं होता।" }, { "question": "ट्यूरिंग मशीन में, 'Multi-tape Turing Machine' के फायदे क्या हैं?", "options": [ "यह सरल होता है", "यह अधिक जटिल समस्याओं को अधिक कुशलतापूर्वक हल कर सकता है", "यह केवल रेगुलर भाषाओं को पहचान सकता है", "इसमें स्टैक का उपयोग होता है" ], "correct": 1, "explanation": "Multi-tape Turing Machine में एक से अधिक टेप होते हैं, जिससे यह अधिक जटिल समस्याओं को अधिक कुशलतापूर्वक हल कर सकता है।" }, { "question": "कंप्यूटेबिलिटी में, 'Rice's Theorem' क्या कहता है?", "options": [ "किसी भी गैर-ट्रिवियल प्रॉपर्टी का स्वचालित परीक्षण संभव है", "किसी भी गैर-ट्रिवियल प्रॉपर्टी का स्वचालित परीक्षण असंभव है", "सभी भाषाएँ कंप्यूटेबल हैं", "किसी भी प्रॉपर्टी का परीक्षण करने के लिए केवल मानवों की आवश्यकता होती है" ], "correct": 1, "explanation": "Rice's Theorem कहता है कि किसी भी गैर-ट्रिवियल प्रॉपर्टी का स्वचालित परीक्षण ट्यूरिंग मशीन पर असंभव है। यह कंप्यूटेबिलिटी के सिद्धांत में एक महत्वपूर्ण परिणाम है।" }, { "question": "जटिलता सिद्धांत में, 'P vs NP' समस्या क्या है?", "options": [ "क्या P क्लास में सभी NP समस्याएँ भी शामिल हैं?", "क्या P क्लास और NP क्लास पूरी तरह से अलग हैं?", "क्या कोई एल्गोरिदम NP समस्याओं को पॉलीनॉमियल समय में हल कर सकता है?", "सभी विकल्प सही हैं" ], "correct": 3, "explanation": "'P vs NP' समस्या यह है कि क्या P क्लास में सभी NP समस्याएँ भी शामिल हैं या नहीं। यह एक खुली समस्या है और अभी तक इसका समाधान नहीं मिला है।" }, { "question": "एल्गोरिदमिक समस्याओं में, 'Dynamic Programming' का मुख्य सिद्धांत क्या है?", "options": [ "समस्या को दोहराकर हल करना", "समस्या को छोटे, ओवरलैपिंग सबप्रॉब्लम्स में विभाजित करना और उनके समाधान को स्टोर करना", "समस्या को ग्रीडी तरीके से हल करना", "समस्या को विभाजित करना और फिर दोनों हिस्सों को स्वतंत्र रूप से हल करना" ], "correct": 1, "explanation": "Dynamic Programming का मुख्य सिद्धांत समस्या को छोटे, ओवरलैपिंग सबप्रॉब्लम्स में विभाजित करना और उनके समाधान को स्टोर करना है, जिससे पुनः गणना से बचा जा सके और एल्गोरिदम की दक्षता बढ़ाई जा सके।" }, { "question": "भाषा और व्याकरण में, 'Start Symbol' का क्या महत्व है?", "options": [ "यह व्याकरण का अंतिम उत्पादन होता है", "यह व्याकरण का प्रारंभिक प्रतीक होता है जिससे वाक्य का निर्माण शुरू होता है", "यह व्याकरण के नियमों को नियंत्रित करता है", "यह व्याकरण में सभी टर्मिनल्स को परिभाषित करता है" ], "correct": 1, "explanation": "Start Symbol व्याकरण का प्रारंभिक प्रतीक होता है, जिससे वाक्य का निर्माण शुरू होता है। यह व्याकरण की सबसे महत्वपूर्ण पहचान होती है।" }, { "question": "फॉर्मल ऑटोमाटा में, 'Accepting State' क्या है?", "options": [ "मशीन की एक सामान्य स्थिति", "मशीन की वह स्थिति जिसमें वह इनपुट को स्वीकार करती है", "मशीन की वह स्थिति जिसमें वह इनपुट को अस्वीकार करती है", "मशीन की प्रारंभिक स्थिति" ], "correct": 1, "explanation": "Accepting State वह स्थिति होती है जिसमें मशीन इनपुट को स्वीकार करती है। यदि मशीन अंत में इस स्थिति में पहुँचती है, तो इनपुट भाषा का हिस्सा माना जाता है।" }, { "question": "ट्यूरिंग मशीन में, 'Transition Function' क्या है?", "options": [ "मशीन की स्टेट्स का सेट", "मशीन की इनपुट्स का सेट", "एक फंक्शन जो वर्तमान स्टेट और इनपुट के आधार पर अगली स्टेट निर्धारित करता है", "मशीन का आउटपुट फंक्शन" ], "correct": 2, "explanation": "Transition Function एक फंक्शन होता है जो वर्तमान स्टेट और इनपुट के आधार पर मशीन की अगली स्टेट निर्धारित करता है। यह ट्यूरिंग मशीन के संचालन में केंद्रीय भूमिका निभाता है।" }, { "question": "कंप्यूटेबिलिटी में, 'Church-Turing Thesis' का क्या महत्व है?", "options": [ "यह बताता है कि ट्यूरिंग मशीन सभी कंप्यूटेबल समस्याओं को हल कर सकती है", "यह बताता है कि कोई भी समस्या कंप्यूटेबल नहीं है", "यह एल्गोरिदमिक समस्याओं को वर्गीकृत करता है", "यह कंप्यूटर हार्डवेयर की क्षमताओं को बढ़ाता है" ], "correct": 0, "explanation": "Church-Turing Thesis यह बताता है कि ट्यूरिंग मशीन सभी कंप्यूटेबल समस्याओं को हल कर सकती है। यह कंप्यूटेबिलिटी का मूल सिद्धांत है।" } // More questions as needed... ]; let currentQuestionIndex = 0; // Track current question let userAnswers = Array(quizData.length).fill(null); // Track user's answers // Timer variables let totalQuizTime = quizData.length * 30; // total seconds = 30 seconds * no. of questions let timeLeft = totalQuizTime; let timerInterval; // On page load, initialize quiz window.onload = function() { generateQuestionNav(); // Generate the question navigation circles loadQuestion(); startTimer(); // Start the countdown }; // Start the countdown timer function startTimer() { updateTimerDisplay(timeLeft); timerInterval = setInterval(() => { timeLeft--; updateTimerDisplay(timeLeft); if (timeLeft <= 0) { clearInterval(timerInterval); showResults(); // Force show results if time is up } }, 1000); } // Update timer on the screen in mm:ss format function updateTimerDisplay(seconds) { const timerEl = document.getElementById("timer"); const mins = Math.floor(seconds / 60).toString().padStart(2, '0'); const secs = (seconds % 60).toString().padStart(2, '0'); timerEl.innerText = `Time: ${mins}:${secs}`; } // Toggle the question nav when hamburger is pressed const hamburgerBtn = document.getElementById('hamburgerBtn'); hamburgerBtn.addEventListener('click', () => { document.getElementById('questionNavOverlay').classList.toggle('show'); }); // Close hamburger menu if user clicks outside the nav and menu document.addEventListener('click', (e) => { const navOverlay = document.getElementById('questionNavOverlay'); const hamburger = document.getElementById('hamburgerBtn'); // If the menu is open, and the click is outside both the overlay and the hamburger, close it if ( navOverlay.classList.contains('show') && !navOverlay.contains(e.target) && !hamburger.contains(e.target) ) { navOverlay.classList.remove('show'); } }); // Create small clickable circles for each question function generateQuestionNav() { const navContainer = document.getElementById("questionNav"); navContainer.innerHTML = ""; // clear old items if any quizData.forEach((_, index) => { const circle = document.createElement("div"); circle.classList.add("circle-number"); circle.innerText = index + 1; // Show question number (1-based) circle.onclick = () => jumpToQuestion(index); navContainer.appendChild(circle); }); } // Jump to a specific question function jumpToQuestion(qIndex) { currentQuestionIndex = qIndex; // Hide the nav on mobile after selection document.getElementById('questionNavOverlay').classList.remove('show'); // Reset submission/next button state document.getElementById("submitAnswerButton").classList.remove("hidden"); document.getElementById("nextButton").classList.add("hidden"); loadQuestion(); } // Load current question function loadQuestion() { highlightCurrentCircle(); // Hide explanation area and Next button initially document.getElementById("explanation").classList.add("hidden"); document.getElementById("nextButton").classList.add("hidden"); const questionData = quizData[currentQuestionIndex]; document.getElementById("question").innerText = questionData.question; document.getElementById("questionCounter").innerText = `${currentQuestionIndex + 1}/${quizData.length}`; // Clear old choices const choicesContainer = document.getElementById("choices"); choicesContainer.innerHTML = ""; // Populate choices questionData.options.forEach((option, index) => { const choiceElement = document.createElement("div"); choiceElement.className = "choice"; choiceElement.innerText = option; // If previously selected, mark it if (userAnswers[currentQuestionIndex] === index) { choiceElement.classList.add("selected"); } // On clicking a choice choiceElement.onclick = () => { // Clear all selections first document.querySelectorAll(".choice").forEach(c => c.classList.remove("selected")); // Mark this one as selected choiceElement.classList.add("selected"); userAnswers[currentQuestionIndex] = index; }; choicesContainer.appendChild(choiceElement); }); // Handle Previous button visibility document.getElementById("prevButton").style.display = currentQuestionIndex === 0 ? "none" : "inline-block"; } // Highlight the current question circle function highlightCurrentCircle() { const circles = document.querySelectorAll(".circle-number"); circles.forEach((circle, idx) => { circle.classList.remove("active"); if (idx === currentQuestionIndex) { circle.classList.add("active"); } }); } // Submit the current question's answer function submitAnswer() { const questionData = quizData[currentQuestionIndex]; const userAnswer = userAnswers[currentQuestionIndex]; // Show the explanation div const explanationDiv = document.getElementById("explanation"); explanationDiv.classList.remove("hidden"); // Clear previous correctness classes and disable further selection document.querySelectorAll(".choice").forEach((c) => { c.classList.add("disabled"); c.onclick = null; }); // Determine correctness or skipping if (userAnswer === null) { explanationDiv.innerHTML = "You Skipped the question.<br/><br/>व्याख्या: " + questionData.explanation; showPopupMessage("You Skipped the question", false); } else if (userAnswer === questionData.correct) { explanationDiv.innerHTML = "You got it right!<br/><br/>व्याख्या: " + questionData.explanation; showPopupMessage("You got it right", true); // Highlight correct choice document.querySelectorAll(".choice")[userAnswer].classList.add("correct"); } else { explanationDiv.innerHTML = "You got it wrong.<br/><br/>व्याख्या: " + questionData.explanation; showPopupMessage("You got it wrong", false); // Highlight correct choice document.querySelectorAll(".choice")[questionData.correct].classList.add("correct"); // Mark the chosen one as incorrect document.querySelectorAll(".choice")[userAnswer].classList.add("incorrect"); } // Hide the submit button, show the next button document.getElementById("submitAnswerButton").classList.add("hidden"); document.getElementById("nextButton").classList.remove("hidden"); } // Go to the next question or show final results function nextQuestion() { currentQuestionIndex++; if (currentQuestionIndex >= quizData.length) { // Show results if no more questions showResults(); } else { // Reset buttons document.getElementById("submitAnswerButton").classList.remove("hidden"); document.getElementById("nextButton").classList.add("hidden"); loadQuestion(); } } // Go to the previous question function previousQuestion() { if (currentQuestionIndex > 0) { currentQuestionIndex--; document.getElementById("submitAnswerButton").classList.remove("hidden"); document.getElementById("nextButton").classList.add("hidden"); loadQuestion(); } } // Show final quiz results function showResults() { // Stop the timer if it's still running clearInterval(timerInterval); // Calculate correct answers const correctAnswersCount = userAnswers.filter( (ans, i) => ans === quizData[i].correct ).length; // Hide quiz content document.getElementById("quizContent").classList.add("hidden"); // Show results document.getElementById("resultContent").classList.remove("hidden"); const percentage = (correctAnswersCount / quizData.length) * 100; let resultHTML = ""; if (percentage >= 60) { resultHTML = `<div class="congrats">🎉 बधाई हो! आपने ${percentage.toFixed( 2 )}% स्कोर किया है!</div>`; } else { resultHTML = `<div class="sad">😢 आपने ${percentage.toFixed( 2 )}% स्कोर किया है। अगली बार के लिए शुभकामनाएं!</div>`; } document.getElementById("resultMessage").innerHTML = resultHTML; document.getElementById("scoreMessage").innerText = `आपने कुल ${quizData.length} में से ${correctAnswersCount} प्रश्न सही उत्तर दिए हैं।`; } // Optional popup message function showPopupMessage(message, isCorrect) { const popup = document.getElementById('popupMessage'); popup.innerText = message; popup.className = ''; popup.classList.add('show'); popup.classList.add(isCorrect ? 'correct' : 'incorrect'); setTimeout(() => { popup.classList.remove('show'); popup.classList.add('hidden'); }, 2000); } // Button event listeners document.getElementById('prevButton').addEventListener('click', previousQuestion); document.getElementById('submitAnswerButton').addEventListener('click', submitAnswer); document.getElementById('nextButton').addEventListener('click', nextQuestion); // Predefined Darker Color Themes const themes = [ { header: '#a31645', headerText: '#ffffff', container: '#e8c4d6', containerText: '#6e0c36', headings: '#6e0c36' }, // Berry Delight { header: '#00574b', headerText: '#ffffff', container: '#b3dfd7', containerText: '#00382e', headings: '#00382e' }, // Ocean Breeze { header: '#c95a00', headerText: '#ffffff', container: '#dca865', containerText: '#7a3400', headings: '#7a3400' }, // Sunset Glow { header: '#4a0f6f', headerText: '#ffffff', container: '#cdb5e3', containerText: '#320b4a', headings: '#320b4a' }, // Calming Lavender { header: '#1e4d2b', headerText: '#ffffff', container: '#98c1a3', containerText: '#122417', headings: '#122417' }, // Forest Retreat { header: '#c99800', headerText: '#ffffff', container: '#e8d18a', containerText: '#6c4f00', headings: '#6c4f00' }, // Golden Elegance { header: '#01477e', headerText: '#ffffff', container: '#86b9e4', containerText: '#00223d', headings: '#00223d' }, // Sky Calm { header: '#5a3b2e', headerText: '#ffffff', container: '#b8a89c', containerText: '#32211a', headings: '#32211a' }, // Retro Rust { header: '#b34727', headerText: '#ffffff', container: '#f2c29d', containerText: '#6a2915', headings: '#6a2915' }, // Warm Peach { header: '#0f4c43', headerText: '#ffffff', container: '#92c3b8', containerText: '#072822', headings: '#072822' }, // Cool Mint ]; // Apply Random Darker Theme function applyRandomTheme() { const header = document.querySelector('.header'); const container = document.querySelector('.content-container'); const headings = document.querySelectorAll('.content-container h2'); // Select a random theme const randomTheme = themes[Math.floor(Math.random() * themes.length)]; // Apply Header Colors header.style.backgroundColor = randomTheme.header; header.style.color = randomTheme.headerText; // Apply Container Colors container.style.backgroundColor = randomTheme.container; container.style.color = randomTheme.containerText; // Apply Heading Colors headings.forEach((heading) => { heading.style.color = randomTheme.headings; heading.style.borderBottom = `2px solid ${randomTheme.headings}`; }); } // Apply the theme on page load window.onload = function () { applyRandomTheme(); // Set random theme generateQuestionNav(); // Generate question navigation loadQuestion(); // Load the first question startTimer(); // Start the countdown timer }; </script> </body> </html> <!-- /wp:html -->