クイックミュージックリフレッシャー:
ピアノの鍵盤は88音で構成されています。各オクターブには、12の音符がC, C♯/D♭, D, D♯/E♭, E, F, F♯/G♭, G, G♯/A♭, A, A♯/B♭
ありB
ます。「C」を押すたびに、パターンは1オクターブ高くなります。
メモ一意キーボードの0〜8〜第3音の数は1)任意のシャープまたはフラットを含む文字、および2)オクターブによって識別されている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 Hzの範囲の周波数に対応しています。A0
正確27.500ヘルツから始まる、それぞれ対応するノートは、二つの、又は略1.059463の第十二回ルート前のノートです。より一般的な式は次のとおりです。
ここで、nはノートの番号で、A0は1です(詳細はこちら)。
チャレンジ
メモを表す文字列を取り込み、そのメモの頻度を出力または返すプログラムまたは関数を作成します。#
シャープ記号(または、Younginsのハッシュタグ)にはポンド記号を使用b
し、フラット記号には小文字を使用します。すべての入力は(uppercase letter) + (optional sharp or flat) + (number)
空白なしで表示されます。入力がキーボードの範囲外(A0未満またはC8を超える)であるか、無効な文字、欠落文字、または余分な文字がある場合、これは無効な入力であり、処理する必要はありません。また、E#やCbなどの奇妙な入力を取得しないと安全に想定できます。
精度
無限の精度は実際には不可能なので、真の値の1セント以内であれば何でもかまいません。余分な詳細に進むことなく、セントは2の1200のルート、つまり1.0005777895です。具体例を使用して、より明確にします。入力がA4だったとします。この音の正確な値は440 Hzです。一度セントフラットです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
Bはドイツ語圏でのみ使用されるAFAIKを意味します。(ここB
でBbを意味します。)イギリス人とアイルランド人がBを呼ぶものは、スペインとイタリアでSiまたはTiと呼ばれます。DoRe Mi Fa Sol La Siのように。
H
によると、ドイツ、チェコ、スロバキア、ポーランド、ハンガリー、セルビア、デンマーク、ノルウェー、フィンランド、エストニア、オーストリアで使用されているウィキペディア。(フィンランドでも確認できます。)