绝不是因为上了《石钟山记》。
不妨以弦长丈量音符。拿纯律比较十二平均律。
众所周知,毕达哥拉斯提出,比例越简洁,两个音的和声听起来越自然悦耳。
比方说,纯五度就是
23 倍的弦长。
但问题来了,如果要升调的话,比例就变了,很不好。
于是想到了一种新方法:把一个八度十二等分,变成以
2121 为公比的等比数列。
这种方法就适合升调,但反过来比例就对不上了。
此谓鱼与熊掌不可得兼。
比如大三度,理论
12log245=3.863,实际上
2124=1.260,误差就有点大。
列出表格:
| 89 | 45 | 34 | 23 | 35 | 815 |
|---|
| 2.039 | 3.863 | 4.980 | 7.020 | 8.844 | 10.883 |
| 1.122 | 1.260 | 1.335 | 1.498 | 1.682 | 1.888 |
可见,绝对误差有时能达到
0.156 之大,所以十二平均律听上去就没有纯律那么和谐,不转调的情况下纯律是更好的选择。
那倘若以 Stern-Brocot Tree 拟合一下有理数呢?
| - | 1 | 2? | 3 | 4!? | 5! | 6 | 7? | 8! | 9! | 10 | 11! |
|---|
| < | 1617 | 89 | 56 | 34 | 23 | 23 | 23 | 12 | 12 | 12 | 12 |
| > | 1718 | 4955 | 1619 | 45 | 34 | 57 | | 23 | 35 | 47 | 815 |
| < | 8489 | | 2125 | 2329 | | 1217 | | 58 | 2237 | 59 | 917 |
| > | | | 3744 | 2734 | | 2941 | | 1219 | | 916 | 89168 |
| < | | | | 5063 | | 7099 | | 1727 | | 2341 | 98185 |
| > | | | | | | | | 63100 | | 3257 | |
| < | | | | | | | | | | 5598 | |
可以看见纯律中的比例均出现了,因此可以胡扯为什么是“十二”平均律而不是其他的数字。12 是最小的可以让纯律中比例均出现的,更大的有 23、24、31、32 等。但是 23 和 31 这种质数明显也不方便,所以 12 就是最好的了,但是其实吧,24 确实还行。附 23、24、31、32 的表格:
| - | 1 | 2 | 3 | 4! | 5 | 6 | 7? | 8! | 9? | 10! | 11 | 12 | 13? | 14! | 15 | 16? | 17! | 18 | 19 | 20 | 21! | 22 |
|---|
| < | 3233 | 1617 | 1011 | 78 | 67 | 56 | 45 | 34 | 34 | 23 | 23 | 23 | 23 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 |
| > | 3334 | | 1112 | 89 | 3743 | | 1316 | 45 | 1317 | 34 | 34 | 710 | 2334 | 23 | 23 | 23 | 35 | 35 | 47 | 59 | 815 | 1631 |
| < | 98101 | | 2123 | 3944 | 4350 | | 1721 | 1114 | 1621 | 1723 | 57 | 1623 | 2537 | 1929 | 58 | 35 | | 47 | 916 | 611 | 917 | 1733 |
| > | | | 7481 | | | | | | 6180 | 3750 | 2839 | 2333 | 98145 | 2132 | 711 | 58 | | 712 | 2239 | 2342 | 1732 | |
| < | | | | | | | | | | 5473 | | 3956 | | 4061 | | 813 | | 1831 | | 2953 | 77145 | |
| > | | | | | | | | | | 91123 | | | | | | 2134 | | 2543 | | 5295 | 94177 | |
| < | | | | | | | | | | | | | | | | 71115 | | | | 81148 | | |
| > | | | | | | | | | | | | | | | | 92149 | | | | | | |
| - | 1 | 2 | 3 | 4? | 5 | 6 | 7? | 8! | 9? | 10! | 11 | 12 | 13 | 14? | 15! | 16 | 17? | 18! | 19 | 20 | 21 | 22! | 23 |
|---|
| < | 3435 | 1617 | 1112 | 89 | 67 | 56 | 45 | 34 | 34 | 23 | 23 | 23 | 23 | 23 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 |
| > | | 1718 | | 4955 | 1315 | 1619 | 911 | 45 | 79 | 34 | 34 | 57 | 1116 | | 23 | 23 | 23 | 35 | 35 | 47 | 611 | 815 | 1733 |
| < | | 8489 | | | 4552 | 2125 | 5871 | 2329 | 1013 | | 811 | 1217 | 79115 | | 1117 | 58 | 35 | 2237 | 47 | 59 | | 917 | 1835 |
| > | | | | | | 3744 | | 2734 | 2735 | | | 2941 | | | 2437 | 1219 | 813 | | 1119 | 916 | | 89168 | 3568 |
| < | | | | | | | | 5063 | 6483 | | | 7099 | | | 5991 | 1727 | 1118 | | 1526 | 2341 | | 98185 | |
| > | | | | | | | | | | | | | | | 83128 | 63100 | 3049 | | 2645 | 3257 | | | |
| < | | | | | | | | | | | | | | | | | 4167 | | | 5598 | | | |
| > | | | | | | | | | | | | | | | | | 71116 | | | | | | |
| - | 1 | 2 | 3 | 4 | 5? | 6 | 7 | 8 | 9? | 10! | 11 | 12? | 13! | 14 | 15 | 16 | 17 | 18? | 19! | 20 | 21 | 22? | 23! | 24 | 25 | 26 | 27 | 28? | 29 | 30 |
|---|
| < | 4445 | 2122 | 1415 | 1011 | 89 | 67 | 56 | 56 | 45 | 34 | 34 | 34 | 23 | 23 | 23 | 23 | 23 | 23 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 |
| > | | 2223 | 2931 | 1112 | 1719 | 78 | 67 | 4655 | 911 | 45 | 45 | 1317 | 34 | 34 | 34 | 710 | 1319 | | 23 | 23 | 23 | 23 | 35 | 35 | 35 | 47 | 59 | 713 | 1121 | 2243 |
| < | | | 7277 | 3235 | 7685 | | 5969 | 97116 | | | 79 | | 83111 | 811 | 57 | 86123 | 80117 | | 1726 | 711 | 58 | 35 | 5592 | 712 | 47 | 59 | 611 | 815 | 2344 | 2345 |
| > | | | | | 93104 | | | | | | 1823 | | | 1115 | | 93133 | | | | 1625 | | 813 | 5897 | 3153 | | 1425 | 3564 | 2343 | 80153 | 4588 |
| < | | | | | | | | | | | 4355 | | | 1926 | | | | | | 3961 | | 1118 | | 3865 | | 1934 | 76139 | 54101 | | 68133 |
| > | | | | | | | | | | | 6178 | | | 4967 | | | | | | | | 96157 | | 69118 | | 3359 | | | | |
| < | | | | | | | | | | | | | | 6893 | | | | | | | | | | | | 5293 | | | | |
| - | 1 | 2 | 3 | 4 | 5? | 6 | 7 | 8 | 9 | 10? | 11! | 12 | 13? | 14! | 15 | 16 | 17 | 18? | 19! | 20 | 21 | 22 | 23? | 24! | 25 | 26 | 27 | 28 | 29? | 30 | 31 |
|---|
| < | 4546 | 2223 | 1415 | 1112 | 89 | 78 | 67 | 56 | 45 | 45 | 34 | 34 | 34 | 23 | 23 | 23 | 23 | 23 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 | 12 |
| > | 4647 | 2324 | 1516 | | 910 | 2933 | 5564 | 1619 | 56 | 2936 | 45 | 79 | 4053 | 34 | 34 | 57 | 913 | 2131 | 23 | 23 | 23 | 23 | 23 | 35 | 35 | 47 | 47 | 611 | 713 | 1121 | 2345 |
| < | | 4547 | | | 2629 | 3641 | | 2125 | 911 | 6277 | 1114 | 1013 | 83110 | 1419 | 57 | 1217 | | 6596 | 5380 | 1117 | 58 | 35 | 35 | 2237 | 47 | 3765 | 59 | | 815 | 1223 | 4792 |
| > | | | | | 3539 | | | 3744 | 1417 | | 1519 | 2735 | | 1723 | 811 | 2941 | | | 5583 | 2437 | 711 | 58 | 1423 | | 712 | 4172 | 3461 | | | 4790 | 70137 |
| < | | | | | | | | | 6579 | | 2633 | 6483 | | 3142 | 1318 | 7099 | | | | 5991 | 2641 | 1829 | 1728 | | 3255 | | 3970 | | | 59113 | |
| > | | | | | | | | | 7996 | | | | | 4865 | 99137 | | | | | 83128 | 3352 | 77124 | 3151 | | | | | | | | |
| < | | | | | | | | | | | | | | | | | | | | | | 95153 | 4879 | | | | | | | | |
感觉好像没人像我这样思考过,别人都是什么十九平均律之类的。毕竟我这种思考方法反了,逻辑上就不通,但结果是很有趣的。
生成上述表格的代码(上面的是手动修过的,毕竟也不想把代码整太麻烦):
PYz=int(input())
t=[(9,8),(5,4),(4,3),(3,2),(5,3),(15,8)]
def g(a,b):
print('|$\\frac'+('{'+str(a)+'}'if a>9 else str(a))+('{'+str(b)+'}'if b>9 else str(b))+'$'if b<100 else'|',end='')
if(a,b)in t:t.remove((a,b));return 1
return 0
def f(x,s,r,a,b,c,d):
if min(a,b,c,d)>100:print('|',end='');return 0
if s==0:return g(c,d)if r else g(a,b)
return f(x,s-r,0,a,b,a+c,b+d)if pow(2,x)*pow(b+d,z)<pow(a+c,z)else f(x,s-1+r,1,a+c,b+d,c,d)
h=0
print('-',end='')
for j in range(1,z):print(f'|{j}',end='')
print('\n:-:',end='')
for j in range(1,z):print('|:-:',end='')
print('\n',end='')
for i in range(2,12):
print('$>$'if i%2 else'$<$',end='')
for j in range(1,z):h=h+f(j,i,1,0,1,1,0)
print()
print(h)