Yup, bạn đọc tiêu đề đúng. chơi âm thanh của pi.
Cụ thể hơn, với mỗi chữ số pi trong 1000 đầu tiên, ánh xạ nó đến một nốt nhạc và xuất giai điệu kết quả thành một tệp.
Về cơ bản, mỗi chữ số chuyển sang một ghi chú trên thang đo C Major (về cơ bản là thang đo bình thường). vì vậy 1 chuyển sang Trung C, 2 chuyển sang D4, 3 chuyển sang E4, 9 chuyển sang D5 và cứ thế.
Quy tắc
- Mỗi ghi chú nên dài chính xác 0,5 giây.
- Giai điệu nên chứa 1000 chữ số đầu tiên của pi, bao gồm cả 3 bắt đầu.
- 1 đến 7 đại diện cho Trung C đến B4, 8 là C5, 9 là D5 và 0 là E5
- Tất cả các định dạng tệp được hỗ trợ tốt đều được cho phép, miễn là chúng được tạo trước thử thách này.
- Có thể không có tạm dừng bất cứ nơi nào trong tệp, bao gồm cả bắt đầu và kết thúc.
- Các nhạc cụ chơi không quan trọng. Nó có thể là một cây đàn piano, sóng hình sin, bất cứ thứ gì thực sự, miễn là âm thanh chính xác có thể dễ dàng phát ra.
- Nó phải không có đầu vào và không tạo ra đầu ra ngoại trừ tệp. Đọc từ các tập tin khác là không được phép.
- Sơ hở tiêu chuẩn bị cấm.
Ví dụ mã toán học:
(*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];
Ví dụ giai điệu hiển thị 100 chữ số đầu tiên: http://vocaroo.com/i/s0cfEILwYb8M
Đối với sự tỉnh táo của bạn, Một bảng các nốt cho mỗi ghi chú và mỗi chữ số thể hiện ghi chú nào:
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
quãng tám thứ tám. Ngoài ra, trong bảng của bạn, chữ số0
có đứng cuối (E5
) không?