डब्बों में सिद्धांत कहा गया है कि
यदि N आइटम को N > M के साथ M बॉक्स में रखा जाता है , तो कम से कम एक बॉक्स में एक से अधिक आइटम होने चाहिए।
कई लोगों के लिए, इस सिद्धांत की अन्य गणितीय गणनाओं की तुलना में एक विशेष स्थिति है। जैसा कि EW Dijkstra ने लिखा है ,
यह किसी रहस्य से घिरा हुआ है। इसका उपयोग करने वाले सबूतों को अक्सर कुछ विशेष, कुछ विशेष रूप से सरल के रूप में माना जाता है।
चुनौती
इस चुनौती का उद्देश्य ASCII कला अभ्यावेदन का उपयोग करके कबूतर सिद्धांत को स्पष्ट करना है। विशेष रूप से:
- गैर-नकारात्मक और सकारात्मक के साथ इनपुट
N
(आइटमों की संख्या) औरM
(बक्से की संख्या ) के रूप में लें । से छोटा हो सकता है (भले ही उस मामले में सिद्धांत लागू नहीं होता है)।N
M
N
M
- बक्से के लिए आइटम के संभावित असाइनमेंट में से एक को बेतरतीब ढंग से चुनें। प्रत्येक असाइनमेंट में उठाया जाने वाला गैर-शून्य संभावना होना चाहिए।
निम्नानुसार असाइनमेंट का ASCII कला प्रतिनिधित्व प्रस्तुत करें:
- वहाँ
M
एक बॉक्स के लिए प्रत्येक लाइनों, कर रहे हैं । - प्रत्येक पंक्ति एक गैर-व्हाट्सएप चरित्र से शुरू होती है, जैसे कि
|
। - उस चरित्र का अनुसरण करना एक अन्य गैर-व्हाट्सएप चरित्र है, जैसे कि
#
, उस बॉक्स में जितनी बार आइटम हैं, उतने बार-बार दोहराया जाना।
- वहाँ
उदाहरण के लिए विचार करें N = 8
, M = 5
। बक्से के लिए आइटम के चयनित असाइनमेंट है, तो 4
, 1
, 0
, 3
, 0
, प्रतिनिधित्व है
|####
|#
|
|###
|
एक ही कार्यक्रम का एक अलग रन (एक अलग असाइनमेंट के परिणामस्वरूप) दे सकता है
|#
|##
|#
|#
|###
प्रतिनिधित्व के संबंध में कुछ लचीलापन है; निचे देखो।
विशिष्ट नियम
कोड को सैद्धांतिक रूप से N
और के किसी भी मूल्य के लिए चलना चाहिए M
। व्यवहार में इसे मेमोरी साइज़ या डेटा टाइप सीमाओं द्वारा प्रतिबंधित किया जा सकता है।
चूंकि आउटपुट का अवलोकन यह निर्धारित करने के लिए पर्याप्त नहीं है कि सभी असाइनमेंट में गैर-शून्य संभावना है , प्रत्येक सबमिशन को यह स्पष्ट करना चाहिए कि कोड कैसे प्राप्त करता है, यदि स्पष्ट नहीं है।
निम्नलिखित प्रतिनिधित्व विविधताओं की अनुमति है:
- विभिन्न, गैर-व्हाट्सएप पात्रों की किसी भी जोड़ी को चुना जा सकता है। वे पूरे कार्यक्रम के अनुरूप होना चाहिए।
- प्रतिनिधित्व के 90-डिग्री घुमाव स्वीकार्य हैं। फिर से, चुनाव सुसंगत होना चाहिए।
- अनुगामी या अग्रणी व्हाट्सएप की अनुमति है।
एक अलग प्रतिनिधित्व प्रारूप के साथ, के लिए एक उदाहरण के रूप N = 15
, M = 6
कार्यक्रम के दो फांसी के परिणाम हो सकता है
VVVVVV
@@@@@@
@@ @@@
@ @@
@
या
VVVVV
@@@ @
@@@ @
@ @ @
@ @ @
@
इसी तरह, N = 5
, M = 7
, देना प्रतिनिधित्व की एक और भिन्नता का उपयोग कर सकता है,
*
* * * *
UUUUUUU
या
*** **
UUUUUUU
या
*
* *
* *
UUUUUUU
ध्यान दें कि इस मामले में सिद्धांत कैसे लागू नहीं होता है, क्योंकि N
< M
।
सामान्य नियम
प्रोग्राम या फ़ंक्शंस की अनुमति है, किसी भी प्रोग्रामिंग भाषा में । मानक खामियों को मना किया जाता है।
इनपुट किसी भी उचित माध्यम से लिया जा सकता है ; और किसी भी प्रारूप के साथ, जैसे कि दो संख्याओं की एक सरणी या दो अलग तार।
आउटपुट के साधन और प्रारूप भी लचीले हैं। उदाहरण के लिए, आउटपुट स्ट्रिंग्स की एक सूची या न्यूलाइन के साथ एक स्ट्रिंग हो सकता है; फ़ंक्शन आउटपुट तर्क के रूप में लौटाया गया या STDOUT में प्रदर्शित किया गया। बाद के मामले में सीमित प्रदर्शन चौड़ाई के कारण लाइन रैपिंग के बारे में चिंता करना आवश्यक नहीं है।
बाइट्स में सबसे छोटा कोड जीतता है।