Re: [問題] 黃金比例的級數已回收
原po的問題是個連分數
即給定一數列 a_n
1
Q_n = a_1 + -------------------
1
a_2 + -------------------
1
a_3 + -------------
...
...
1
... ----------------
1
a_(n-1) + -----
a_n
= a_1 + 1/(a_2 + 1/(a_3 + 1/(...+ 1/( a_(n_1)+ 1/a_n ) ...)))
如果 a_n 不相同的話
CCWck大的解法會變成
Q_n = a_n + 1/(a_(n-1) + 1/( a_(n-2) + 1/(...+1/( a_2 + (1/a_1))...)
就不符合連分數的定義
但是這一題因為 a_n = 1 for all n, 所以CCWck大的解法算出來也是對的
如果是要計算任意的連分數的話
觀察
Q_1 = a_1/1
Q_2 = (a_1a_2 + 1)/a_2
Q_3 = (a_3( a_1 a_2+1 ) + a_1) / (a_2 a_3 + 1)
...
可以寫出遞迴式為
Q_n = h_n / k_n
h_n = a_n h_(n-1) + h_(n-2)
k_n = a_n k_(n-1) + k_(n-2)
h_0 = 1 , h_(-1) = 0
k_0 = 0 , k_(-1) = 1
因此在這一題
a_n = 1 for all n
就變成
h_n = h_(n-1) + h_(n-2)
k_n = k_(n-1) + k_(n-2)
h_0 = 1 , h_(-1) = 0
k_0 = 0 , k_(-1) = 1
恰好就是費氏數列的前後項比值
因此truesword大的寫法也不能說是不符合題意喔
參考資料
http://en.wikipedia.org/wiki/Continued_fraction
※ 引述《CCWck (幹嘛要暱稱)》之銘言:
: 你需要用一個程式的概念
: 遞回函數 recursive function
: 一個自己呼叫自己的函數
: 以下是程式碼範例
: 請新增一m檔案 取名叫做 gold.m
: 以下是程式碼
: ----------------------------
: function [go]=gold(gi,n)
: if n>1
: go=1+1/gold(gi,n-1);
: else
: go=1+1/gi;
: end
: -----------------------------
: 存檔之後
: 你在matlab命令列 打 gold(1,10) 表示起始值為1 遞回十次
: 理論上 後面的值越大 會越準
: 如果看不懂 想像成以下的數列
: a1=1+1/gi
: a2=1+1/a1
: a3=1+1/a2
: ...
: an=1+1/an-1
: ※ 引述《cpr5566 (心肺復甦術56)》之銘言:
: : 想請問黃金比例的級數應該要怎麼打
: : 1+____1____
: : 1+___1___
: : 1+__1__
: : 1+_1_
: : 1+...
: : 這種級數應該要怎麼打才對呀?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.65.69
※ 編輯: mantour 來自: 61.57.65.69 (04/10 10:45)
討論串 (同標題文章)
完整討論串 (本文為第 4 之 5 篇):
問題
0
1