n個骰子的點數

2021-10-02 17:30:46 字數 900 閱讀 2296

把n個骰子仍在地上,所有的骰子朝上的一面的點數之和為s,輸入n,列印出s所有可能的值出現的概率。

1.現在變數有:骰子個數,點數和。當有n個骰子,點數和為s時,出現次數記為f(n,s)。那與n-1個骰子階段之間的關係是怎樣的?

2.當有n-1個骰子時,再增加乙個骰子,這個骰子的點數只可能為1、2、3、4、5或6。那n個骰子得到點數和為s的情況有:

(n-1,s-1):第n個骰子投了點數1

(n-1,s-2):第n個骰子投了點數2

(n-1,s-3):第n個骰子投了點數3

…(n-1,s-6):第n個骰子投了點數6

在n-1個骰子的基礎上,再增加乙個骰子出現點數和為s的結果只有這6種情況!

所以:f(n,s)=f(n-1,s-1)+f(n-1,s-2)+f(n-1,s-3)+f(n-1,s-4)+f(n-1,s-5)+f(n-1,s-6)

3.有1個骰子,f(1,1)=f(1,2)=f(1,3)=f(1,4)=f(1,5)=f(1,6)=1。

所有的和出現次數總和為6^n。

class

solution

for(

int i =

2;i <= n;

++i)

dp[i]

[j]+

= dp[i -1]

[j - k];}

}}int all =

pow(

6, n)

; vector<

double

> res;

for(

int i = n;i <=

6*n;

++i)

return res;}}

;

時間複雜度:o(n)

空間複雜度:o(n)

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...

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...