1

A440 と A880 の間のすべての音符の周波数を見つけて出力するプログラムを作成します。2 の 12 乗根を使用します。これが私の現在のコードです。

2**(1.0/12) is the twelfth root.

数学インポート平方根から

i=0
a=440
a2=(a*(2**(1.0/12.0)))
for i in range(12):
    print (a2)
    a2=a2+i
    i=i+1

そして、このコードは私にの出力を与えます。

466.1637615180899
466.1637615180899
467.1637615180899
469.1637615180899
472.1637615180899
476.1637615180899
481.1637615180899
487.1637615180899
494.1637615180899
502.1637615180899
511.1637615180899
521.1637615180899

しかし、私が必要とする出力は

440.0
466.163761518
493.883301256
523.251130601
554.365261954
587.329535835
622.253967444
659.255113826
698.456462866
739.988845423
783.990871963
830.60939516
880.0

私のコードには何がありませんか???

4

1 に答える 1

2

あなたの数学は間違っています

n=440

while (n<=880):
    print n
    n=n*(2**(1.0/12.0))
于 2013-10-03T19:55:32.023 に答える