शोधकर्ताओं ने हाल ही में एक दिलचस्प मधुमक्खी कॉलोनी की खोज की है जो मधुकोश के अनंत क्षेत्र में रहती है:
प्रत्येक कोशिका में मधुमक्खी हो सकती है या नहीं। वास्तव में, उन प्राणियों का जीवन एक सा प्रतीत होता है ... अराजक। यह गणना की जा सकती है कि एक कॉलोनी हमेशा निम्नलिखित पैटर्न से शुरू होती है:
(बी द्वारा तैयार एम्मानुएल Boutet पर विकिमीडिया कॉमन्स । यह मधुकोश और मधुमक्खियों छवि इस प्रकार के तहत जारी की है CC-BY-SA । शिकायत )
उसके बाद मधुमक्खी के जीवन चक्र को तथाकथित पीढ़ियों में विभाजित किया जाता है। प्रत्येक पीढ़ी की पुरानी मधुमक्खियां मर जाती हैं और नए बच्चे पैदा होते हैं और यह मुख्य रूप से उनके सेल के पड़ोसियों पर निर्भर करता है:
- यदि एक मधुमक्खी के दो पड़ोसी से कम होते हैं तो वह अकेलेपन के कारण मर जाती है।
- यदि मधुमक्खी के तीन से अधिक पड़ोसी हैं तो यह अधिक भीड़ के कारण मर जाता है।
- यदि एक कोशिका में पड़ोसी कोशिकाओं में दो, तीन या चार जीवित मधुमक्खियाँ होती हैं, तो अगली पीढ़ी में वहाँ एक नई मधुमक्खी होती है।
मरने वाली मधुमक्खियां एक पीढ़ी के अंत तक नहीं मरती हैं, इसलिए वे अभी भी आसपास की कोशिकाओं को प्रभावित करती हैं जो अगली पीढ़ी में मधुमक्खियों का शिकार हो सकती हैं।
अब जब हम जानते हैं कि इस तरह की कॉलोनी कैसे काम करती है, तो हम इसे किसी भी पीढ़ी के माध्यम से अनुकरण कर सकते हैं।
इनपुट
इनपुट एक एकल नंबर एन है , जो मानक इनपुट पर दिया जाता है, जिसे लाइन ब्रेक द्वारा समाप्त किया जाता है। 0 of N ≤ 150। यह अनुकरण करने वाली कई पीढ़ियों की संख्या है।
उत्पादन
आउटपुट एक एकल संख्या है, मानक आउटपुट पर और वैकल्पिक रूप से एकल पंक्ति विराम के बाद, जो एन पीढ़ियों के बाद जीवित मधुमक्खियों की संख्या का प्रतिनिधित्व करता है ।
मानक त्रुटि पर अतिरिक्त आउटपुट को अनदेखा किया जाता है।
नमूना इनपुट
0
5
42
100
नमूना आउटपुट
6
44
1029
5296
जीतने की स्थिति
सबसे कम कोड जीतता है, जैसा कि गोल्फ में प्रथागत है। एक टाई के मामले में, पहले वाला समाधान जीत जाता है।
परीक्षण के मामलों
समान परीक्षण मामलों वाले दो परीक्षण स्क्रिप्ट हैं:
मंगलाचरण दोनों मामलों में है: <test script> <my program> [arguments]
जैसे ./test ruby beehive.rb
या ./test.ps1 ./beehive.exe
।
मुझे पता है कि 151 के बजाय केवल 22 परीक्षण हैं (मुख्यतः क्योंकि समाधान अक्सर काफी धीमी गति से होते हैं)। कृपया कार्य को हल करने के बजाय सटीक परीक्षण मामलों को एम्बेड करने से बचें। ये स्क्रिप्ट आपके लिए यह परीक्षण करने की सुविधा है कि क्या परिवर्तन अभी भी प्रोग्राम को सही ढंग से व्यवहार करने का कारण बनता है; ऐसा नहीं है कि आप अपने कोड को विशिष्ट परीक्षण मामलों में अनुकूलित कर सकते हैं।
एक और नोट
यह कार्य 2011-डब्ल्यू 24 के दौरान मेरे विश्वविद्यालय में आयोजित एक गोल्फ प्रतियोगिता का हिस्सा था। हमारे प्रतियोगियों के स्कोर और भाषाएँ इस प्रकार थीं:
- 336 - सी
- 363 - सी
- 387 - सी
- 389 - हास्केल
- 455 - सी
हमारा अपना समाधान था
- 230 - रूबी