利用COMBIN函數和PERMUT函數解決對象的組合問題

在一篇文章中講過數論的問題,稱之為數學界的最尖端分支。其實,數論的問題並不都是很深奧的,像求證。諸如:合數可以分解為兩個質數之和。π值可以重現任何的數值密碼等等。這類問題對於我們很難去解答。而作為大眾還是最關心的是:桌子上有4個饅頭,我只能吃掉2個,共有多少種吃法?這類實際的問題了。這就是簡單的組合,分為有序組合和無序組合。今日就給大家講解這類饅頭問題的函數解法。

首先我們還是引入函數:

一:COMBIN函數

用途:返回一組對象所有可能的組合數目。

語法:COMBIN(number,number_chosen)

參數:number是某一對象的總數量,number_chosen則是每一組合中對象的數量。

注意:函數中的參數按照截尾取整的原則參與運算,並且要求number>0、number_chosen>0以及number>number_chosen。

實例:假設有10名乒乓球隊員,從中選出任意兩人搭配參加雙打,則計算公式為"=COMBIN(10,2)",可以得出45種搭配方案。

二PERMUT函數

用途:返回從給定數目的元素集合中選取的若干元素的排列數。

語法:PERMUT(number,number_chosen)

參數:Number為元素總數,Number_chosen是每個排列中的元素數目。

實例:如果某種彩票的號碼有9個數,每個數的範圍是從0到9(包括0和9)。則所有可能的排列數量用公式"=PERMUT(10,9)"計算,其結果為3628800。

上面的兩個函數可以看出前者是沒有順序的組合,後者是有順序的組合。為了更好的理解上面的兩個函數,我們舉例來說明:

問題1 有三個非零的不重複的一位數,從其中取出2個,共有多少種取法?

問題2 有三個非零的不重複的一位數,從其中取出2個,可以組成多少個兩位數?

對於問題一的解答,只要從這三個數中取出兩個即可:如下面的截圖,假設三個數為2,3,4 那麼共有三種取法,2,3;3,4;2,4 很簡單,如果用公式就是=COMBIN(3,2)即可。

利用COMBIN函數和PERMUT函數解決對象的組合問題

對於問題2,其實就是個很簡單的有序問題,不僅要考慮取出的方法還要考慮組合後的兩位數的問題,因為取出的數值前後顛倒後,兩位數時不同的。下面的截圖給出了各種取法即對應的兩位數的值,應用公式為=PERMUT(3,2)。

利用COMBIN函數和PERMUT函數解決對象的組合問題

當然上面的問題是很簡單的,僅是為了說明問題。複雜的問題也可以用上面的函數去解決。

同時,如開篇提到的饅頭問題,那是個無序的問題,用COMBIN,但當饅頭的大小各不同時就會形成一個有序的問題,就該用PERMUT函數來解決了。

在實際的生活中,這類問題是很多的,比如上班的路線一共有三條,那麼每日上下班所走的路線不重複,共有多少種方案?都可以利用這個函數來解決。當然估計沒有人刻意的去算這些方案,但從學以致用的角度去看,都可以想想。也是很有意思的一件事。或許你會收到意想不到的收穫。

學習的路徑也很多,本平臺推出的是VBA及GO語言的思想,GO語言的思想就是乾淨利落地解決問題,同時及時地回收你的資源。所以學到的知識,要多加利用。

今日內容迴向:

1 數字的組合函數有哪兩種?兩者的區別是什麼?

2 如何理解組合的有序和無序?


分享到:


相關文章: