天天看點

利用數學公式計算組合數利用數學公式計算組合數

利用數學公式計算組合數

在計算組合數時,可以通過遞歸算法進行計算。

對遞歸組合數計算的了解:

從含有a個球的袋子中摸出b個球,可以先取出其中一個帶有标記的球。

該問題可分解為:1. 選出所有的球中不包含帶标記的球,即為從(a-1)個球中取出b個球;2. 選出的球中包含帶有标記的球,即從(a-1)個球中選出(b-1)個球,因為已經首先選了标記過的球。

C a b = C a − 1 b + C a − 1 b − 1 C_a^b=C^b_{a-1}+C_{a-1}^{b-1} Cab​=Ca−1b​+Ca−1b−1​

// 将組合數的結果存入c[n][n]的二維數組中
for (int i = 0; i <= n; i++)
  for (int j = 0; j <= i; j++)
    if(!j) c[i][j] = 1;
		else c[i][j] = c[i-1][j] + c[i-1][j-1]
           

繼續閱讀