骰子的點數

2021-10-02 03:35:52 字數 816 閱讀 2838

將乙個骰子投擲n次,獲得的總點數為s,s的可能範圍為n~6n。

擲出某一點數,可能有多種擲法,例如投擲2次,擲出3點,共有[1,2],[2,1]兩種擲法。

請求出投擲n次,擲出n~6n點分別有多少種擲法。

樣例1輸入:n=1

輸出:[1, 1, 1, 1, 1, 1]

解釋:投擲1次,可能出現的點數為1-6,共計6種。每種點數都只有1種擲法。所以輸出[1, 1, 1, 1, 1, 1]。

樣例2輸入:n=2

輸出:[1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]

解釋:投擲2次,可能出現的點數為2-12,共計11種。每種點數可能擲法數目分別為1,2,3,4,5,6,5,4,3,2,1。

所以輸出[1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]。
演算法(一)時間複雜度太高了

class

solution

return res;

}int

dfs(

int n,

int sum)

};

演算法(二)

dfs轉變成dp問題,重複的不再列舉。

1.狀態如何表示 f[i][j]前i次總和為j的方案數

2.如何計算

3.邊界條件

class

solution

};

本題中令人困惑的有k<=min(j,6)。正常情況下,k是列舉到6,但是有時候骰子的點數和並沒有超過6,最大值為j,所以列舉到min(j,6)

80 骰子的點數

將乙個骰子投擲n次,獲得的總點數為s,s的可能範圍為n 6n。擲出某一點數,可能有多種擲法,例如投擲2次,擲出3點,共有 1,2 2,1 兩種擲法。請求出投擲n次,擲出n 6n點分別有多少種擲法。樣例1 輸入 n 1輸出 1,1,1,1,1,1 解釋 投擲1次,可能出現的點數為1 6,共計6種。每種...

n個骰子的點數

把n個骰子扔在地上,所有骰子朝上的一面的點數之和為s。輸入n,列印出s的所有可能的值和出現的概率。1 基於迴圈求骰子點數 2int g maxvalue 6 骰子的點數個數 3void printprobability int number number 為骰子個數49 int pprobabili...

n個骰子的點數

題目 把n個骰子扔在地上,所有骰子朝上一面的點數之和為s。輸入n,列印出s的所有可能的值出現的概率。方法一 遞迴 思路 設n個骰子某次投擲點數和為s的出現次數是f n,s 那麼,f n,s 等於n 1個骰子投擲的點數和為s 1 s 2 s 3 s 4 s 5 s 6時的次數的總和 f n s f n...