त्वरित संगीत रिफ्रेशर:
पियानो कीबोर्ड में 88 नोट होते हैं। प्रत्येक सप्तक पर, 12 नोट हैं, C, C♯/D♭, D, D♯/E♭, E, F, F♯/G♭, G, G♯/A♭, A, A♯/B♭
और B
। हर बार जब आप 'सी' मारते हैं, तो पैटर्न एक सप्तक को दोहराता है।
एक नोट को विशिष्ट रूप से 1) अक्षर से पहचाना जाता है, जिसमें कोई शार्प या फ़्लैट शामिल है, और 2) ऑक्टेव, जो 0 से 8 तक की संख्या है। कीबोर्ड के पहले तीन नोट हैं, A0, A♯/B♭
और B0
। इसके बाद ऑक्टेव 1 C1, C♯1/D♭1, D1, D♯1/E♭1, E1, F1, F♯1/G♭1, G1, G♯1/A♭1, A1, A♯1/B♭1
और पूर्ण क्रोमैटिक स्केल आता है B1
। इसके बाद ऑक्टेवस 2, 3, 4, 5, 6, और 7. पर एक पूर्ण क्रोमैटिक स्केल आता है, अंतिम नोट एक है C8
।
प्रत्येक नोट 20-4100 हर्ट्ज रेंज में एक आवृत्ति से मेल खाती है। A0
लगभग 27.500 हर्ट्ज पर शुरू करने के साथ , प्रत्येक संबंधित नोट दो, या मोटे तौर पर 1.059% 3 की बारहवीं जड़ पिछले नोट है। एक अधिक सामान्य सूत्र है:
जहाँ n नोट की संख्या है, A0 के साथ 1. (अधिक जानकारी यहाँ )
चुनौती
एक प्रोग्राम या फ़ंक्शन लिखें जो एक नोट का प्रतिनिधित्व करने वाले स्ट्रिंग में लेता है, और उस नोट की आवृत्ति को प्रिंट या वापस करता है। हम #
तीखे चिन्ह के लिए एक पाउंड चिन्ह (या युवा के लिए हैशटैग) और b
सपाट प्रतीक के लिए एक लोअरकेस का उपयोग करेंगे। सभी इनपुट्स (uppercase letter) + (optional sharp or flat) + (number)
बिना व्हाट्सएप के दिखेंगे । यदि इनपुट कीबोर्ड की सीमा के बाहर है (A0 से कम, या C8 से अधिक), या अमान्य, अनुपलब्ध या अतिरिक्त वर्ण हैं, तो यह एक अमान्य इनपुट है, और आपको इसे हैंडल करने की आवश्यकता नहीं है। आप यह भी सुरक्षित रूप से मान सकते हैं कि आपको ई #, या सीबी जैसे कोई भी अजीब इनपुट नहीं मिलेगा।
शुद्धता
चूंकि अनंत परिशुद्धता वास्तव में संभव नहीं है, हम कहेंगे कि सच्चे मूल्य के एक प्रतिशत के भीतर कुछ भी स्वीकार्य है। अधिक विस्तार में जाने के बिना, एक प्रतिशत दो के 1200 मूल, या 1.0005777895 है। आइए इसे और अधिक स्पष्ट करने के लिए एक ठोस उदाहरण का उपयोग करें। मान लीजिए कि आपका इनपुट A4 था। सटीक इस नोट के मूल्य 440 हर्ट्ज है। एक बार जब प्रतिशत फ्लैट है 440 / 1.0005777895 = 439.7459
। एक बार तेज होने के कारण 440 * 1.0005777895 = 440.2542
, 439.7459 से अधिक लेकिन 440.2542 से छोटा कोई भी संख्या गिनती के लिए सटीक है।
परीक्षण के मामलों
A0 --> 27.500
C4 --> 261.626
F#3 --> 184.997
Bb6 --> 1864.66
A#6 --> 1864.66
A4 --> 440
D9 --> Too high, invalid input.
G0 --> Too low, invalid input.
Fb5 --> Invalid input.
E --> Missing octave, invalid input
b2 --> Lowercase, invalid input
H#4 --> H is not a real note, invalid input.
ध्यान रखें कि आपको अमान्य इनपुट को संभालना नहीं है। यदि आपका कार्यक्रम दिखावा करता है कि वे वास्तविक इनपुट हैं और एक मूल्य को प्रिंट करता है, तो यह स्वीकार्य है। यदि आपका प्रोग्राम क्रैश हो जाता है, तो यह भी स्वीकार्य है। एक के मिलने पर कुछ भी हो सकता है। इनपुट और आउटपुट की पूरी सूची के लिए, इस पृष्ठ को देखें
हमेशा की तरह, यह कोड-गोल्फ है, इसलिए मानक कमियां लागू होती हैं, और बाइट्स जीत में सबसे छोटा जवाब होता है।
H
? H
अर्थ बी केवल AFAIK है जो जर्मन भाषी देशों में उपयोग किया जाता है (जहां B
बी बी का मतलब है।) क्या ब्रिटिश और आयरिश कॉल बी को स्पेन और इटली में सी या तिवारी कहा जाता है, जैसा कि दो रे मि सोल सोल सी में है।
H
जर्मनी, चेक गणराज्य, स्लोवाकिया, पोलैंड, हंगरी, सर्बिया, डेनमार्क, नॉर्वे, फिनलैंड, एस्टोनिया और ऑस्ट्रिया में विकिपीडिया के अनुसार उपयोग किया जाता है । (मैं स्वयं फिनलैंड के लिए भी इसकी पुष्टि कर सकता हूं।)