टीएल;डीआर

  • समस्या: डेटा संरचनाओं और एल्गोरिदम के लिए समय और स्थान जटिलता (टाइम एंड स्पेस कॉम्प्लेक्सिटी) का अनुकूलन।
  • दृष्टिकोण: सीटीसीआई शैली समस्या ६.६: गुरु कहता है मैं किसी को नीली आँखों वाला देखता हूँ, उसके बाद n नीली आँख वाले nवीं रात को चले जाते हैं। आधार मामला, आगम कदम और साझा ज्ञान, बिना घने शब्दजाल के।
  • जटिलता: सीमांत मामलों (एज केसेस) के प्रबंधन के साथ इष्टतम समय और मेमोरी संतुलन।

हर रात आधी रात को एक नाव जाती है। जिसने अपनी आँखों का रंग समझ लिया हो, उसे चढ़कर हमेशा के लिए जाना होता है। द्वीपवासी पूर्ण तर्कशास्त्री हैं। वे दूसरों की आँखें देख सकते हैं। कोई आईना नहीं, कोई तस्वीर नहीं, कोई "तुम्हारी आँखें नीली हैं" वाली बातचीत नहीं। सालों तक सब शांत। फिर एक अतिथि सबके सामने कहता है: "मैं किसी को नीली आँखों वाला देख रहा हूँ।"

पहली रात कुछ अलग नहीं लगता। दूसरी भी नहीं। फिर, अगर n नीली आँख वाले थे, तो सभी n मिलकर nवीं रात को चले जाते हैं

यह पोस्ट शुरुआती लोगों के लिए मूल शिक्षण है। क्लासिक नीली आँख / कीचड़ भरे बच्चे जैसी पहेली परिवार, किसी किताब की नकल नहीं। सीटीसीआई जावा श्रृंखला का हिस्सा। अध्याय ६, गणित और तर्क, समस्या ६.६। मुख्य चीज़ तर्क है। वैकल्पिक छोटा जावा सिर्फ छोटे n के लिए रात का गिनती-मॉडल दिखाता है।


१. रोज़मर्रा की उपमा

एक कक्षा सोचो जहाँ हर छात्र के माथे पर नीला या भूरा स्टिकर है। अपना स्टिकर कोई नहीं देख सकता। दूसरों के सब देख सकते हैं। नियम: अगर तुम समझ जाओ कि तुम्हारा नीला है, दिन के अंत में खड़े होकर चले जाओ।

बहुत समय तक अध्यापक स्टिकर की बात नहीं करता। नीले वाले (अगर हों) दूसरे नीले देख ही रहे हैं। भूरे वाले नीले देख रहे हैं। किसी पर जाने का दबाव नहीं।

फिर अध्यापक ऊँची आवाज़ में कहता है, ताकि सब सुनें और सब देखें कि सबने सुना:

"मुझे कम से कम एक नीला स्टिकर दिख रहा है।"

अगर तुमने पहले ही नीला देखा था तो वाक्य खोखला लगता है। ताकत कमरे के नए पिक्सेल-डेटा में नहीं है। ताकत साझा निश्चितता में है: अब हर छात्र जानता है कि हर छात्र जानता है कि कम से कम एक नीला स्टिकर है, और यह श्रृंखला ऊपर चढ़ती जाती है। इसे साझा ज्ञान कहते हैं। सिर्फ निजी अवलोकन से "मैं जानता हूँ कि तुम जानते हो कि मैं जानता हूँ..." की वह अनंत ढेर अधूरी रहती है जिन लोगों को उसकी ज़रूरत थी।

पहेली का बाकी हिस्सा आगम है: १ नीले स्टिकर के लिए दावा साबित करो, फिर दिखाओ कि अगर k नीलों पर सही है तो k + 1 पर भी सही है।


२. सादे शब्दों में समस्या

सेटअप (मानक रूप):

  • द्वीपवासियों की आँखें नीली या भूरी हैं (कहानी में सिर्फ ये दो)।
  • n नीली आँख वाले हैं और कुछ धनात्मक संख्या में भूरे (भूरे "दूसरे" हैं; क्लासिक हल में वे नहीं जाते)।
  • हर कोई बाकी सबकी आँखें देख सकता है। अपनी नहीं।
  • आँखों के रंग पर कोई बातचीत नहीं। याददाश्त पूरी। तर्क पूरा। सब मानते हैं कि बाकी भी पूर्ण तर्कशास्त्री हैं।
  • हर रात आधी रात को नाव जाती है। अगर तुम समझ जाओ कि तुम्हारी आँखें नीली हैं, उसी रात चले जाओ।
  • अतिथि से पहले ये नियम सालों से चल रहे हैं और कोई नहीं गया

