這是一題很單純的證明題
但我先用python跑看看它的值
很明顯地 它是遞增 證明它有上限4
但是呢!!!
我用python寫
def a(n, fib = [2]): #a_0=2
if n >= len(fib):
for i in range(len(fib), n + 1):
fib.append(fib[i-1]*(4*n*n)/(2*n-1)/(2*n+1))
return fib[n]
print(a(0),a(1),a(2),a(3))
2 2.6666666666666665 2.844444444444444 2.9257142857142853
基本上跑出來沒問題
但...
如果我個別找值,如找a(2), a(3)
值竟然變成2.2755555555555556 2.3405714285714287
太久沒寫Python 這到底是那裡的問題??
如果用最笨的方法來寫,答案卻是對的
可見是程式的問題
n = 3
sum = 2
for i in range(1, n + 1):
sum *= (4*i*i)/(2*i-1)/(2*i+1)
print(sum)
=================================
找到錯誤了
fib.append(fib[i-1]*(4*n*n)/(2*n-1)/(2*n+1))
上頭的n要改成i
犯這種錯誤 可見功力退步了
沒有留言:
張貼留言