青蛙跳台階問題的數學解法

2021-08-29 00:19:00 字數 737 閱讀 1369

個人思路:使用時間複雜度較大的演算法,如斐波那契數列可以求解,將對n階階梯步數問題遞迴為n-1階階梯步數和n-2階階梯步數之和。但其實這個問題可以轉化為乙個數學問題,然後程式設計實現這個數學方法即可。

這裡使用高中知識裡的排列組合方法,當有n個台階時,青蛙可以跳二階的次數是0到n/2。

於是,單從跳階次數來說,可以產生n/2+1種跳法,1階個數從n降到n%2,2階個數從0公升至n/2,總的步數從n降至n/2+n%2。

我們就用這幾個數字進行計算。

從總步數角度出發,從n降至n/2+n%2的過程,從總步數里挑選2步的個數,進行排列,由於一步之間和二步之間是沒有區分的,所以這裡使用高中數學裡的c符號,計算它的排列,然後加和,最終得到的結果即為青蛙跳階總的跳法。

演算法原理比較簡單,需要注意的是邊界值,防止在計算過程中遺漏特殊情況。

對這個演算法的實現如下所示:

其中,target是傳進去的台階數,sum是跳法計數器,list_nums方法用來計算每一種的排列個數。

public class solution 

return sum;

}public int list_nums(int a,int b)

}

在程式設計練習**上試執行,吶,成功通過本題!

青蛙跳台階問題

題目 乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。我的思路 最開始我的思路是把這個看成是乙個數學問題,n i 1 k 2先把所有可能滿足這個公式的i和k求出來。然後在對i和k做排列組合。很明顯i的範圍應該是0 public int jumpflo...

青蛙跳台階問題

1 乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。2 乙隻青蛙一次可以跳上1級台階,也可以跳上2 級 它也可以跳上n 級,此時該青蛙跳上乙個n級的台階總共有多少種跳法?分析 1 當n 1,只有1中跳法 當n 2時,有兩種跳法 當n 3 時,有3種跳...

青蛙跳台階問題

問題一 有乙隻青蛙,需要跳上100級台階。青蛙每次可以調一級或者兩級台階。問青蛙有多少種方式可以跳100級台階。思路 逆推 當青蛙站在100級台階上時,那它跳上100級時有可能是從99級跳一級上來的,也可能是從98級跳兩級跳上來的 從98級跳兩個一級包括在從99級跳一級情況內,所以不予考慮 所以f ...