python算法(一)

一、求数x的因子

  

 x=100
divisors=()#初始化空的元组
for i in range(1,x):
if x%i==0:
divisors=divisors+(i,)
print divisors

二、求数x各个数位之和

 sumdigits=0
for c in str(1952):
sumdigits +=int(c)
print sumdigits
print sumdigits

三、鸡兔同笼以及变形

  1.有鸡兔两种,共有x个头,y只脚,求解鸡兔各有几只?

 def slove(num_heads,num_legs):
for chicken_num in range(0,num_heads+1):
pig_num =num_heads-chicken_num
top_legs=pig_num*4+chicken_num*2
if top_legs==num_legs:
return [chicken_num,pig_num]
return [None,None] def barnYard():
heads=int(raw_input("Enter the number of heads: "))
legs=int (raw_input("Enter the number of legs: "))
chicken,pig=slove(heads,legs)
if chicken==None:
print "不可解"
else:
print "the number of chicken is:",chicken
print "the number of pig is:",pig barnYard()

2.有鸡兔,蜘蛛一共三种,共有x个头,y只脚,求解鸡兔,蜘蛛各有几只?

 def slove1(num_heads,num_legs):
for spider_num in range(0,num_heads+1):
for chicken_num in range(0,num_heads-spider_num):
pig_num =num_heads-chicken_num-spider_num
top_legs=pig_num*4+chicken_num*2+spider_num*8
if top_legs==num_legs:
return [chicken_num,pig_num,spider_num]
return [None,None,None] def barnYard1():
heads=int(raw_input("Enter the number of heads: "))
legs=int (raw_input("Enter the number of legs: "))
chicken,pig,spider=slove1(heads,legs)
if chicken==None:
print "不可解"
else:
print "the number of chicken is:",chicken
print "the number of pig is:",pig
print "the number of spider is",spider barnYard1()

3.2中的问题或许不只有一个解答,依次输出符合要求的解答

 def slove2(num_heads,num_legs):
solutionFound=False
for spider_num in range(0,num_heads+1):
for chicken_num in range(0,num_heads-spider_num):
pig_num =num_heads-chicken_num-spider_num
top_legs=pig_num*4+chicken_num*2+spider_num*8
if top_legs==num_legs:
print "the number of chicken is:", chicken_num
print "the number of pig is:", pig_num
print "the number of spider is", spider_num
solutionFound=True
if not solutionFound:
print "不可解" def barnYard2():
heads=int(raw_input("Enter the number of heads: "))
legs=int (raw_input("Enter the number of legs: "))
slove2(heads,legs) barnYard2()

四、递归判断字符串是否为回文

解法一:

 def isPlalindrome(s):
if len(s)<=1:
return True
else :
return s[0]==s[-1] and isPlalindrome(s[1:-1])

解法二:

 def isPlalindrome1(s,indent):
print indent, 'hisPalindromel called with', s
if 1 >= len(s):
print indent, 'About to return True from base case',s
return True
else:
ans= s[0] == s[-1] and isPlalindrome1(s[1:-1], indent + indent)
print indent, 'About to return ',ans
return ans isPlalindrome1("abccba",1)

五、斐波那契数列

 def fib(x):
sum=1;
if x==1 or x==0:
return 1;
else:
return fib(x-1)+fib(x-2) print fib(4)

六、求数x平方根

1.二分法求解

 def squrtRootBi(x,epsilon):
assert x>=0,"x must be positive"+str(x)
assert epsilon>0,"epsilon must be positive"+str(epsilon)
low=0
#high=x
high=max(x,1.0)
guess=(low+high)/2.0
ctr=1
while abs(guess**2-x)>epsilon and ctr<=100:
#print "low",low,"high",high,"guess",guess
if guess**2<x:
low=guess
else:
high=guess
guess=(low+high)/2.0
ctr+=1
assert ctr<=100,"not perfect square number!"
print "times of Iteration:",ctr," guess",guess
return guess def testBi():
squrtRootBi(4,0.0001)
squrtRootBi(2, 0.0001)
squrtRootBi(0.25, 0.0001) testBi()

2.牛顿迭代法求解

 def squrtRootNR(x,epsilon):
assert x >= 0, "x must be positive" + str(x)
assert epsilon > 0, "epsilon must be positive" + str(epsilon)
x=float(x)
guess=x/2.0
#guess=0.001
diff=guess**2-x
ctr=1
while abs(diff)>epsilon and ctr<=100:
# print "error",diff,"guess",guess
guess=guess-diff/(2.0*guess)
diff=guess**2-x
ctr+=1
assert ctr <= 100, "not perfect square number!"
print "times of Iteration:", ctr, " guess", guess
return guess def testBi1():
squrtRootNR(4,0.0001)
squrtRootNR(2, 0.0001)
squrtRootNR(0.25, 0.0001) testBi1()

