码迷,mamicode.com
首页 > 编程语言 > 详细

利用Python解答排列组合问题

时间:2018-03-14 16:54:37      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:一个   应该   item   如何   blog   class   body   info   python   

 遇到一个如下的排列组合问题,没能自己计算出来,最后用Python中的排列库函数得出答案了。10位同学排序的总数应该是10!。但是加上要求任何时候车上男同学的人数都不少于女同学的人数这个条件,就不清楚如何计算了。但是可以用下面的代码计算得到。

技术分享图片

使用python3程序求得答案为A:
python中有排列组合的库combinations和permutations函数。
 
  1 from itertools import permutations
  2 res=0                      
  3 s=[1,1,1,1,1,2,2,2,2,2]   # 1 means boys, 2 menas girls   
  4 for item in permutations(s,10):
  5     for i in range(1,10):  
  6         if not item[:i].count(1)>=item[:i].count(2):
  7             break
  8     else:        
  9         res+=1            
10 print("The num is {}".format(res))
 
root@ubuntu:~# python3 permutation_girls_boys.py
The num is 604800

利用Python解答排列组合问题

标签:一个   应该   item   如何   blog   class   body   info   python   

原文地址:https://www.cnblogs.com/xieshiqing/p/Python_permutation.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!