《程序员的算法趣题》-(日)增井敏克 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种有利的排列方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值