• python中一些算法数列


    斐波那契数列:

     1 def fn(n):
     2     if n==1:
     3         return 1
     4     elif n==2:
     5         return 1
     6     else:
     7         return fn(n-1)+fn(n-2)
     8 
     9 for i in range(1,10):
    10     print(fn(i))

     python实现输出黑白棋盘:

    1 for i in range(1,11):
    2     for j in range(1,11):
    3         if (i+j)%2==0:
    4             print('',end='')
    5         else:
    6             print('', end='')
    7     print('
    ')

    输出由1,2,3,4 这四个数字组成的每位数都不相同的 所有三位数

    1 list1 = [1,2,3,4]
    2 
    3 for i in list1:
    4     for k in list1:
    5         for j in list1:
    6             if i != k and k != j and i != j:
    7                 print(i*100+k*10+j)

     python 实现冒泡排序

     1 import random
     2 
     3 def bubbleSort(lis):
     4     length = len(lis)
     5     for i in range(0,length):        #下标为0,1,2,3,4,5     
     6         for j in range(i+1,length):  #下标为1,2,3,4,5,6
     7             if lis[i] > lis[j]:    #相邻的两位数进行比较
     8                 lis[j],lis[i] = lis[i],lis[j]      #进行数据交换
     9 
    10 lis = [random.randint(1,100) for i in range(20)]  #随机生成长度为20的 列表
    11 bubbleSort(lis)

     python 实现二分法查找

    l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]

    你观察这个列表,这是不是一个从小到大排序的 有序 列表呀?

    如果这样,假如我要找的数比列表中间的数还大,是不是我直接在列表的后半边找就行了?

    l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
    def find2(l, num, start=0, end=None):
        end = end if end else len(l) - 1        #程序执行开始先找列表中间值的下标
        mid = (end-start)//2 + start        #计算列表中间值得下标
        if start > end:               #如果满足这个条件,则说明查找一遍无法找到匹配的结果
            print('找不到')
        elif l[mid] > num:             #如果被查找的数没有中间的数字大,则递归调用自身从列表的左边开始比较,注意end的值
            find2(l, num, end=mid)    
        elif l[mid] < num:             #如果被查找的数比中间的数字大,则递归调用自身从列表的右边开始查找,开始位置是中间值下标+1,末尾下标还是末尾的下标
            find2(l, num, start=mid+1, end=end)
        else:                     #条件都不符合  则说明已找到 该值得下标  
            print('找到啦', mid)

    find2(l,88) #比如找88的下标

    请证明 一个偶数是两个素数的和

    def su(n):
        for i in range(2,n//2+1):
            if n%i == 0:
                return False
        else:
            return True
    
    if __name__ == '__main__':
        while True:
            n =int(input('please input a num'))
            if n%2 == 0:
                break
    
        for i in range(2,n//2+1):
            if su(i) and su(n-i):
                print(i,'+',n-i,'=',n)
  • 相关阅读:
    彭明辉教授-《研究生完全求生手册》
    使用npm创建一个命令行工具
    #!/usr/bin/python与#!/usr/bin/env python的区别
    使用node+express搭建第一个node后端项目
    使用npm创建一个程序库包
    多项式多点求值
    2. 两数相加
    CSS实现子元素自动充满父元素的剩余空间
    侧边导航栏滚动条---CSS overflow实现
    Asp.NET Core简介
  • 原文地址:https://www.cnblogs.com/lvye001/p/9898274.html
Copyright © 2020-2023  润新知