0

多項式を評価するプログラムをコーディングしようとしていました。ただし、以下のコードはそのための単なる試行です。以下のコードは、「カウンター= t」のときに停止する出力を提供します...カウンター= 0のときまで出力を提供したいです。それはどうしてですか?すべての数値(入力)を多項式の係数として扱いたかったのです。これが成功した場合は、リストを作成し、たとえばリスト内のすべての要素に対して、そのインデックスに累乗した特定の数を掛けてから、それらを合計して、多項式..私は明確ですか?そして、私の計画はうまくいくでしょうか?? どうもありがとう..助けてください..

t = input("Enter degree of Polynomial: ")  
while t < 0:  
    print ("Not possible! ")  
    t = input("Enter degree of Polynomial: ")   

counter = 0  

while counter < t:  
    x = input("n: ")

    if x <= 0:
        print "Not possible!"
    else:
        print x**t  
    t-=1  

    counter += 1

出力は次のようになります:
多項式の次数を入力してください: 5
n: 5
3125
n:4
256
n:3
27
その後、終了します.. 入力 n を 5 回まで要求し続ける必要があります..

4

4 に答える 4

2

raw_input() を使用してみてください。raw_input() は常に文字列を返すことに注意してください。したがって、返された文字列を次のような整数に変換する必要があります。

>>> x = int(raw_input("foo: "))

次に、x > 2 などをテストすることができます。整数にキャストしないと、次のようになります。

>>> "2" > 1
True
>>> "2" > 3
True
于 2013-01-27T14:07:30.757 に答える
0

問題は (私には) ループが 2 つの変数に依存しているように見えますが、おそらく 1 つだけに依存すると予想していました。

おそらく、これは少しうまく機能します:

while t > 0:  
    x = input("n: ")

    if x <= 0:
        print "Not possible!"
    else:
        print x**t  
    t-=1  
于 2013-01-27T19:02:47.680 に答える
0

まず第一に: よくできました - それはほんの少しの間違いです: 最後の行の「構文上の空白」を削除するか、完全に削除してください

第二に: 値を追加することを忘れないでください ;-) - 見出しに関しては、これは python リストで行うのが最適です。

于 2013-01-27T16:07:07.743 に答える
0

このようなもの?

while True:
    degree = int(raw_input("Enter degree of Polynomial: "))
    if degree >= 0:
        break
    print ("Not possible!")  

x = float(raw_input("x = "))

y = 0.0
for exponent in reversed(range(degree)):
    k = float(raw_input("k[{0}] = ".format(exponent)))
    y += k * (x ** exponent)

print("y = ", y)

これは、次の形式の多項式を解きます。

y = (k[N-1] * (x ^ N-1) + (k[N-2] * (x ^ N-2) + ... + k[0]
于 2013-01-27T14:23:51.570 に答える