सार्वजनिक घोषणा (दिन ०, दिन में):

एक गुरु / अतिथि पूरे समूह से कहता है:

"मैं किसी को नीली आँखों वाला देख सकता हूँ।"

सवाल: क्या होता है, और कब?

जिस उत्तर की ओर जाना है:

  • अगर n = 1, वह अकेला नीली आँख वाला रात १ को जाता है।
  • अगर n = 2, दोनों रात २ को जाते हैं।
  • सामान्यतः, सभी n नीली आँख वाले रात n को जाते हैं।
  • भूरे वाले रहते हैं।

हल से पहले पूछो:

  • क्या घोषणा सार्वजनिक है और सब जानते हैं कि सबने सुनी? (हाँ। यही भार उठाती है।)
  • क्या तभी जाते हो जब यकीन हो कि आँखें नीली हैं, या कोई भी रंग जानने पर? (क्लासिक सीटीसीआई: जब जानो कि नीली हैं तब जाओ। भूरे इस घोषणा मात्र से वह निष्कर्ष नहीं निकालते।)
  • गुरु से पहले मानसिक मॉडल में शून्य नीली आँखें संभव? (हाँ। गुरु सार्वजनिक दृष्टि में "शायद शून्य" शाखा काट देता है।)
  • एक साथ नाव: हाँ। जो जानता है वह उसी रात जाता है।

३. पहले सोचो: बिना धुंध के आगम

यहाँ आगम का मतलब (शुरुआती संस्करण)

तुम्हें दावा P(n) चाहिए:

अगर ठीक n नीली आँख वाले हैं, और गुरु बोल चुका है, तो सभी n रात n को जाते हैं।

आधार मामला: P(1) साबित करो।

आगम कदम: मान लो किसी निश्चित k >= 1 के लिए P(k) सत्य है। P(k + 1) साबित करो।

फिर हर धनात्मक पूर्णांक n के लिए P(n) सही है।

तुम सिर्फ "आशा" नहीं कर रहे कि पैटर्न चले। तुम गारंटी जोड़ रहे हो: १ चलता है, और हर आकार अपने से एक छोटे आकार से विरासत लेता है।

हर नीली आँख वाला क्या देखता है

व्यक्ति B जिसकी आँखें नीली हैं (अभी पता नहीं) चारों ओर देखता है:

  • उसे n - 1 अन्य नीली आँख वाले दिखते हैं।
  • कुछ भूरे भी दिखते हैं।

तो B की निजी दृष्टि में संसार में n - 1 नीले हो सकते हैं (अगर B भूरा है) या n नीले (अगर B नीला है)। आगम यही बताता है कि गुरु के बाद रात-दर-रात ये दो संसार कैसे अलग होते हैं।

गुरु का वाक्य क्यों मायने रखता है (साझा ज्ञान)

गुरु से पहले:

  • अगर n >= 1, हर भूरा पहले से कम से कम एक नीला देखता है।
  • अगर n >= 2, हर नीला पहले से कम से कम एक नीला देखता है।

इसलिए ज्यादातर के लिए "कोई नीली आँख वाला मौजूद है" कच्चे तथ्य के रूप में पुरानी खबर है। कमी थी एक सार्वजनिक, एक साथ शुरू होने वाली घंटी की जो उस तथ्य को साझा ज्ञान बना दे:

१. सब जानते हैं कि कम से कम एक नीला है। २. सब जानते हैं कि सब जानते हैं कि कम से कम एक नीला है। ३. सब जानते हैं कि सब जानते हैं कि सब जानते हैं... और आगे।

बिना इस ढेर के आगम की घड़ी नहीं चलती। इसके साथ लोग नेस्टेड अपेक्षाएँ चला सकते हैं: "अगर मैं नीला नहीं हूँ, तो जिन्हें मैं देखता हूँ वे साझा-ज्ञान घोषणा के बाद आकार-(n-1) द्वीप जैसे व्यवहार करेंगे।"


४. हल: आधार मामला, फिर ऊपर चढ़ो

आधार मामला: n = 1

