陳新龍
排列組合是組合學(xué)最基本的概念。所謂排列,就是指從給定個數(shù)的元素中取出指定個數(shù)的元素進(jìn)行排序。組合則是指從給定個數(shù)的元素中僅僅取出指定個數(shù)的元素,不考慮排序。排列組合的中心問題是研究給定要求的排列和組合可能出現(xiàn)的情況總數(shù)。排列組合與古典概率論關(guān)系密切。
舉個例子,用0~9組成可以重復(fù)的兩位數(shù),可以組成幾組呢?請都列舉出來。其實就是所有兩位數(shù),也就是從10~99。如果要求是不能重復(fù)的兩位數(shù)呢?可以組成多少個?如果組成三位數(shù)呢?這就是排列組合題。
下面我們就來做一道經(jīng)典的“排列組合”題。有四個數(shù)字:1、2、3、4,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?各是多少?分析題目可知,我們將在個位、十位、百位上進(jìn)行排列組合,但是記住要去除不滿足條件的排列。
由上圖我們可以分析要在三位數(shù)中進(jìn)行排列組合,并且不能重復(fù)。首先怎么樣排除重復(fù)是最重要的一點(diǎn)。這里采用了最簡單的方法,我們把個位、十位、百位上的數(shù)字分別設(shè)為I、J、K三個變量,并且要加以條件,使得不能相互之間存在重復(fù)。理解完原理之后我們來用Python嘗試著編寫一下。
題目:
答案:
一共是24個數(shù)字,全部都列舉出來了,Python語言編寫相對來說還是比較簡單的。這里提醒一下大家,每句話結(jié)束之后“:”不要忘記,并且英文半角符號要注意,否則容易出錯哦。
題目比較簡單,你可以把題目改進(jìn)一下,如果從0、1、2、3、4中組成不能重復(fù)的三位數(shù),能組成幾個呢?你能列出來嗎?趕快來嘗試一下吧。偷偷告訴你答案,一共是48個,看看你有沒有算對,趕緊把程序?qū)懴聛戆伞?p>