n每個計數的概率和發生骰子 動態規劃

2021-09-08 11:10:15 字數 670 閱讀 3965

稱號:該n骰子在地板上。所有點骰子的向上一面和乙個s。進入n,列印s所有可能的值的概率。

宣告思想非原創!僅僅因動態規劃思想的使用非常好,記下。

分析:動態規劃就是分階段考慮問題。給出變數。找出相鄰階段間的關係。詳細定義給忘了。

1.如今變數有:骰子個數,點數和。

當有k個骰子。點數和為n時。出現次數記為f(k,n)。那與k-1個骰子階段之間的關係是如何的?

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

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

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

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

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

在k-1個骰子的基礎上,再新增乙個骰子出現點數和為n的結果僅僅有這6種情況。

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

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

那**就easy寫了,遞迴函式,返回和為n出現的次數。全部的和出現次數總和為6^n。

60 n個骰子的點數概率

把n個骰子扔在地上,所有骰子朝上一面的點數之和為s。輸入n,列印出s的所有可能的值出現的概率。你需要用乙個浮點數陣列返回答案,其中第 i 個元素代表這 n 個骰子所能擲出的點數集合中第 i 小的那個的概率。示例 1 輸入 1 輸出 0.16667,0.16667,0.16667,0.16667,0....

n個骰子的點數以及出現概率

把n個骰子扔在地上,所有骰子朝上一面的點數之和為s。輸入n,列印出s的所有可能 的值出現的概率。include stdio.h include cmath include helper.h using namespace std 方法1 遞迴思路。把骰子分成兩堆,一堆1個,另一堆n 1個。int d...

動態規劃求一定數量骰子和的概率

2018華為實習機試 題目描述 略 動態規劃 f n,s f n 1,s 1 f n 1,s 2 f n 1,s 3 f n 1,s 6 至於f n 1,s k 是否存在,由record的getinfo 判斷,不存在就設為 output 1 當數字很大時,結果不對稱 81double prob 0 ...