經典演算法題 排列組合 有放回地取不同顏色的小球

2021-07-24 05:30:00 字數 1174 閱讀 5884

有6種不同顏色的球,分別記為1,2,3,4,5,6,每種球有無數個。現在取5個球,求在以下的條件下: 1、5種不同顏色, 2、4種不同顏色的球, 3、3種不同顏色的球, 4、2種不同顏色的球, 它們的概率。

解答:排列用c,組合用a。

既然題目說是無數個,就相當於有放回的取6個不同顏色的球。

因此,如果任意取5個球,每取乙個球都有6種可能,所有可能情況是6^5=7776,充當分母.

1. 5種顏色不相同:c65a55=720

首先6種顏色裡面取出5種不同顏色,總共有c65種可能。然後再進行任意組合a55

2. 4種顏色不相同:c64c41a55/2!=3600

首先6種顏色裡面取出4種不同顏色,總共有c64種可能。然後還剩1個球從這4種顏色裡面選取c41。然後再進行任意排列組合a55。此時注意:5個球裡面有2個球顏色是相同的,這兩個相同顏色的球是不能進行排列的,它們無論誰在左邊,誰在右邊都只能能算一種情況,因此需要除以a22

3. 3種顏色不相同:c63[c31a55/(3!)+c32a55/(2!*2!)]=3000

首先6種顏色裡面取出3種不同顏色,總共有c63種可能。然後還剩2個球從這3種顏色裡面選取,需要分兩種情況考慮:(1)剩下的2個球顏色相同,即從3種顏色裡面選取1種顏色c31,此時5個球裡面必然有3個球是同色的,它們排列組合也會有重複,需要除以a33;(2)剩下的2個球顏色不同,即從3種顏色裡面選取2種顏色c32,此時5個球裡面必然有兩組2個相同顏色的球,它們排列組合也會有重複,需要除以a22*a22;

4. 2種顏色不相同:c62[c21a55/(4!)+c21a55/(3!*2!)]=450

首先6種顏色裡面取出2種不同顏色,總共有c62種可能。然後還剩3個球從這2種顏色裡面選取,需要分兩種情況考慮:(1)剩下的3個球顏色相同,即從2種顏色裡面選取1種顏色c21,此時5個球裡面必然有4個球是同色的,它們排列組合也會有重複,需要除以a44;(2)

剩下的2個球顏色相同+1個不同顏色,這種組合也只有兩種可能記為c21,此時5個球裡面必然有一組3個相同顏色的球和一組2個顏色相同的球,同理需要除以a33*a22.

5.1種顏色不相同:c61[a55/5!]=6 (比較簡單,不用解釋)

算完在草稿紙上驗算一下有沒有算漏掉:a5+a4+a3+a2+a1=7779=6^5,說明準確無誤,

再算概率:

p5=a5/7776

p4=a4/7776 ......

C 經典演算法題 排列組合

將一組數字 字母或符號進行排列,以得到不同的組合順序,例如1 2 3這三個數的排列組合有 1 23 1 32 2 13 2 31 3 12 3 21。可以使用遞迴將問題切割為較小的單元進行排列組合,例如1 2 3 4的排列可以分為 1 2 34 2 13 4 3 1 24 4 12 3 進行排列,這...

演算法 排列組合

a m,n n n m 從 n 個數中取 m 個有前後順序的數列 有 a m,n 種方式 c m,n n n m m a m,n m 從 n 個數中取 m 個無前後順序的數列 有 c m,n 種方式 性質 c m,n c n m,n c r,n 1 c r 1,n c r,n 楊輝三角性質 c 0,...

排列組合相關演算法

排列生成演算法 問題 給出數字a1,a2,an,生成所有排列。如果用遞迴,這個演算法執行時的遞迴深度會很大的,而且遞迴如何乙個乙個地返回排列結果呢。下面的演算法的核心思想都是如何根據當前給定的排列p 第乙個排列自然是p a1a2.an了 然後生成唯一的下乙個排列。如此迴圈n 次,自然獲得所有的排列。...