1. 程式人生 > >三個骰子點數之和概率

三個骰子點數之和概率

題目出自美團點評線上筆試題,求三個骰子的點數之和概率最大的是?

思路:三個骰子點數之和的範圍是3~18,越靠近兩邊出現的概率越小,因此點數和概率最大的情況應該出現在中間位置。計算中間9,10,11,12

出現的概率比較一下。

首先計算出現9的概率:為了避免重複和遺漏,將點數和為9分成兩種情況:

(1)三個骰子點數都不相同:(1,2,6),(1,3,5),(2,3,4)

(2)可以允許存在相同的點數:(2,2,5),(3,3,3),(4,4,1)。

全不相同時對三個點數全排列,因此(1,2,6)排列共有3!= 6 種情況,存在相同點數時將不同的那個元素提出來利用插空法,所以(2,2,5)排列有3種,總的概率

P = (3! * 3 + 3* 2 + 1)/6*6*6 = 25/216.

點數和為10時,可以分為:(1)(1,3,6),(1,4,5),(2,3,5);(2)(2,2,6),(3,3,4),(4,4,2)。

P = (3! * 3 + 3 * 3)/6*6*6 = 27/216

點數和為11時,也分為兩種情況:(1)(1,4,6),(2,3,6),(2,4,5); (2)(3,3,5),(4,4,3),(5,5,1)

P = (3! * 3 + 3 * 3)/6*6*6 = 27/216

點數和為12,(1)(1,5,6),(2,4,6),(3,4,5); (2)(3,3,6),(4,4,4),(5,5,2)

P = 25/216

所以點數和最大的可能是10或者11.

相關推薦

點數之和概率

題目出自美團點評線上筆試題,求三個骰子的點數之和概率最大的是? 思路:三個骰子點數之和的範圍是3~18,越靠近兩邊出現的概率越小,因此點數和概率最大的情況應該出現在中間位置。計算中間9,10,11,1

N點數之和的分佈

將N個均勻的骰子,扔在地上,求點數之和的分佈。 因為是分佈,自然是求N個篩子之和等於M的概率,p(m) p(m) = fre(n,m)/sum fre(n,m)是指n個骰子扔出m個點數的 總的可能情況,這個就相當於組合數,只是限制了每個骰子的點數在1-6之間。 sum是n

n點數和及各自出現的概率

題目:把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,打印出S的所有可能的值出現的概率。 這道演算法題可採取動態規劃法來求解。鑑於《劍指Offer》中對該題的解法晦澀難懂,尤其是程式碼,也沒有指明其解題的思路本質上就是動態規劃,所以提出自己的理解和

n點數之和概率

n個骰子的點數。把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,打印出S的所有可能的值出現的概率。 思想:F(n,s) = F(n-1,s-6)+F(n-1,s-5)+F(n-1,s-4)+F(n-1,s-3)+F(n-1,s-2)+F(n-1,s-1); #i

n點數以及出現概率

//把n個骰子扔在地上,所有骰子朝上一面的點數之和為s。輸入n,打印出s的所有可能 //的值出現的概率。 #include "stdio.h" #include "cmath" #include "helper.h" using namespace std; //方法1:

求n點數和出現的概率-動態規劃

這幾天在看劍指offer的時候發現,求n個骰子個點數和這個問題是發現書中講的不是很清楚,於是查詢資料,覺得下面講的比較透徹,記錄如下: 題目:把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,打印出S的所有可能的值出現的概率。 宣告思想非原創!只因動態規劃思

n點數和出現的概率- 動態規劃

題目:把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,打印出S的所有可能的值出現的概率。 宣告思想非原創!只因動態規劃思想的使用很好,記下! 分析:動態規劃就是分階段考慮問題,給出變數,找出相鄰階段間的關係。具體定義給忘了。 1.現在變數有:骰子個數,點

《劍指offer》 面試題43 n點數 (java)

r+ nal ret 次循環 分而治之 源碼 ava 面試 ble 引言:寫這篇文章的初衷只是想做個筆記,因為這道題代碼量有點大,有點抽象,而書上並沒有詳細的註釋。為了加深印象和便於下次復習,做個記錄。 原題:把n個骰子扔到地上,所有骰子朝上一面的點數之後為s. 輸入n,打

