分享总结python小算法(列表筛选法求质数和猴子选大王问题)

时间:2022-03-22 18:43:01

首先,编程初步阶段,需要积累和勤加练习的梳理下:

1,该语言的基础语法体系和知识点反复求证演练,并要知其然且知其所以然。基础知识是后边学习的关键基石,必须扎实,死记硬背是不行的,不能深入理解就不能灵活运用,因此要反复演练,多问为什么这么做,深究所以然让你更懂该语言,更了解创作者的初衷和想法。

2,基础算法反复推敲,尤其经典算法题需要反复推敲,把经典思维模式掌握,因为很多大型较难理解的算法都是建立在经典算法的基础之上,或有相似之处。

     反复练习多写课后习题,用一题多解来要求自己,多练习写代码,锻炼自己思路,日久便思路更加清晰透彻。

     接下来,首先,我要多整理python的知识体系和知识要点。用思维导图结合课堂笔记加深记忆,并对比python核心编程2及其习题练习反推加深理论知识体系的建立。

     然后,借用C语言经典算法100例,用python也整理一套python经典算法100例,锻炼自己的基础算法思维。

往后的任务是艰巨的,编程的框架思维,数学算法的应用,结合互联网和大数据加紧步入AI领域。


****下来进入主题,积累经典算法的python编写:

最近遇到的习题,学习了相关的冒泡算法和选择算法排序,自己编写的:

1,利用筛选法求质数:

     (输入一个整数n,求概数是否为质数。思路:定义一个长度为n的bool列表,表示输入n的所有因子,True表示非整除因子,False表示整除因子,依次判断,若遇到可以整除的因子标记其为False,最后判断bool列表中是否有False判断输入数是否为质数)

n = int(input('请输入一个整数:'))
a = [True]*n
for i in range(2,n):
    if n%i ==0:
        a[i-1]=False       #i为第几个bool值,i-1则代表对应的列表元素的下标
        print('此时列表中False处是可以被整除的因子:\n',a)
if False in a:
    print(n,'不是质数')
else:
    print(n,'是质数')


2,猴子选大王问题:

  15只猴子围城一个圈报数,报到7淘汰报7的该猴子,其他猴子继续报数,直到剩下最后一只猴子则奉为猴子大王!

a =[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]  #15只猴子按编号排序组成一个列表
while 1:
    for i in range(6):
        a.append(a[0])
        del a[0]
        if i==5:
            print('hello,del:',a[0])
            del a[0]
    if len(a)==1:
        print('猴子大王是:',a[0],'号')
        break