0

9gag でこの写真を見つけたので、これが正しいかどうかを確認するために Python コードを作成することにしました。

ここに画像の説明を入力

しかし、次の python コードを実行すると、Wolfram Alpha から得た結果とは異なる結果が得られました。

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return  (18111/2)*(x**4) - 90555*(x**3) + (633885/2)*(x**2) - 452773*x + 217331

for i in range(0,5):
    print f(i)

出力:

217331
0
-7
-40
-129
217016

そして、これが私のWolfram Alphaクエリ リンクへのリンクです

数式文字列を Python コードから Wolfram alpha に直接コピーして貼り付けたところ、正しく解釈されたように見えることに注意してください。したがって、問題が私の Python コードにあるとは思えません。

4

1 に答える 1

2

Python 2.x では、 をint / int返しますint。(小数点以下切り捨て)

>>> 18111/2
9055

必要な数を取得するには、 を使用する必要がありますfloat

>>> 18111/2.0
9055.5

from __future__ import ...または、次のステートメントを使用して動作を変更できます。

>>> from __future__ import division
>>> 18111 / 2
9055.5

ところで、1 から 5 まで繰り返すにはrange(1, 6)、 ではなくを使用する必要がありますrange(0, 5)

>>> range(0, 5)
[0, 1, 2, 3, 4]
>>> range(1, 6)
[1, 2, 3, 4, 5]
于 2014-11-22T05:06:18.907 に答える