Tak, dobrze przeczytałeś tytuł. odtwarzać dźwięk pi.
Mówiąc dokładniej, dla każdej cyfry pi w pierwszym 1000 zamapuj ją na nutę i wyślij uzyskaną melodię do pliku.
Zasadniczo każda cyfra zmienia się w nutę w skali C-dur (w zasadzie skala normalna). więc 1 zamienia się w środkowe C, 2 zamienia się w D4, 3 zamienia się w E4, 9 zamienia się w D5 i tak dalej.
Zasady
- Każda nuta powinna mieć dokładnie 0,5 sekundy.
- Melodia powinna zawierać pierwsze 1000 cyfr pi, w tym początkową 3.
- Od 1 do 7 oznaczają środek C do B4, 8 to C5, 9 to D5, a 0 to E5
- Wszystkie dobrze obsługiwane formaty plików są dozwolone, o ile zostały utworzone przed tym wyzwaniem.
- Nigdzie w pliku mogą nie być przerw, w tym na początku i na końcu.
- Gra na instrumencie nie ma znaczenia. Może to być fortepian, fala sinusoidalna, cokolwiek naprawdę, o ile właściwy dźwięk jest dobrze słyszalny.
- Nie może pobierać danych wejściowych ani generować danych wyjściowych oprócz pliku. Odczytywanie z innych plików jest zabronione.
- Standardowe luki są zabronione.
Przykładowy kod matematyczny:
(*please forgive me for this horrible, horrible mess of code*)
digits = RealDigits[Pi, 10, 1000][[1]] /. {0 -> 10};
weights = {0, 2, 4, 5, 7, 9, 11, 12, 14, 16};
melody = {};
For[i = 1, i < 1001, i++, melody = {melody , Sound[SoundNote[weights[[digits[[i]]]], 0.5]]}]
final = Sound[Flatten[melody]];
Export["C:\\Mathematica Shenanigans\\pi.wav", final];
Przykładowa melodia pokazująca pierwsze 100 cyfr: http://vocaroo.com/i/s0cfEILwYb8M
Dla twojego zdrowia psychicznego: Tabela wysokości dla każdej nuty i jaką nutę reprezentuje każda cyfra:
Digit 1: C: 261.63 Hz
Digit 2: D: 293.66 Hz
Digit 3: E: 329.63 Hz
Digit 4: F: 349.23 Hz
Digit 5: G: 392.00 Hz
Digit 6: A: 440.00 Hz
Digit 7: B: 493.88 Hz
Digit 8: C5: 523.25 Hz
Digit 9: D5: 587.33 Hz
Digit 0: E5: 659.25 Hz
4
-tej oktawie. Czy w twojej tabeli cyfra0
jest ostatnia (E5
)?