【爐石傳說】場上有一個三血奴隸主,假設站場可以無限擴大,求:第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個旋風斬後場上的奴隸主數量為:

————————————————分割線——————————————
下班了,回去再看進一步要求
————————————————分割線——————————————
奴隸戰將死,他日回頭再看這個問題,也是不勝唏噓


F[n] = sum_{i=1}^{m-1}{F[n-i]}    (n-i>0)


所所所所所所有人都過來


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

可驗證m=3時F的類斐波那契數列也滿足通式
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 |