python算法(一)的更多相关文章

  1. 安装Python算法库

    安装Python算法库 主要包括用NumPy和SciPy来处理数据,用Matplotlib来实现数据可视化.为了适应处理大规模数据的需求,python在此基础上开发了Scikit-Learn机器学习算 ...

  2. Python算法与数据结构--求所有子数组的和的最大值

    Python算法与数据结构--求所有子数组的和的最大值 玄魂工作室-玄魂 玄魂工作室秘书 玄魂工作室 昨天 题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个 ...

  3. Python算法:推导、递归和规约

    Python算法:推导.递归和规约 注:本节中我给定下面三个重要词汇的中文翻译分别是:Induction(推导).Recursion(递归)和Reduction(规约) 本节主要介绍算法设计的三个核心 ...

  4. Python算法(含源代码下载)

    关键字:Python Algorithms Python算法  Mastering Basic Algorithms in the Python Language 使用Python语言掌握基本算法 P ...

  5. python算法题 python123网站单元四题目

    目录 一:二分法求平方根 二:Collatz猜想 三:算24(只考虑满足,不考虑把所有情况找出来)   下面向大家介绍几个python算法题. 一:二分法求平方根 1.题目要求为 2.输入输出格式为 ...

  6. python算法介绍:希尔排序

    python作为一种新的语言,在很多功能自然要比Java要好一些,也容易让人接受,而且不管您是成年人还是少儿都可以学习这个语言,今天就为大家来分享一个python算法教程之希尔排序,现在我们就来看看吧 ...

  7. Java && Python 算法面试常用类以及方法总结

    数据结构 逻辑结构上: 包括集合,线性结构,非线性结构. 存储结构: 顺序存储,链式存储,索引存储,散列存储. Java 常见数据结构 大专栏  Java && Python 算法面试 ...

  8. GitHub标星2.6万!Python算法新手入门大全

    今天推荐一个Python学习的干货. 几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万.这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各 ...

  9. python算法常用技巧与内置库

    python算法常用技巧与内置库 近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想 ...

随机推荐

  1. 必备的实用jQuery代码段(1)

    1. 如何正确地使用toggleClass: //切换(toggle)类允许你根据某个类的 //是否存在来添加或是删除该类. //这种情况下有些开发者使用: a.hasClass('blueButto ...

  2. 自用LogSystem入库分享

    .mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...

  3. java服务器获取客户端ip

    在写服务端代码时,有时需要对客户端ip做认证,比如限制只有某些ip能访问,或者1个ip1天只能访问几次.最近就碰到个需要限制ip的情况,从网上找了一些服务器获取客户端ip的方法,说的都不太完善,这里整 ...

  4. 转:Spring FactoryBean源码浅析

    http://blog.csdn.net/java2000_wl/article/details/7410714 在Spring BeanFactory容器中管理两种bean 1.标准Java Bea ...

  5. 没有苹果电脑打包iOS平台的 Ionic 2程序——《Ionic 2 实例开发》更新内容

    没有苹果电脑打包iOS平台的 Ionic 2程序--<Ionic 2 实例开发>更新内容春节刚过,祝各位新的一年里万事如意,一帆风顺.<Ionic 2 实例开发>在这段时间里更 ...

  6. 正则表达式之一:TSQL注释的查找

    最近自己做了个小项目,涉及到了大量的正则表达式匹配和处理,在这里也和大家分享一下. 我相信接触过SQL Server数据库的很多朋友都知道,它是以"--"开头来进行注释的,但你觉得 ...

  7. Dubbo源码学习--集群负载均衡算法的实现

    相关文章: Dubbo源码学习文章目录 前言 Dubbo 的定位是分布式服务框架,为了避免单点压力过大,服务的提供者通常部署多台,如何从服务提供者集群中选取一个进行调用, 就依赖Dubbo的负载均衡策 ...

  8. 蓝桥网试题 java 基础练习 01字串

    ---------------------------------------------------------------------- 还括以 0.0 --------------------- ...

  9. MongoDB基础之七 用户管理

    MongoDB的用户管理 注意:A)在mongodb中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据.即 use admin , -->相当于进入超级用户管理 ...

  10. Use Prerender to improve AngularJS SEO

    Use Prerender to improve AngularJS SEO Nuget Package of ASP.NET MVC HttpModule for prerender.io: Ins ...