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

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]

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

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

346d1f2ff77eb8a5d04e0ad5e135fee8.png

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中MRO算法吗?

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

你真的理解Python中MRO算法吗?&lbrack;转&rsqb;

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

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

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

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

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

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

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

python中的迭代、生成器等等

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

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

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

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

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

python常见排序算法解析

python——常见排序算法解析   算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法 ...

随机推荐

公网&comma;专用&comma;共享独立IP介绍

什么是IP地址? IP地址也被称为InternetProtocol地址,IP地址被用于在互联网上确定不同的计算机和设备.你可以认为它像一个邮寄信封一个家庭返回地址,只在数字和时间使用.IP地址被用于在 ...

有损FLV视频的画面宽高比修改方案

问题背景: 需要向网站上发布一条视频新闻,就是新闻只有一段视频.上面给的是一个FLV的视频,大小接近200M,差不多200分钟吧.本来觉得很简单的事,直接上传发布就完了,但是一波三折啊……第一轮上传时 ...

ID3DXMesh接口 创建自己的立方体网格

D3DXCreateMeshFVF 首先创建一个ID3DXMesh接口. ID3DXMesh接口的说明可以参数龙书. 这里主要是用代码来讲解: #define VERTEX_FVF (D3DFVF_X ...

Css基础-id选择器

id 选择器以#来定义

Hello css

#pid { color:red; }

PAT 1027 Colors in Mars

1027 Colors in Mars (20 分)   People in Mars represent the colors in their computers in a similar way ...

Video Timing Controller v6&period;1软件调试记录

Video Timing Controller v6.1软件调试记录 GUI配置: . case XVTC_VMODE_PAL: //576i@50 { TimingPtr->Interlace ...

idea关于tab的设置

新手使用,一不小心tab显示在右面了,这不学习下给搞正常点. settings===>Editor=====>Editor Tabs; Palacement设置的是tab显示的部位: Ta ...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值