#50258: 沒啥技巧,全是數學。(python)


abc1231334 (tl32m)


       平面的數量   分割的空間數量         相差      相差
D0          0                  1
                                                                1
D1          1                  2                                         1
                                                                2
D2          2                  4                                         2
                                                                4
D3          3                  8

和a042. 平面圓形切割相比,這次是項次之間的差,之間的差,是等差數列。

a042是一個二次函數,這次就是三次函數。

f(0)=1
f(1)=2
f(2)=4
f(3)=8

努力解出f(x)=ax^3 + bx^2 + cx + d吧。看是要直接解,還是要用插值法都行。
算出來f(x)=(1/6) x^3 + 5/6 x + 1

所以,函數的設計,輸入n,輸出(n**3)/6 + n*5/6 + 1即可。

高中死去的數學開始記憶回來了...

#54047: Re: 沒啥技巧,全是數學。(python)


106193@smail.phc.edu.tw (Leo_Python)


       平面的數量   分割的空間數量         相差      相差
D0          0                  1
                                                                1
D1          1                  2                                         1
                                                                2
D2          2                  4                                         2
                                                                4
D3          3                  8

和a042. 平面圓形切割相比,這次是項次之間的差,之間的差,是等差數列。

a042是一個二次函數,這次就是三次函數。

f(0)=1
f(1)=2
f(2)=4
f(3)=8

努力解出f(x)=ax^3 + bx^2 + cx + d吧。看是要直接解,還是要用插值法都行。
算出來f(x)=(1/6) x^3 + 5/6 x + 1

所以,函數的設計,輸入n,輸出(n**3)/6 + n*5/6 + 1即可。

高中死去的數學開始記憶回來了...

我覺得把 (1/6) 提出會更好,因為電腦在計算分數的時候可能會有誤差,不然就是最後要再加上 round() 函數

f(x) = (x**3+5*x)/6 + 1