斐波那契数列:

 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实现输出黑白棋盘:

 for i in range(1,11):
for j in range(1,11):
if (i+j)%2==0:
print('■',end='')
else:
print('□', end='')
print('\n')

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

 list1 = [1,2,3,4]

 for i in list1:
for k in list1:
for j in list1:
if i != k and k != j and i != j:
print(i*100+k*10+j)

 python 实现冒泡排序

 import random

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

python中一些算法数列的更多相关文章

  1. 【转】你真的理解Python中MRO算法吗?

    你真的理解Python中MRO算法吗? MRO(Method Resolution Order):方法解析顺序. Python语言包含了很多优秀的特性,其中多重继承就是其中之一,但是多重继承会引发很多 ...

  2. 你真的理解Python中MRO算法吗?[转]

    [前言] MRO(Method Resolution Order):方法解析顺序.Python语言包含了很多优秀的特性,其中多重继承就是其中之一,但是多重继承会引发很多问题,比如二义性,Python中 ...

  3. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,“你学过数据结构吗?”我略略点一点头 ...

  4. Python 一网打尽<排序算法>之堆排序算法中的树

    本文从树数据结构说到二叉堆数据结构,再使用二叉堆的有序性对无序数列排序. 1. 树 树是最基本的数据结构,可以用树映射现实世界中一对多的群体关系.如公司的组织结构.网页中标签之间的关系.操作系统中文件 ...

  5. 窥探算法之美妙——寻找数组中最小的K个数&python中巧用最大堆

    原文发表在我的博客主页,转载请注明出处 前言 不论是小算法或者大系统,堆一直是某种场景下程序员比较亲睐的数据结构,而在python中,由于数据结构的极其灵活性,list,tuple, dict在很多情 ...

  6. Python中斐波那契数列的赋值逻辑

    斐波那契数列 斐波那契数列又称费氏数列,是数学家Leonardoda Fibonacci发现的.指的是0.1.1.2.3.5.8.13.21.34.······这样的数列.即从0和1开始,第n项等于第 ...

  7. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  8. python中的最最最基本语法(1)

    注意:对于我这个以前用c/c++的同学来说,可能一开始学习pyhon时有点不适应的,为什么呢?因为吧,python中,没有这玩意:{},也不用每句话才用分号分开的.python中通过缩进来分块的,一行 ...

  9. python实现排序算法 时间复杂度、稳定性分析 冒泡排序、选择排序、插入排序、希尔排序

    说到排序算法,就不得不提时间复杂度和稳定性! 其实一直对稳定性不是很理解,今天研究python实现排序算法的时候突然有了新的体会,一定要记录下来 稳定性: 稳定性指的是 当排序碰到两个相等数的时候,他 ...

随机推荐

  1. 四道腾讯的javascript面试题

    今天整理自己的文件夹时,发现了曾经面试腾讯实习生时的被问挂了的面试题,我将它们整理好了供大家借鉴.当时要求的是手写代码.汗啊,我那时弱爆了! 1,将给定数组转换为一个随机数组 Array.protot ...

  2. PHP下生成非重复的id

    PHP在多进程运行的情况下,如果不采用内存锁或者文件锁,基本没办法能解决生成唯一Id的问题.试过了静态变量.单例模式等等.查询到php里的uniqid()函数,最后还是找到了一个折中方式,虽然还是有可 ...

  3. 升级到Win10 周年更新版

    尝试过强制刷更新,但是没用,最近微软才跟我的机器推送周年更新,于是更新. 花费了些时间更新,之前网上有的那些诗句,亲眼看看还是蛮有意思的. 但是更新完了后,explorer 一直出错,有闪退(闪屏)一 ...

  4. mysql中的 函数

  5. hdu6188 Duizi and Shunzi (贪心或者dp)

    题意 有n张牌,第i张牌上的数字是a[i].我们定义 两张数字是一样的牌 为对子.我们定义 三张数字连续的牌 为顺子.我们想把这n张牌组成尽可能多的顺子和对子.请计算并输出能组成的最多的顺子和对子的数 ...

  6. php安装memcache

    php扩展memcache的作用是为了支持memcached数据库缓存服务器,下面是安装方法. 1.下载并解压memcache文件 1 2 3 wget -c http://pecl.php.net/ ...

  7. mysql 主键

    什么是主键 表中的每一行都应该具有可以唯一标识自己的一列(或一组列).而这个承担标识作用的列称为主键. 任何列都可以作为主键,只要它满足以下条件: • 任何两行都不具有相同的主键值.就是说这列的值都是 ...

  8. 为什么要有http响应码

    其实还是比较容易理解的.这就和你去小卖部买东西一样,老板,我想要一袋大米,那老板先得回答有还是没有,还是说我们这没有,去其它地方买去吧,得先给个说法,这个说法就是http相应码,有了http响应码之后 ...

  9. NUMA微架构

    NUMA微架构 written by qingran September 8th, 2011 no comment 现在开始补日志,逐步的扫清以前写了一半的和"欠账未还的".半年之 ...

  10. 5.WHERE 子句

    WHERE 子句用于规定选择的标准. WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句. 语法 SELECT 列名称 FROM 表名称 WHERE 列 运 ...