是的,您没看错标题。播放pi的声音。
更具体地说,对于前1000个pi中的每个数字,将其映射到音符,然后将产生的旋律输出到文件中。
基本上,每个数字都变成C大调音阶(基本上是正常音阶)上的音符。所以1圈到中间C,2圈到D4,3圈到E4,9圈到D5,依此类推。
规则
- 每个音符的长度应恰好为0.5秒。
- 旋律应包含pi的前1000位,包括开头的3。
- 1到7代表中间C到B4,8是C5,9是D5,0是E5
- 允许所有受良好支持的文件格式,只要它们是在此挑战之前创建的即可。
- 文件中的任何位置(包括开始和结束)都可能没有暂停。
- 乐器演奏没关系。只要可以轻易听到正确的声音,它就可以是钢琴,正弦波,或者其他任何东西。
- 除文件外,它不接受任何输入,不产生任何输出。禁止从其他文件读取。
- 禁止出现标准漏洞。
示例数学代码:
(*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];
显示前100位数字的示例旋律:http : //vocaroo.com/i/s0cfEILwYb8M
为了您的理智,每个音高的音高表以及每个数字代表的音高代表:
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
-th八度。另外,表中数字0
是否最后一位(E5
)?