0

これは、テイラー級数を使用して、-1 から +1 の間の角度の正弦の値を見つけていますが、私がしようとしているのは、すべての度の値を取得し、それを出力し、次の度に移動してから出力することですなど...

def Fac(n):
    r=1
    for c in range(n,1,-1):
        r*=c #r=r*c
    return r

def Pow(x,n):
    r=1
    for c in range(0,n):
        r*=x
    return r

def Sign(i): #i will be the number of the term we are on for Taylor
    r=1
    for c in range(0,i):
        r*=-1
    return r

def Rad(a):
    return a*3.141592654/180

def SinTerm(x,n,i):
    y=Sign(i)*Pow(x,n)/Fac(n)
    return y


def main():
    for c in range(0,361):
        a=c
    i=3
    n=1
    sum=0
    for c in range(0,i):
        sum+=SinTerm(Rad(a),n,c)
        n+=2
    print "Taylor COSINE sum = ", sum

while True:
    main()

range(0,361) を作成すると、すべての値が個別に表示されると思いましたが、代わりに 0 ~ 360 度のすべての値が合計されます。すべての度の罪の値が別々に表示されるようにするにはどうすればよいですか? 私は正しい方向に私を導く答えを好むでしょう。

4

1 に答える 1

5

問題は for ループのインデントです。ラインのみa=cが含まれます。全体をインデントしたい (また、外側のループではaなくループオーバーのように見える):c

for a in range(0,361):
    i=3
    n=1
    sum=0
    for c in range(0,i):
        sum+=SinTerm(Rad(a),n,c)
        n+=2
    print "Taylor COSINE sum = ", sum
于 2012-09-14T21:28:32.183 に答える