अकेले नीली आँख वाले को कहो।

  • अ चारों ओर देखता है और शून्य नीली आँखें देखता है।
  • गुरु से पहले अ सोच सकता था: "शायद कोई नीली आँख नहीं; शायद मैं भूरा हूँ।"
  • गुरु कहता है: "मैं किसी को नीली आँखों वाला देख रहा हूँ।"
  • अ ही अकेला है जो शून्य नीले देखता है। वह कोई अ ही होना चाहिए।
  • अ दिन ० पर भाषण के बाद समझ जाता है "मेरी आँखें नीली हैं," और रात १ को चला जाता है।

बाकी पहले से अ की नीली आँखें देख रहे थे। अगर अ अकेला नीला है तो अ जा सकता है, यह वे मान चुके। जब अ रात १ को जाता है, संसार उस कहानी से मेल खाता है। भूरे अब भी ऐसा नहीं सीखते कि वे भूरे हैं जो उन्हें नीला-निकास पर मजबूर करे; वे नीले नहीं हैं।

P(1) सही है।

दो लोग: n = 2 (वह कदम जो महसूस होता है)

उन्हें और कहो, दोनों नीले। गुरु दिन ० पर बोलता है।

अ क्या देखता है: ठीक एक नीला (ब)। तो अ सोचता है:

या तो मैं भूरा हूँ और १ नीला है (ब), या मैं नीला हूँ और २ नीले हैं।

अगर अ भूरा है, तो ब की दृष्टि में द्वीप आकार-१ नीली-आँख संसार है। आधार मामले से ब को रात १ को जाना चाहिए।

रात १ आती है। ब अभी भी वहाँ है। (ब अ के बारे में सममित तर्क चला रहा है।)

अ अब जानता है कि "मैं भूरा हूँ, सिर्फ ब नीला है" वाला संसार मर चुका। तो अ की आँखें नीली हैं। ब के लिए भी वैसा ही।

दोनों रात २ को जाते हैं।

मुख्य चाल टेलीपैथी नहीं है। टूटी हुई अपेक्षा है:

अगर मैं नीला नहीं होता तो जिस व्यक्ति को मैं देखता हूँ वह रात १ को चला जाता। वह नहीं गया। इसलिए मैं नीला हूँ।

तीन लोग: n = 3

अ, ब, स तीनों नीले। हर एक दो नीले देखता है।

अ का निजी मॉडल:

  • अगर मैं भूरा हूँ, तो ब और स गुरु के साझा ज्ञान वाले आकार-२ संसार में हैं।
  • n = 2 मामले से ब और स दोनों को रात २ को जाना चाहिए।

रात १: कोई नहीं जाता (आकार-२ उप-संसार में भी यही उम्मीद है, क्योंकि आकार २ रात २ को जाता है)। रात २: फिर भी कोई नहीं जाता।

अ की "मैं भूरा हूँ" परिकल्पना मर जाती है। अ नीला समझता है। ब और स भी। तीनों रात ३ को जाते हैं।

आगम कदम: P(k) मानो, P(k + 1) साबित करो

मानो: जब ठीक k नीले हों और गुरु बोल चुका हो, वे सब रात k को जाते हैं।

अब असली संसार में k + 1 नीले हैं। कोई भी नीली आँख वाला X लो।

  • X ठीक k नीले देखता है।
  • X सोचता है: "अगर मैं भूरा हूँ, तो वे k लोग साझा ज्ञान वाली आकार-k स्थिति हैं। आगम परिकल्पना से वे रात k को जाते हैं।"
  • रातें से k बीतती हैं। जिन्हें X देखता है वे k लोग अभी भी द्वीप पर हैं (हर एक वही टूटी-अपेक्षा घड़ी चला रहा है)।
  • तो X की "मैं भूरा हूँ" शाखा झूठी है। X की आँखें नीली हैं।
  • हर नीली आँख वाला वही तर्क चलाता है। सभी k + 1 रात k + 1 को जाते हैं।

यही P(k + 1) है। आगम बंद। किसी भी n पर सभी n नीले रात n को जाते हैं।

भूरे आँख वाले?

भूरी आँख वाला Y सभी n नीले देखता है। गुरु के बाद Y अपेक्षा करता है कि वे n रात n को जाएँगे (प्रमेय से)। जब जाते हैं, संसार मुलायम अर्थ में "यहाँ n नीले हैं और मैं उनमें नहीं" से मेल खाता है, पर इस पहेली में नाव का नियम है यह जानना कि तुम्हारी आँखें नीली हैं। भूरों के पास कभी ऐसी रात नहीं आती जहाँ किसी गायब निकास की एकमात्र व्याख्या हो "मुझे नीला होना चाहिए।" उनका रंग जो कुछ वे देखते हैं उससे मेल खाता है। वे रहते हैं।

