एक टीम ने फैसला किया है कि हर सुबह किसी को सभी के लिए क्रोइसैन लाना चाहिए। यह हर बार एक ही व्यक्ति नहीं होना चाहिए, इसलिए यह निर्धारित करने के लिए एक प्रणाली होनी चाहिए कि यह किसकी बारी है। इस सवाल का उद्देश्य यह तय करने के लिए एक एल्गोरिथ्म निर्धारित करना है कि किसकी बारी है कि कल क्रोइसैन को लाना होगा।
बाधाओं, मान्यताओं और उद्देश्यों:
- क्रॉइसिएंट्स लाने के लिए किसकी बारी है, यह पिछली दोपहर को निर्धारित किया जाएगा।
- किसी भी दिन, कुछ लोग अनुपस्थित हैं। एल्गोरिथ्म को उस दिन मौजूद किसी व्यक्ति को चुनना होगा। मान लें कि सभी अनुपस्थिति को एक दिन पहले जाना जाता है, इसलिए क्रोइसैन खरीदार को पिछली दोपहर को निर्धारित किया जा सकता है।
- कुल मिलाकर, ज्यादातर लोग ज्यादातर दिनों में मौजूद होते हैं।
- निष्पक्षता के हित में, सभी को अन्य के रूप में कई बार क्रोइसैन खरीदना चाहिए। (मूल रूप से, मान लें कि टीम के प्रत्येक सदस्य के पास क्रोइसैंट्स पर खर्च करने के लिए समान राशि है।)
- एक रोस्टर की ऊब को कम करने के लिए यादृच्छिकता के कुछ तत्व, या कम से कम कथित यादृच्छिकता होना अच्छा होगा। यह एक कठिन बाधा नहीं है: यह एक सौंदर्य निर्णय का अधिक है। हालांकि, एक ही व्यक्ति को लगातार दो बार नहीं चुना जाना चाहिए।
- क्रोइसैन लाने वाले व्यक्ति को पहले से पता होना चाहिए। इसलिए यदि व्यक्ति P को दिन D पर क्रोइसैन्ट्स लाना है, तो यह तथ्य कुछ पिछले दिन निर्धारित किया जाना चाहिए जहां व्यक्ति P मौजूद है। उदाहरण के लिए, यदि क्रोइसैन लाने वाला हमेशा एक दिन पहले निर्धारित किया जाता है, तो यह उन व्यक्तियों में से एक होना चाहिए जो एक दिन पहले उपस्थित हों।
- टीम के सदस्यों की संख्या काफी कम है कि भंडारण और कंप्यूटिंग संसाधन प्रभावी रूप से असीमित हैं। उदाहरण के लिए एल्गोरिथ्म एक संपूर्ण इतिहास पर भरोसा कर सकता है कि अतीत में कौन क्रूसियन लाया था। हर दिन एक तेज पीसी पर कुछ मिनट तक गणना करना ठीक होगा।
यह एक वास्तविक विश्व समस्या का एक मॉडल है, इसलिए यदि आप सोचते हैं कि वे परिदृश्य को बेहतर तरीके से देखते हैं, तो आप मान्यताओं को चुनौती देने या उन्हें परिष्कृत करने के लिए स्वतंत्र हैं।
उत्पत्ति 1: पता करें कि फ्लोरियन मार्गाइन द्वारा क्रोइसैन खरीदने के लिए कौन जा रहा है ।
उत्पत्ति 2: पता करें कि गिल्स द्वारा क्रोइसैन खरीदने के लिए कौन जा रहा है ।
यह सवाल गाइल्स के रूप में एक ही संस्करण है, और प्रोग्रामर पर एक प्रयोग के रूप में फिर से पोस्ट किया गया है, यह देखने के लिए कि विभिन्न समुदाय एक प्रोग्रामिंग चुनौती को कैसे संबोधित करते हैं।