python简单实现排列和组合的计算
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                python简单实现排列和组合的计算
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                ?高中數(shù)學選修2-3中學習了排列與組合的計算方式,這里按照課本上最基本的公式用python還原下
figure.py
def arrangment(a, b): # a代表取多少元素,b代表總共多少元素"""排列"""result = 1 # 設置中間量for i in range(a): # 經(jīng)典for循環(huán),從0到a每次使中間量乘b,b再減1result *= bb -= 1return result # 輸出def combination(a, b): # 同上"""組合"""result_1 = 1result_2 = 1 # 兩個循環(huán)兩個中間量for i in range(a): # 計算排列result_2 *= bb -= 1for i in range(a): # 算除數(shù)result_1 *= iresult = result_2/result_1return result # 完成直接嘗試
main.py
from figure import *print(arrangment(5, 5)) print(combination(5, 5))?不出意料報錯了
?120是說排列沒問題,那么問題就出在組合了,根據(jù)報錯division by zero說明是除0了,也就是說result_1是0,是因為在循環(huán)的時候是從0到a
稍作修改
figure.py
def arrangment(a, b): # a代表取多少元素,b代表總共多少元素"""排列"""result = 1 # 設置中間量for i in range(a): # 經(jīng)典for循環(huán),從0到a每次使中間量乘b,b再減1result *= bb -= 1return result # 輸出def combination(a, b): # 同上"""組合"""result_1 = 1result_2 = 1 # 兩個循環(huán)兩個中間量for i in range(a): # 計算排列result_2 *= bb -= 1for i in range(1, a): # 算除數(shù)result_1 *= iresult = result_2/result_1return result # 完成main.py
from figure import *print(arrangment(5, 5)) print(combination(5, 5))?再試一次
?沒有報錯,但是結果有問題
因為剛才把range的范圍改成了1到a,所以少了一個
再改一次,把范圍改為1到a+1
def arrangment(a, b): # a代表取多少元素,b代表總共多少元素"""排列"""result = 1 # 設置中間量for i in range(a): # 經(jīng)典for循環(huán),從0到a每次使中間量乘b,b再減1result *= bb -= 1return result # 輸出def combination(a, b): # 同上"""組合"""result_1 = 1result_2 = 1 # 兩個循環(huán)兩個中間量for i in range(a): # 計算排列result_2 *= bb -= 1for i in range(1, a+1): # 算除數(shù)result_1 *= iresult = result_2/result_1return result # 完成?終于對了
總結
以上是生活随笔為你收集整理的python简单实现排列和组合的计算的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 什么是面向对象
- 下一篇: linux强行删除损坏的mysql
