Python編程算法【四】 借書方案知多少
【案例內(nèi)容】
小明有5本新書,要借給A、B、C三個小朋友,若每人每次只能借1本,則可以有多少種不同的借法?
【解題思路】
本題屬于數(shù)學中常見的排列組合問題,也就是從5個數(shù)中任取3個數(shù),然后再進行全排列,最后得出排列的總數(shù),即是有效的借書方案。具體來講,先求出5個數(shù)中任選3個數(shù),假設有n種選法;接著,再把這3個數(shù)進行全排列,假設共有m種排法。則 n x m 就是最終的借書方案。
【Python代碼】

本題有兩處關(guān)鍵,一是利用python自帶模塊:itertools.permutations(nums),可以輕松對任何列表做全排列,完畢不必自己再重寫一個函數(shù)來做;二是借助數(shù)學上從n個數(shù)中,任選m個數(shù)的公式,得出所有的選法,兩者一相乘,便可解決本題。編程+數(shù)學 = 解法
標簽: