從五種小球中任取三種,有多少種取法


不同顏色小球的選擇方法

1.問題重述

有紅黃藍白黑五種顏色的小球若干個,每次從里面任意取三個小球,總共有多少種取法

2.問題分析

1.首先,題中所描述的是一次性取三種小球,所以不考慮取的順序問題,對於所給的五中球進行編號為 0,1,2,3,4,分別代表紅黃藍白黑。

2.假設排列形式的取法
考慮排列順序,即每取一個小球的概率是相等的,但是根據題意應該剔除有相同顏色的球的情況,所以總數為A(5,3)(排列數)減去三種球顏色相同的情況即A(5,3)-3(具體代碼如下)


    int i,j,k;
    for(i=0;i<=4;i++)<br>
    {  
       for(j=0;j<=4;j++)<br>
        {  
          for(k=0;k<4;k++)<br>
             {
                if(i!=j&&i!=k&&j!=k)<br>
                  {
                   cout<<i<<j<<k<<endl;
                  }
             }

         }
      }
    
```<br>
3.組合形式的取法

根據組合數的性質,不考慮排列順序,若還以排列數的方式進行求解,會造成許多的重復情況,並且還需要額外的空間來記錄一種取法是否已經被取過。故不適用<br>
現在從如何取得角度來考慮<br>
有五個顏色不同的小球,總共的取法肯定是C(5,3)=10種,但是具體是哪十種,在數據規模小的情況下,可以一一枚舉出來,但數據量太大的話,需要按照一定的規律去尋找。<br>

一般來說,取出三個球,為了避免出現重復情況,需要先保證固定兩個球,然后去移動第三個球<br>
比如 對於 紅 黃 藍 白 黑 先固定 紅 黃 兩個球,然后移動第三個球,可以分別是 藍 白 黑,由此<br>
產生3種組合形式 紅 黃 藍 ,紅 黃 白 ,紅 黃 黑;由於 固定 紅 黃 和固定 黃 紅 所產生的組合<br>
是相同的 故不再固定 黃 紅 <br>
在固定 黃 藍 時,第三個球就不能選擇 紅,因為紅黃藍已經出現過了,只能選擇 白和黑,依此規律,
依次固定 
紅 藍 ,紅 白 ,但是不能固定紅  黑 ,因為固定紅黑了之后 第三個·球沒辦法選。<br>
在固定完  紅 藍 ,紅 黃 ,紅 白 后,所有的有紅球的情況已經全部取完,接下來就是對 黃 藍 白 <br>黑 進行C(4,3);<br>
可以看出 固定的第一個球最多只能移動到 藍 色,因為移動到 白球 或者 黑球 后面兩個球就無法 選擇<br>
同樣的 第二個球只能移動到 白球 ,移動到黑球 最后一個球就無法 選擇<br>
第三個球 可以移動到黑球。
<br>
據此可以寫出組合數C(5,3)的算法<br>
int i,j,k;
for(i=0;i<=2;i++)
{
   for(j=i+1;j<=3;j++)
   {
    for(k=j+1;k<=4;k++)
    {
      cout<<i<<j<<k<<endl;
    }
   }
}

3.問題結果

經過程序求解得到最終答案

紅黃藍(012)  紅黃白(013)   紅黃黑(014)   紅藍白(023)  紅藍黑(024)  紅白黑(034)  黃藍白(123)  黃藍黑(124)   黃白黑(134)  藍白黑(234)


一共10種情況;

歡迎大家討論,斧正


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM