किसी ने फाइबोनैचि संख्याओं का उपयोग करके वास्तव में फैंसी घड़ी का निर्माण किया , जो वास्तव में अच्छा दिखता है लेकिन काफी अनुपयोगी है। ठीक वैसा, जैसा हम चाहते हैं! चलिए इसे फिर से बनाते हैं।
घड़ी पहले पांच फाइबोनैचि संख्याओं के अनुरूप 5 खंडों से बनी है, 1 से शुरू होती है (यानी 1, 1, 2, 3, 5):
ccbeeeee
ccaeeeee
dddeeeee
dddeeeee
dddeeeee
घड़ी 5 मिनट की वेतन वृद्धि में 12 घंटे का समय प्रदर्शित करने में सक्षम है। यहाँ है कि कैसे काम करता है। समय 7:20 पर विचार करें। घंटे 7 को दिए गए फाइबोनैचि संख्या के रूप में विघटित किया जा सकता है
7 = 2 + 5
पाँच मिनट की 4 इकाइयाँ भी हैं। 4 के रूप में विघटित किया जा सकता है
4 = 2 + 1 + 1
अब घंटों को लाल रंग में दिखाया गया है, मिनट को हरे रंग में दिखाया गया है, और यदि कोई संख्या दोनों घंटों और मिनटों के लिए उपयोग की जाती है, तो इसे नीले रंग में दिखाया गया है। यदि किसी नंबर का उपयोग नहीं किया जाता है, तो वह सफेद रहता है। तो ऊपर दिखाया जाएगा:
BBGRRRRR
BBGRRRRR
WWWRRRRR
WWWRRRRR
WWWRRRRR
लेकिन रुकिए, और भी है। उपरोक्त डिकम्पोज़िशन केवल संभावनाएँ नहीं हैं। एक भी लिख सकता है 7 = 3 + 2 + 1 + 1
और 4 = 3 + 1
, जो एक देगा
GGRWWWWW GGBWWWWW
GGBWWWWW GGRWWWWW
BBBWWWWW or BBBWWWWW
BBBWWWWW BBBWWWWW
BBBWWWWW BBBWWWWW
जिसके आधार पर 1
चुना जाता है। बेशक अन्य संयोजन भी हैं। घड़ी यादृच्छिक पर सभी मान्य डिकम्पोजिशन से चुनती है।
जैसा कि मैंने कहा ... यह एक प्रयोज्य पुरस्कार नहीं जीत सकता है, लेकिन यह देखने में अच्छा है।
चुनौती
आपका काम ऐसी घड़ी को लागू करना है। आपके कार्यक्रम (या फ़ंक्शन) को STDOUT या निकटतम विकल्प के रूप में वर्णित वर्तमान समय के ASCII प्रतिनिधित्व (पिछले 5 मिनट के अंतिम दौर तक) प्रिंट करना चाहिए। आप इनपुट के रूप में किसी भी सामान्य प्रारूप में समय पढ़ने के लिए चुन सकते हैं या इसे मानक पुस्तकालय कार्यों के साथ प्राप्त कर सकते हैं। आपको यह नहीं समझना चाहिए कि वर्तमान / दिया गया समय 5 मिनट से विभाज्य है।
आपका समाधान को वर्तमान समय के सभी संभावित अभ्यावेदन से यादृच्छिक रूप से चुनना होगा । यह प्रत्येक प्रतिनिधित्व गैर-शून्य संभावना के साथ मुद्रित किया जाना चाहिए।
आधी रात और दोपहर को 0:00
(जैसा विरोध किया गया 12:00
) माना जाना चाहिए ।
आप वैकल्पिक रूप से एकल अनुगामी न्यूलाइन वर्ण प्रिंट कर सकते हैं।
आप के स्थान पर कोई भी चार अलग-अलग मुद्रण योग्य ASCII वर्ण (वर्ण कोड 0x20 से 0xFE) का उपयोग कर सकते हैं RGBW
। कृपया अपने जवाब में अपनी पसंद बताएं और इसका लगातार उपयोग करें।
यह कोड गोल्फ है, इसलिए सबसे छोटा उत्तर (बाइट्स में) जीतता है।