lintcode 18 骰子求和

2021-09-21 17:34:11 字數 1655 閱讀 6509

扔 n 個骰子,向上面的數字之和為 s。給定 n,請列出所有可能的 s值及其相應的概率。

樣例 1:

輸入:n = 1

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

解釋:擲一次骰子,向上的數字和可能為1,2,3,4,5,6,出現的概率均為 0.17。

樣例 2:

輸入:n = 2

輸出:[[2,0.03],[3,0.06],[4,0.08],[5,0.11],[6,0.14],[7,0.17],[8,0.14],[9,0.11],[10,0.08],[11,0.06],[12,0.03]]

解釋:擲兩次骰子,向上的數字和可能在[2,12],出現的概率是不同的。

你不需要關心結果的準確性,我們會幫你輸出結果。

思路:我們知道,如果只有乙個骰子,那麼它的可能區間是1到6,如果兩個骰子,那麼可能的區間是是2到12,如果是3個骰子,那麼可能的區間是3到18,如果是n個骰子,那麼可能的區間是n到6*n。

我們建立乙個陣列,每一行代表每一種情況,第一行代表乙個骰子的情況,第二行代表兩個骰子的情況,第三行代表三個骰子的情況。

我們假設有n個骰子,總的點數和為sum,那麼在前面n-1個骰子的情況,最後乙個可以有sum-1、sum-2、sum-3、sum-4、sum-5、sum-6的六種情況,而最後的那個骰子有下面的情況:

(n-1,sum-1):第n個骰子扔出了1,等同n-1個骰子扔出了sum-1的情況。

(n-1,sum-2):第n個骰子扔出了2,等同n-1個骰子扔出了sum-2的情況。

(n-1,sum-3):第n個骰子扔出了3,等同n-1個骰子扔出了sum-3的情況。

(n-1,sum-4):第n個骰子扔出了4,等同n-1個骰子扔出了sum-4的情況。

(n-1,sum-5):第n個骰子扔出了5,等同n-1個骰子扔出了sum-5的情況。

(n-1,sum-6):第n個骰子扔出了6,等同n-1個骰子扔出了sum-6的情況。

那麼n個骰子扔出了sum的情況等於上面六種情況相加。

n = 1時:f(1,1) = f(1,2) = f(1,3) = f(1,4) = f(1,5) = f(1,6) = 1

而 n = 2時:f(2,2) = f(1,1) = 1

f(2,3) = f(1,2) + f(1,1) = 2

...f(2,6) = f(1,5) + f(1,4) + f(1,3) + f(1,2) + f(1,1)

f(2,7) = f(1,6) + f(1,5) + f(1,4) + f(1,3) + f(1,2) + f(1,1) = 6

**如下:

Lintcode 20 骰子求和

扔 n個骰子,向上面的數字之和為 s。給定 given n,請列出所有可能的 s值及其相應的概率。樣例給定n 1,返回 1,0.17 2,0.17 3,0.17 4,0.17 5,0.17 6,0.17 思路 扔n個骰子數字和及概率相當於求前n 1個骰子和及概率與第n個骰子和及概率。1.當n 0,返...

lintcode 20 骰子求和

扔 n 個骰子,向上面的數字之和為 s。給定 given n,請列出所有可能的 s 值及其相應的概率。注意事項 you do not care about the accuracy of the result,we will help you to output results.樣例給定 n 1,返...

lintcode 18 帶重複元素的子集

給定乙個可能具有重複數字的列表,返回其所有可能的子集 注意事項 樣例如果 s 1,2,2 乙個可能的答案為 2 1 1,2,2 2,2 1,2 挑戰你可以同時用遞迴與非遞迴的方式解決麼?標籤遞迴 codeclass solution sort nums.begin nums.end vectorte...