劍指Offer面試題43(Java版):n點數

pac pos max mod ins pri class pro bili 題目:把n個骰子仍在地上。全部骰子朝上一面的點數之和為s,輸入n,打印出s的全部可能的值出現的概率。 解法一:基於遞歸求骰子的點數,時間效率不夠高 如今我們考慮怎樣統計每個點數出現的次數。要向

n點數(Java實現)

本題為劍指offer面試題43 沒有找到牛客網的測試例題 題目:把n個骰子仍在地上,所有骰子朝上一面的點數之和為s,輸入n,打印出s的所有可能的值出現的概率。 解法一:基於遞迴求骰子的點數,時間效率不夠高 現在我們考慮如何統計每一個點數出現的次數。要向求出n個骰

題目1255:點數概率(動態規劃)

提交總是Wrong Answer,覺得自己的程式碼是沒有問題的,如4個骰子的和為4的情況只能有一個,就是4個全部為1 題意:給出n個骰子,計算所有骰子朝上一面的點數之和為S對應的概率 思路:用dp(i,j)表示i個骰子和為j時的概率,有dp(i,j)=(dp(i-1,j-1

n點數

把n個骰子扔在地上,所有骰子朝上一面的點數之和為s,輸入n,打印出s的所有可能出現的概率 思路:遞迴一般是自頂向下的分析求解,而迴圈則是自底向上,佔用更少的空間和更少的時間,效能較好。定義一個二維陣列,第一次擲骰子有6種可能,第一個骰子投完的結果存到probabilitie

關於擲兩,得到數之和的統計

package array; import java.util.*; public class random{ public static void main(String[] args) { int intArray[]= {0,0,0,0,0,0,0,0,0,0,0}; java.util.R

【劍指offer】面試題43:n點數

第一種思路是,每個骰子的點數從最小到最大,假設為1-6,那麼所有的骰子從最小1開始,我們假設一種從左向右的排列,右邊的最低,索引從最低開始,判斷和的情況。 def setTo1(dices, start, end): for i in range(start, end)

劍指offer:n點數(java)

題目:把n個骰子仍在地上,所有骰子朝上一面的點數之和為s,輸入n,打印出s的所有可能的值出現的概率。     骰子一共6個面,每個面上都有一個點數,對應的是1-6之間的一個數字。所以n個骰子的點數和的最小值是n,最大值為6n.另外根據排列組合的知識,我們還知道n個骰子的所有

九度 題目1255:點數概率

題目描述: 把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,打印出S的所有可能的值出現的概率。 輸入: 輸入包括一個整數N(1<=N<=1000),代表有N個骰子。 輸出: 可能有多組測試資料,對於每組資料, 按照Sample Output的格

面試題43: n點數

原題:把n個骰子扔到地上,所有骰子朝上一面的點數之後為s. 輸入n,打印出s所有可能的值出現的概率。(每個骰子6個面,點數從1到6) 解法一:基於遞迴,時間效率不高 遞迴的思想一般是分而治之,把n個骰子分為第一個和剩下的n-1個。先計算第一個骰子每個點數出現的次數,再

【劍指offer-Java版】43n點數

屬於比較適合進行時空權衡的題目,不過沒有過多的研究dp技巧,只是簡單的用作者的思路實現了下 public class _Q43<T> { private fina

《劍指offer》:[43]N點數

題目:把N個骰子扔在地上,所有骰子朝上一面的點數之和為S,輸入N,打印出S的所有可能的值出現的概率。 分析:對於6點的N個骰子來講,其和S的最小值為N,最大值為6N。要得到和S出現的概率,就得得到和S出現的次數,然後用某一S出現的次數/S的所有可能性=S出現的概率。對於骰

劍指offer 面試題43—n點數

題目: 把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,打印出S的所有可能的值出現的概率。 解法一:遞迴        玩過麻將的都知道,骰子一共6個面,每個面上都有一個點數,對應的數字是1到 6之間的一個數字。所以,n個骰子的點數和的最小值為n,最大值為6n