numpyを使用して階乗関数を作成しました。コードは次のとおりです。Pythonでの階乗関数の問題(コードを参照)
import numpy as np
def factorial(x):
n=[]
if x==1:
return 1
if x>1:
while x>1:
x-=1
n.append(x+1)
return np.prod(np.array(n))
この関数は階乗(12)までうまくいきます。
一方、この1つは、任意の数で動作します:
def fact(n):
num = 1
while n > 1:
num *= n
n -= 1
return num
例えば私は20!:
factorial(20)
Out[65]: -2102132736 #Wrong
fact(20)
Out[66]: 2432902008176640000 #Correct
は誰もが私を理解するのに役立つ可能性がありい計算しようとすると、これが悪化私の機能に何が問題なの? ありがとうございます
戻り値np.prod(np.array(n、dtype = "float32"))または大きい範囲のある型 – Gor