順序是這樣的:1 1/2! 1/3! 1/4!...... 1/n!它基本上是 1 除以某個階乘,直到達到 n!
我已經想出了如何計算階乘,例如:5!該代碼如下所示:
def factorial(n):
if n == 1:
return n
return n * factorial(n-1)
我試圖用谷歌搜索一個解決方案,但似乎找不到任何:(
我將如何編碼?
uj5u.com熱心網友回復:
使用math模塊:
import math
def seq(t=100):
out = 0
for i in range(1,t):
out = 1 / math.factorial(i)
return out
uj5u.com熱心網友回復:
一旦你有了這個factorial功能(你的或math.factorial),剩下的就幾乎是簡單的英語了 ;)
sum(1/factorial(i 1) for i in range(n))
uj5u.com熱心網友回復:
好吧,很明顯,您只需回傳逆即可回傳逆階乘:
return factorial(n-1) / n
但對于一個序列來說,那是浪費。看看你的順序:
1 1 1 1 1 1
1 - - - - - - ...
2 2 3 2 3 4
請注意,每一步只是前一步乘以新值。最好不要將“階乘”作為單獨的函式:
def sequence(steps):
term = 1
sumx = 1
for i in range(2,steps):
term /= i
sumx = term
return sumx
uj5u.com熱心網友回復:
您可以使用遞回和現有的階乘函式構建第二個函式:
def compute_sequence(n):
num = 1/factorial(n)
if n == 1:
return num
return num compute_sequence(n-1)
然后你只需呼叫:
compute_sequence(n)
uj5u.com熱心網友回復:
def factorial(n):
if n==0:
return 1
else:
return n * factorial(n-1)
def sequence(p):
sum = 0
while(p>0):
fact = factorial(p)
sum = (1/fact)
p -=1
return sum
print(sequence(3))
輸出:
1.6666666666666665
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/365099.html
