Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी/सी++ में एक नंबर लिंक गेम?

खेल - मान लीजिए कि वर्गों का एक n × n सरणी है। इनमें से, कुछ वर्ग खाली हैं, कुछ ठोस हैं, और कुछ गैर-ठोस वर्ग पूर्णांक 1, 2, 3, ... द्वारा निर्धारित किए गए हैं। प्रत्येक पूर्णांक बोर्ड पर ठीक दो अलग-अलग वर्गों को बनाए रखता है या रखता है। खिलाड़ी का कार्य बोर्ड पर प्रत्येक पूर्णांक की दो घटनाओं को केवल क्षैतिज और ऊर्ध्वाधर आंदोलनों को लागू करने वाले सरल पथ की सहायता से जोड़ना है। किसी भी दो अलग-अलग रास्तों को एक दूसरे को काटने की अनुमति नहीं है। किसी भी पथ में कोई ठोस वर्ग शामिल नहीं हो सकता (ठोस वर्गों को किसी भी पथ पर प्रकट होने की अनुमति नहीं है)। अंत में, सभी गैर-ठोस वर्ग पथों से भरे जाने चाहिए।

एल्गोरिथम - किसी दिए गए बोर्ड आकार n × n के साथ एक वैध यादृच्छिक पहेली बनाने के लिए, हम पहले बोर्ड पर यादृच्छिक सरल पारस्परिक रूप से गैर-प्रतिच्छेदन पथ तैयार करते हैं। यदि कुछ पृथक वर्ग सभी उत्पन्न पथों के बाहर रहते हैं, तो इन पृथक वर्गों को ठोस (निषिद्ध) के रूप में चिह्नित करें। आगे हम पथों के अंतिम बिंदु और पहेली के रूप में ठोस वर्गों की सूची प्रदान करते हैं।

इस प्रकार हम पहले एक हल निकालते हैं, और फिर हल से पहेली निकालते हैं। पथ और ठोस वर्ग n × n बोर्ड को विभाजित या विभाजित करते हैं। हम इस विभाजन को उत्पन्न करने के लिए एक संघ-खोज डेटा संरचना लागू करते हैं। डेटा संरचना को बोर्ड पर n^2 वर्गों के सेट के सबसेट के साथ निपटाया जाता है।

छद्म कोड

  • बोर्ड पर बेतरतीब ढंग से वर्ग (ए, बी) और (सी, डी) का पता लगाएँ जैसे -

    • (ए, बी) और (सी, डी) एक दूसरे के पड़ोसी हैं, और

    • न तो (ए, बी) और न ही (सी, डी) अब तक निर्मित किसी भी पथ से संबंधित है। यदि पूरे बोर्ड पर वर्गों का ऐसा कोई जोड़ा नहीं मिलता है, तो वापसी / * यहाँ, (ए, बी) और (सी, डी) बनने वाले नए पथ पर पहले दो वर्ग हैं। */

  • (ए, बी) और (सी, डी) युक्त दो संघ-ढूंढें पेड़ों का एक संघ बनाएं।

  • तब तक दोहराएं जब तक वर्तमान पथ को बढ़ाया जा सके -

    • नाम बदलें (ए, बी) =(सी, डी)।

  • (ए, बी) के एक यादृच्छिक पड़ोसी वर्ग (सी, डी) का पता लगाएं, जैसे कि -

    • (सी, डी) अब तक उत्पादित किसी भी पथ से संबंधित नहीं है (वर्तमान एक सहित)

    • आंशिक रूप से निर्मित वर्तमान पथ पर एकमात्र पड़ोसी (सी, डी) है (ए, बी)।

  • यदि ऐसा कोई पड़ोसी (c, d) नहीं मिलता है, तो पथ को आगे नहीं बढ़ाया जा सकता है, इसलिए लूप को तोड़ दें

  • अन्यथा, दो संघ-ढूंढें वृक्षों का मिलन करें जिनसे (a, b) और (c, d) संबंधित हैं।

  • दो वर्गों के समापन बिंदु फ़्लैग सेट करें जो नए पथ की शुरुआत और समाप्ति पर हैं।

  • वापसी सफलता


  1. त्रिकोणीय माचिस की तीली संख्या के लिए C/C++ प्रोग्राम?

    एक त्रिभुज जो माचिस की तीलियों का उपयोग करके बनाया जाता है, एक समबाहु त्रिभुज बनाने की व्यवस्था करता है, इसे त्रिभुजाकार माचिस की संख्या कहा जाता है। त्रिकोणीय माचिस की तीलियों की संख्या माचिस की तीलियों को त्रिभुज बनाने के लिए आवश्यक है। इस समस्या में, हमारे पास संख्या एक माचिस की तीली का तल है, X

  1. सी/सी++ एनएच कैटलन नंबर के लिए प्रोग्राम?

    कैटलन संख्याएं संख्याओं का एक क्रम है। कैटलन संख्याएं प्राकृतिक संख्याओं का एक क्रम बनाती हैं जो गिनती की विभिन्न समस्याओं में होती हैं, जिनमें अक्सर पुनरावर्ती-परिभाषित वस्तुएं शामिल होती हैं। सीएन लंबाई 2n के डाइक शब्दों की संख्या है। एक डाइक शब्द एक स्ट्रिंग है जिसमें एन एक्स और एन वाई शामि

  1. C++ में एक आयत में वर्गों की संख्या गिनें

    =B. लक्ष्य उन वर्गों की संख्या का पता लगाना है जिन्हें LXB आकार का एक आयत समायोजित कर सकता है। ऊपर दिया गया चित्र 3 X 2 आकार का एक आयत दिखाता है। इसमें 2, 2X2 वर्ग और 6,1X1 वर्ग हैं। कुल वर्ग=6+2=8. LXB आकार के प्रत्येक आयत में L*B संख्या 1X1 वर्ग होती है। सबसे बड़े वर्ग BXB आकार के होते ह