利用Python解答排列组合问题,,遇到一个如下的排列组


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

技术分享图片

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

利用Python解答排列组合问题

评论关闭