【爐石傳說】場上有一個三血奴隸主,假設站場可以無限擴大,求:第n個旋風斬後場上還有幾個奴隸主?
爐石裡面有太多的牌會對結果造成影響,所以要限定一下之後每次出牌只能是旋風斬
進一步求:若暴雪將奴隸主血量改為m(m&>=2),還剩幾個? --------------------------------------------------------- 通過列舉可以發現一些規律,類似斐波那契數列,有沒有通用思路和解法?
(旋風斬可對場上所有奴隸主造成1點傷害,奴隸主每受到一點傷害並且沒有死亡的話分裂出一個全新的奴隸主)
基礎
假設:n個旋風斬後,場面上3血奴隸主數目為Xn,2血奴隸主數目為Yn,1血奴隸主數目為Zn
那麼根據奴隸主的規則設定:1個旋風斬後,1個3血奴隸主變為1個2血奴隸主+1個3血奴隸主;1個2血奴隸主變為1個1血奴隸主+1個3血奴隸主,1個1血奴隸主直接死亡。
所以X(n+1)=Xn+Yn;Y(n+1)=Xn;Z(n+1)=Yn
那麼n+1個旋風斬後,場面上的奴隸主數量=X(n+1)+Y(n+1)+Z(n+1)=Xn+Yn+Xn+Yn=2(Xn+Yn)=2X(n+1),也就是3血奴隸主數量的2倍
而3血奴隸主的數量Xn=X(n-1)+X(n-2),也就是斐波那契數列,再考慮一下起點,X0=1,X1=1;所以n個旋風斬後場上的奴隸主數量為:
————————————————分割線——————————————
下班了,回去再看進一步要求
————————————————分割線——————————————
奴隸戰將死,他日回頭再看這個問題,也是不勝唏噓
所所所所所所有人都過來
3
2 3
1 2 3 3
1 2 2 3 3 3
1 1 2 2 2 3 3 3 3 3
T(0) = 1
T(n) = 2(T(n-1) - F(n-1))
F(0) = 0
F(1) = 0
F(2) = 1
F(n) = F(n-1) + F(n-2)
F(n)表示第n個旋風斬時場上一血奴隸主的數量
如果將奴隸主的血量改為m:
F(n) = 0 n-m+1 &<0
F(n) = 向上取整[T(n-m+1)/2] otherwise
T(0) = 1
T(n) = 2T(n-1) n-m &<0
T(n) = 2(T(n-1) - 向上取整[T(n-m)/2]) otherwise
F通式可以理解為n時的一血奴隸主全部來自於n-m+1時新生的滿血奴隸主
腦洞:場上再加一個暴風城勇士怎麼樣?
會燒斷對手的繩子
招出來了也沒時間攻擊,對面直接一個烈焰風暴焦作人。。。
這題如果是場面數量有限還有難度,如果無限就比較簡單了。。
會死兔子的斐波那數列吧
設第N次旋風斬後有F(N)個,則有關係 F(N)-F(N-1)=F(N-1)-F(N-3)N大於等於2,且F(-1)=0,F(0)=1,F(1)=2。運用數學歸納法可推出其為F(N)=F(N-1)+F(N-2)(N大於等於3)的一個數列。
需要考慮燒繩子的時間。
可是奴隸主只有3血
斐波那契數列
0,1,1,2,3,5,8,13
我們的答案
2,4,6,10,16,26
斐波那契數列去掉前2項
1,2,3,5, 8, 13
斐波那契數列的通項
我們的通項 就是n改成n+2 最後整個表達式的值*2
n必須&>=2
以上
整個人都 所有人都過來
推薦閱讀:
※現行的天氣預報系統是基於一個什麼演算法?
※在機器學習模型的訓練期間,大概幾十分鐘到幾小時不等,大家都會在等實驗的時候做什麼?
※為什麼同樣是解決一個問題,別人就能想出演算法,而我卻絞盡腦汁,百般嘗試也不得其法?
※蒙特卡羅演算法是什麼?
※有哪些令人拍案叫絕的演算法?
TAG:演算法 | 數學 | 數學難題 | 遞歸 | 爐石傳說Hearthstone |