《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q17)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~

在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6)

Q17 挑战 30 人 31 足
    有个电视节目,全国各地的小学生在这个节目里参加“30人31足”竞赛。下面探讨一下什么样的排列顺序在“30人31足”比赛里比较有利。多个女生连续排列,体力上会处于劣势,所以原则是尽量不让女生相邻(男生可以连续排列)。

问题
    求 30 个人排成一排时,一共有多少种有利的排列方式?假设这里只考虑男女的排列情况,不考虑具体某个人的位置。举个例子,4 个人(4人 5 足)的情况下如图所示,共有8 种排列方式。

                                              

total_number = 30

last_boy_pattern = 1
last_girl_pattern = 1
for number in range(1, total_number):
    new_girl_pattern = last_boy_pattern
    last_boy_pattern = last_boy_pattern + last_girl_pattern
    last_girl_pattern = new_girl_pattern

print("有%s种有利的排列方式" % (last_girl_pattern+last_boy_pattern))

 运行结果:

                 有2178309种有利的排列方式

猜你喜欢

转载自blog.csdn.net/cloudly89/article/details/84846329