सालों इंतज़ार क्यों बेकार, फिर गुरु ने सब बदल दिया

गुरु से पहले कोई सार्वजनिक दिन-० लंगर नहीं था, न "कम से कम एक नीला" की साझा-ज्ञान श्रृंखला। हर व्यक्ति मन में छोटा द्वीप गढ़ सकता था बिना साझा घड़ी के। अतिथि आईना नहीं थमाता। अतिथि वह आगम घड़ी शुरू करता है जिसे सब देख सकते हैं कि सब चला रहे हैं।


५. रात-दर-रात तालिका और वैकल्पिक छोटी सिमुलेशन

रात-दर-रात तालिका

असली नीले n हर नीला क्या देखता है अगर "मैं भूरा हूँ" तो दूसरों के जाने की पहली अपेक्षित रात असली जाने की रात
(कोई और नीला नहीं; गुरु खुद को मजबूर करता है) रात १
रात १ रात २
रात २ रात ३
n n - 1 रात n - 1 रात n

जोर से कह सको वाला पैटर्न:

हर नीली आँख वाला उस समूह का इंतज़ार करता है जिसे वह देखता है, कि वे उतनी रात पर जाएँ जितनी गिनती वह देखता है। जब वह रात फेल होती है, अगली नाव पर चढ़ते हैं।

वैकल्पिक जावा: छोटे n के लिए रात गिनती

बीस पंक्तियों में पूरी "ज्ञान-तर्क" सिमुलेशन नहीं चलेगी। फिर भी आगम से सिद्ध बंद रूप कोड कर सकते हो, और n = 1..5 की कहानी छापने वाला छोटा लूप।

/** Night when all n blue-eyed people leave after a day-0 common-knowledge announcement. */
static int departureNight(int n) {
    if (n < 1) {
        throw new IllegalArgumentException("n must be at least 1");
    }
    return n; // P(n): leave on night n
}

static void narrate(int n) {
    System.out.println("True blue count n = " + n);
    System.out.println("  Each blue sees " + (n - 1) + " blue(s).");
    if (n == 1) {
        System.out.println("  Sees zero blues; guru implies self. Leaves night 1.");
        return;
    }
    System.out.println("  If I were brown, the " + (n - 1)
            + " I see would leave on night " + (n - 1) + ".");
    System.out.println("  They stay. I deduce blue. All " + n
            + " leave on night " + departureNight(n) + ".");
}

public static void main(String[] args) {
    for (int n = 1; n <= 5; n++) {
        narrate(n);
    }
}

मानसिक नमूना आउटपुट:

True blue count n = 1
  Each blue sees 0 blue(s).
  Sees zero blues; guru implies self. Leaves night 1.
True blue count n = 2
  Each blue sees 1 blue(s).
  If I were brown, the 1 I see would leave on night 1.
  They stay. I deduce blue. All 2 leave on night 2.
...

अगर इंटरव्यूअर कोड चाहे, इतना काफी है कि उत्तर आगम वाला n है, द्वीप ग्राफ पर खोज नहीं। अगर प्रमाण चाहे, n = 1, n = 2, फिर सामान्य कदम चलाओ। वही असली इंटरव्यू है।

आम गलतियाँ

१. "सब पहले से नीली आँखें देख रहे थे, तो गुरु ने कुछ नया नहीं कहा।" निजी ज्ञान साझा ज्ञान नहीं है। नेस्टेड "वे जानते हैं कि मैं जानता हूँ" श्रृंखला ही गायब टुकड़ा है। २. "घोषणा की सुबह ही चले जाते हैं।" सिर्फ n = 1 वाला रात १ पर काम कर सकता है। बड़े n को पिछली रातों की टूटी अपेक्षाएँ चाहिए। ३. "भूरे भी चले जाते हैं।" क्लासिक कथन में नहीं। वे कभी "मेरी आँखें नीली हैं" नहीं समझते। ४. "आगम चक्रीय है क्योंकि उन्हें प्रमेय चाहिए।" द्वीपवासियों को "आगम" शब्द नहीं चाहिए। उन्हें १ पर खत्म होने वाला नेस्टेड केस-तर्क चाहिए। गणितज्ञ उस नेस्टिंग को आगम कहते हैं। ५. "कोई भी सार्वजनिक वाक्य चल जाता।" आधार तथ्य को साझा ज्ञान में बैठाना ज़रूरी है। "मैं नीली आँखें देखता हूँ" वही आधार परमाणु है जिसकी आकार-१ वाले को ज़रूरत है, और सब जानते हैं कि वह व्यक्ति उसी का उपयोग करेगा।


