इलेक्ट्रॉनिक्स से इस सवाल से प्रेरित होकर , यहाँ, आपके लिए एक चुनौती है:
एक प्रोग्राम या सबरूटीन लिखें जो दशमलव अंकों (0 से 9) के अनुक्रम में लेता है और उन्हें मौजूदा भाषण संश्लेषण उपकरण का उपयोग किए बिना , जोर से बोलता है ।
इनपुट:
आप किसी भी उचित प्रारूप में प्रदान किए जाने वाले इनपुट अंकों के लिए पूछ सकते हैं, जैसे कि ASCII अंकों की एक स्ट्रिंग के रूप में, पूर्णांक का एक सरणी, एक बीसीडी-एन्कोडेड नंबर, आदि। यदि आपका समाधान एक निष्पादन योग्य कार्यक्रम है, तो आप इनपुट के रूप में ले सकते हैं। एक कमांड लाइन पैरामीटर, इसे मानक इनपुट से पढ़ें, या किसी अन्य उचित तरीके से प्राप्त करें।
आपका कार्यक्रम प्रति आह्वान में कम से कम आठ अंक बोलने में सक्षम होना चाहिए । आप मान सकते हैं कि पहला अंक शून्य नहीं है, जब तक कि यह एकमात्र अंक न हो।
आउटपुट:
आपका प्रोग्राम या तो सीधे ऑडियो डिवाइस का उपयोग करके नंबर बोल सकता है, या यह एक बजने योग्य ध्वनि फ़ाइल का उत्पादन कर सकता है। आउटपुट फ़ाइल, यदि कोई हो, किसी भी मानक ऑडियो प्रारूप में हो सकती है, या इसमें कच्चे नमूना डेटा शामिल हो सकते हैं। यदि आप कच्चे नमूना डेटा का उत्पादन करते हैं, तो कृपया प्लेबैक (नमूना दर, बिट्स प्रति नमूना, समाप्ति, हस्ताक्षरित / अहस्ताक्षरित, # चैनलों के) के लिए उपयुक्त मापदंडों पर ध्यान दें। Aplay द्वारा समर्थित प्रारूप पसंद किए जाते हैं।
आप इस बात का विवरण तय करने के लिए स्वतंत्र हैं कि संख्याएँ कैसे बोली जाएंगी, लेकिन आपके आउटपुट में अंग्रेजी भाषा के अंकों का समावेश होना चाहिए , जो सामान्य अंग्रेजी बोलने वाले के लिए समझ में आता है , और यह स्पष्ट होना चाहिए कि श्रोता के लिए सटीक रूप से अनुवाद करने में सक्षम होना चाहिए एक बोले गए आठ-अंकीय यादृच्छिक संख्या। नहीं, बस beeping n बार में नहीं गिना जाता। अंकों के बीच ठहराव को शामिल करना न भूलें।
स्कोरिंग:
मानक कोड-गोल्फ स्कोरिंग नियम लागू होते हैं: आपका स्कोर बाइट्स में आपके कोड की लंबाई है या, यदि आपका कोड यूनिकोड पाठ में, यूनिकोड वर्णों में लिखा गया है। सबसे कम स्कोर जीतता है। कोई भी भाषा जाती है।
जैसा कि इलेक्ट्रॉनिक्स पर मूल प्रश्न है। मैं एम्बेडेड प्रोग्रामिंग के बारे में था, मुझे लगा कि निम्न-स्तरीय भाषाओं का उपयोग करके लेखकों को एक हड्डी टॉस करना उचित होगा: यदि आपका समाधान संकलित भाषा में लिखा गया है, तो आप लंबाई की गणना करना चुन सकते हैं अपने स्कोर के रूप में बाइट्स में संकलित निष्पादन योग्य फ़ाइल । (हाँ, precompiled बाइटकोड, जैसे कि जावा .class
फ़ाइल, भी ठीक है।) यदि आप इस विकल्प का उपयोग करना चुनते हैं, तो कृपया अपने उत्तर में संकलित निष्पादन योग्य की एक प्रति (जैसे एक हेक्स डंप के रूप में) को अपने स्रोत कोड के साथ शामिल करें। और संकलक संस्करण और विकल्प जो आप इसे उत्पन्न करने के लिए उपयोग करते हैं।
एक माननीय उल्लेख , एक +50 प्रतिनिधि इनाम के साथ, पहले उत्तर के लिए दिया जाएगा जो मूल प्रश्न के मानदंडों को भी पूरा करता है , अर्थात 4 के फ्लैश और SRAM के 1 kb के साथ एम्बेडेड MCU पर चलने में सक्षम है।
प्रतिबंध:
आप किसी भी फाइल या नेटवर्क संसाधनों का उपयोग नहीं कर सकते हैं जो आपकी चुनी हुई भाषा के मानक रनटाइम वातावरण का हिस्सा नहीं हैं, जब तक कि आप उक्त फाइलों या संसाधनों की लंबाई को अपने स्कोर के हिस्से के रूप में नहीं गिनते। (यह वेब से लोडिंग ऑडियो नमूनों को हटाने के लिए है।)
आप किसी भी पहले से मौजूद स्पीच सिंथेसिस टूल या लाइब्रेरी या ऑडियो डेटा के संकलन का उपयोग नहीं कर सकते हैं (जब तक कि आप उनके स्कोर के हिस्से के रूप में उनके आकार की गणना नहीं करते हैं), भले ही वे आपके चुने हुए भाषा के मानक रनटाइम वातावरण में शामिल हों।