日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python简单实现排列和组合的计算

發布時間:2023/12/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python简单实现排列和组合的计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?高中數學選修2-3中學習了排列與組合的計算方式,這里按照課本上最基本的公式用python還原下

figure.py

def arrangment(a, b): # a代表取多少元素,b代表總共多少元素"""排列"""result = 1 # 設置中間量for i in range(a): # 經典for循環,從0到a每次使中間量乘b,b再減1result *= bb -= 1return result # 輸出def combination(a, b): # 同上"""組合"""result_1 = 1result_2 = 1 # 兩個循環兩個中間量for i in range(a): # 計算排列result_2 *= bb -= 1for i in range(a): # 算除數result_1 *= iresult = result_2/result_1return result # 完成

直接嘗試

main.py

from figure import *print(arrangment(5, 5)) print(combination(5, 5))

?不出意料報錯了

?120是說排列沒問題,那么問題就出在組合了,根據報錯division by zero說明是除0了,也就是說result_1是0,是因為在循環的時候是從0到a

稍作修改

figure.py

def arrangment(a, b): # a代表取多少元素,b代表總共多少元素"""排列"""result = 1 # 設置中間量for i in range(a): # 經典for循環,從0到a每次使中間量乘b,b再減1result *= bb -= 1return result # 輸出def combination(a, b): # 同上"""組合"""result_1 = 1result_2 = 1 # 兩個循環兩個中間量for i in range(a): # 計算排列result_2 *= bb -= 1for i in range(1, a): # 算除數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): # 經典for循環,從0到a每次使中間量乘b,b再減1result *= bb -= 1return result # 輸出def combination(a, b): # 同上"""組合"""result_1 = 1result_2 = 1 # 兩個循環兩個中間量for i in range(a): # 計算排列result_2 *= bb -= 1for i in range(1, a+1): # 算除數result_1 *= iresult = result_2/result_1return result # 完成

?終于對了

總結

以上是生活随笔為你收集整理的python简单实现排列和组合的计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。