६. जटिलता, किनारे, इंटरव्यू टिप्स

विषय उत्तर
मुख्य तकनीक गणितीय आगम + साझा ज्ञान
बंद रूप n नीले रात n को जाते हैं
सामाजिक प्रक्रिया का "समय" घोषणा के बाद n रातें
कोड वैकल्पिक स्थिर समय return n; कथा प्रति n स्थिर
संबंधित पहेलियाँ कीचड़ भरे बच्चे, योग-और-गुणनफल, नीली आँख द्वीप के रूपांतर

किनारे और आगे के सवाल:

  • n = 0: सत्यवादी गुरु नहीं कहेगा कि नीली आँख वाला दिख रहा है। अगर गुरु हमेशा सच बोले तो पहेली से बाहर।
  • गुरु गलत / झूठ: मॉडल टूटता है; पूर्ण तर्कशास्त्रियों को भरोसेमंद सार्वजनिक तथ्य चाहिए।
  • कोई गलती से जल्दी जाए: टूटी-अपेक्षा संकेत नष्ट। पहेली शोर रहित मानती है।
  • दो से ज़्यादा आँख रंग: गुरु ने जिस रंग का ज़िक्र किया उस पर वही आगम, अगर नियम हो "जब जानो वह रंग है तब जाओ।"
  • कोई भी रंग जानने पर जा सकते हैं: कुछ रूपांतरों में भूरे भी निष्कर्ष निकाल सकते हैं। जब तक इंटरव्यूअर न बदले, सिर्फ-नीला नाव नियम रखो।
  • सतत समय बनाम विविक्त रातें: नाव अवलोकन खिड़कियाँ काटती है ताकि "वे रात k पर नहीं गए" साफ सार्वजनिक घटना हो।

कैसे बोलो (४५ सेकंड संस्करण):

१. गुरु "कम से कम एक नीला है" को साझा ज्ञान बनाता है। २. अगर ० नीले दिखें, रात १ को जाता हूँ। ३. अगर १ नीला दिखे, रात १ पर उसके जाने की उम्मीद; नहीं जाए तो रात २ को जाता हूँ। ४. आगम से, अगर k नीले दिखें, रात k पर उनके जाने की उम्मीद; नहीं तो रात k + 1 को जाता हूँ। ५. असली गिनती n हो तो सभी नीले रात n को जाते हैं।

पहेली के बाहर कहाँ दिखता है:

  • वितरित तंत्र: साझा ज्ञान बनाम "सबको संदेश मिला।"
  • प्रोटोकॉल डिज़ाइन: सार्वजनिक प्रसारण जो अवस्था मशीनें सिंक करें।
  • इंटरव्यू संकेत: दबाव में साफ आधार मामला और आगम कदम चला सकते हो, बिना हाथ हिलाए।

७. दोस्त को समझाने वाला सार

नीली आँखों वाला द्वीप एक आगम की कहानी है, नाव के साथ।

१. पूर्ण तर्कशास्त्री। दूसरों की आँखें देखो, अपनी नहीं। आधी रात तभी जाओ जब यकीन हो कि आँखें नीली हैं। २. गुरु सार्वजनिक रूप से कहता है: मैं किसी को नीली आँखों वाला देखता हूँ। यही साझा-ज्ञान घड़ी शुरू करता है। ३. एक नीला: शून्य नीले देखता है, समझता है कि वही है, रात १ को जाता है। ४. दो नीले: हर एक दूसरे के रात १ जाने की उम्मीद करता है; कोई नहीं जाता; दोनों रात २ को जाते हैं। ५. सामान्यतः: हर नीला n - 1 और देखता है, अगर "मैं भूरा हूँ" तो रात n - 1 पर उनके जाने की उम्मीद; जब रहते हैं, सभी n रात n को जाते हैं।

अगर P(1) साबित कर सको, एक पैराग्राफ में आगम कदम बोल सको, और समझा सको कि गुरु "बेकार जानकारी" क्यों नहीं है, तो समस्या ६.६ तुम्हारी है। भारी जावा ज़रूरी नहीं। सावधानी भरा तर्क ही पूरा बिंदु है।


श्रृंखला