劍指offer 43 n個骰子的點數

2021-07-31 12:05:02 字數 833 閱讀 6530

// n個骰子的點數

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

//解法1:兩個矩陣迭代相加,乙個點數等於之前6個點數相加

public class main

public static void printpro(int n)

int matrix = new int[2][6*n];

int flag = 0;

for(int i = 0;i<6;i++)

for(int i = 1;i=j-6 && k>=0;k--)

}flag = 1-flag;

} double total = math.pow(6,n);

for(int i = n;i<=6*n;i++) }}

//解法2:使用遞迴,直接計算每個點數出現的次數

public class main

public static void printpro(int n)

int pro = new int[n*6-n+1];

for(int i = n;i<=6*n;i++)

int cursum = 0;

proba(n,n,cursum,pro);

double total = math.pow(6,n);

for(int i = n;i<=6*n;i++) }

public static void proba(int ori, int index, int cursum, int pro)

for(int i = 1;i<=6;i++)

}}

劍指offer43 n個骰子的點數

類似青蛙跳台階的問題 第n個骰子點數為1的話,f n,s f n 1,s 1 當第n個骰子點數為2的話,f n,s f n 1,s 2 依次類推。在n 1個骰子的基礎上,再增加乙個骰子出現點數和為s的結果只有這6種情況!f n,s f n 1,s 1 這個等式只是在 第n個點數為1的時候,所有考慮的...

n個骰子 劍指offer

暴力求解,n個骰子和為s就等於n 1個骰子和分別為s 1 s 6時次數的總和。據此寫出 如下 int baoli int n,int s int count 0 count baoli n 1,s 1 baoli n 1,s 2 baoli n 1,s 3 baoli n 1,s 4 baoli n...

劍指offer 面試題43 n個骰子的點數

題目 把n個骰子扔在地上,所有骰子朝上一面的點數之和為s。輸入n,列印出s的所有可能的值出現的概率。解法一 遞迴 玩過麻將的都知道,骰子一共6個面,每個面上都有乙個點數,對應的數字是1到6之間的乙個數字。所以,n個骰子的點數和的最小值為n,最大值為6n。因此,乙個直觀的思路就是定義乙個長度為6n n...