妹妹们坐船头,哥哥们岸上走

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了妹妹们坐船头,哥哥们岸上走相关的知识,希望对你有一定的参考价值。

0 引言

你是不是还在为“当我们排成一个队列需要每隔几人找出一个人来”而烦恼,在生活中我们想要解决这类问题的话,过程是比较繁琐的,那如果我们使用Python程序直接找出需要的人的编号,是不是事半功倍呢?

1 问题

30个人在一条船上,超载,需要15人下船。于是人们排成一队,排队的位置即为他们的编号。报数,从1开始,数到9的人下船。如此循环,直到船上仅剩15人为止,问都有哪些编号的人下船了呢?

2 方法

此题的实际意义是指当船上的人大于15时就让第九个人下船,直到船上只有15个人即可。因此我们可以先将船上的30人存入列表people中,然后定义一个空白列表down。使用while循环结构,当people列表的元素大于15时即len(people)>15,将列表中的第8个元素people[8]添加到dowm列表中,然后将前8个people[:8]放在people[9:]后面(此处使用切片),继续寻找下一个第9人,最后返回列表down。

3 实验结果与讨论

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

def f():
   people = list(range(1,31))
   down = []
   while len(people)>15:
       down.append(people[8])
       people = people[9:] + people[:8]
   return down
print(f())

4 结语

针对下船问题,提出类似环形链表构造数据的方法,通过实际大量实验,证明该方法是有效的,在实验中,我们常常会思考为什么会需要解决这个问题,实际意义是什么,但其实在学习的过程中,学到的不仅仅是这个代码,更多学到的是怎么去解决问题,也是实际工作素养的提升和有效的锻炼。因此,在学习过程中,更应该注重思考。

以上是关于妹妹们坐船头,哥哥们岸上走的主要内容,如果未能解决你的问题,请参考以下文章

哥哥王天皓妹妹王天啥呢

人才网的一个抓取,初学python,希望哥哥姐姐们多指导,多批评

怎样在网页中调用.exe文件,请各位哥哥们帮个忙,谢谢

EUREKA科学馆

一部日本动漫。说一对很像的兄妹,本应做王的哥哥死了,妹妹假扮哥哥的。。前面大概是这样 那动漫叫什麽?

努力蜕变 拒绝平凡——尚学堂JavaEE爆满开班