Python求解平方根的方法

本文实例讲述了Python求解平方根的方法。分享给大家供大家参考。具体如下:

主要通过SICP的内容改写而来。基于newton method求解平方根。代码如下:

#!/usr/bin/python
def sqrt_iter(guess,x):
  if(good_enough(guess, x)):
    print guess
  else:
    sqrt_iter(improve(guess, x),x)
def improve(guess, x):
  return average(guess, x/guess)
def average(x,y):
   return (x+y)/2
def good_enough(guess,x):
  if(abs(guess * guess -x) < 0.0001):
    return True
  else:
    return False
def sqrt_oliver(x):
  sqrt_iter(1.0,x)
sqrt_oliver(5)

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • Python实现求最大公约数及判断素数的方法

    本文实例讲述了Python实现求最大公约数及判断素数的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python def showMaxFactor(num): count = num / 2 while count > 1: if num % count == 0: print 'largest factor of %d is %d' % (num, count) break #break跳出时会跳出下面的else语句 count -= 1 else: prin

  • 使用Python求解最大公约数的实现方法

    1. 欧几里德算法 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数.其计算原理依赖于下面的定理: 定理: gcd(a, b) = gcd(b, a mod b) 证明:   a可以表示成a = kb + r, 则r = a mod b   假设d是a, b的一个公约数, 则有  d|a, d|b, 而r = a - kb, 因此d|r.   因此,d是(b, a mod b)的公约数.   加上d是(b,a mod b)的公约数,则d|b, d|r, 但是a = kb + r

  • Python求算数平方根和约数的方法汇总

    一.求算术平方根 a= x=int(raw_input('Enter a number:')) if x >= : while a*a < x: a = a + if a*a != x: print x,'is not a perfect square' else: print a else: print x,'is a negative number' 二.求约数 方法一: divisor = [ ] x=int(raw_input('Enter a number:')) i= while

  • Python中利用sqrt()方法进行平方根计算的教程

    sqrt()方法返回x的平方根(x>0). 语法 以下是sqrt()方法的语法: import math math.sqrt( x ) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这是一个数值表达式. 返回值 此方法返回x的平方根,对于x>0. 例子 下面的例子显示了sqrt()方法的使用. #!/usr/bin/python import math # This will import math module pr

  • Python求解平方根的方法

    本文实例讲述了Python求解平方根的方法.分享给大家供大家参考.具体如下: 主要通过SICP的内容改写而来.基于newton method求解平方根.代码如下: #!/usr/bin/python def sqrt_iter(guess,x): if(good_enough(guess, x)): print guess else: sqrt_iter(improve(guess, x),x) def improve(guess, x): return average(guess, x/gue

  • Python基于二分查找实现求整数平方根的方法

    本文实例讲述了Python基于二分查找实现求整数平方根的方法.分享给大家供大家参考,具体如下: x=int(raw_input('please input a int:')) if x<0: retrun -1 low=0 high=x ans=(low+high)/2.0 sign=ans while ans**2 !=x: if ans**2>x: high=ans else: low=ans ans=(low+high)/2.0 if sign==ans: break print ans

  • python使用分治法实现求解最大值的方法

    本文实例讲述了python使用分治法实现求解最大值的方法.分享给大家供大家参考.具体分析如下: 题目: 给定一个顺序表,编写一个求出其最大值和最小值的分治算法. 分析: 由于顺序表的结构没有给出,作为演示分治法这里从简顺序表取一整形数组数组大小由用户定义,数据随机生成.我们知道如果数组大小为 1 则可以直接给出结果,如果大小为 2则一次比较即可得出结果,于是我们找到求解该问题的子问题即: 数组大小 <= 2.到此我们就可以进行分治运算了,只要求解的问题数组长度比 2 大就继续分治,否则求解子问题

  • python求解水仙花数的方法

    本文实例讲述了python求解水仙花数的方法.分享给大家供大家参考.具体如下: 一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数. #!/usr/bin/python def get_flower(n, ofile): D_pow=[pow(i,n) for i in range(0,10)] V_min=1*pow(10,n-1) V_max=sum((9*pow(10,x) for x in range(0,n))) T_count=0 print D

  • python/sympy求解矩阵方程的方法

    sympy版本:1.2 假设求解矩阵方程 AX=A+2X 其中 求解之前对矩阵方程化简为 (A−2E)X=A 令 B=(A−2E) 使用qtconsole输入下面程序进行求解 In [26]: from sympy import * In [27]: from sympy.abc import * In [28]: A=Matrix([[4,2,3],[1,1,0],[-1,2,3]]) In [29]: A Out[29]: Matrix([ [ 4, 2, 3], [ 1, 1, 0], [

  • python scipy求解非线性方程的方法(fsolve/root)

    使用scipy.optimize模块的root和fsolve函数进行数值求解线性及非线性方程,下面直接贴上代码,代码很简单 from scipy.integrate import odeint import numpy as np import matplotlib.pyplot as plt from scipy.optimize import root,fsolve #plt.rc('text', usetex=True) #使用latex ## 使用scipy.optimize模块的roo

  • 使用python求解迷宫问题的三种实现方法

    目录 前言 递归求解 回溯求解 队列求解 总结 前言 在迷宫问题中,给定入口和出口,要求找到路径.本文将讨论三种求解方法,递归求解.回溯求解和队列求解. 在介绍具体算法之前,先考虑将迷宫数字化.这里将迷宫用一个二维的list存储(即list嵌套在list里),将不可到达的位置用1表示,可到达的位置用0表示,并将已经到过的位置用2表示. 递归求解 递归求解的基本思路是: 每个时刻总有一个当前位置,开始时这个位置是迷宫人口. 如果当前位置就是出口,问题已解决. 否则,如果从当前位置己无路可走,当前的

  • Python复数属性和方法运算操作示例

    本文实例讲述了Python复数属性和方法运算操作.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 复数是由一个实数和一个虚数组合构成,表示为:x+yj 一个负数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分. Python语言中有关负数的概念: 1.虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数 2.复数由实数部分和虚数部分构成 3.表示虚数的语法:real+imagej 4.实数部分和虚数部分都是浮点数 5.虚数部分必须有后缀j或J 复

  • Python素数检测的方法

    本文实例讲述了Python素数检测的方法.分享给大家供大家参考.具体如下: 因子检测: 检测因子,时间复杂度O(n^(1/2)) def is_prime(n): if n < 2: return False for i in xrange(2, int(n**0.5+1)): if n%i == 0: return False return True 费马小定理: 如果n是一个素数,a是小于n的任意正整数,那么a的n次方与a模n同余 实现方法: 选择一个底数(例如2),对于大整数p,如果2^(

  • 8种用Python实现线性回归的方法对比详解

    前言 说到如何用Python执行线性回归,大部分人会立刻想到用sklearn的linear_model,但事实是,Python至少有8种执行线性回归的方法,sklearn并不是最高效的. 今天,让我们来谈谈线性回归.没错,作为数据科学界元老级的模型,线性回归几乎是所有数据科学家的入门必修课.抛开涉及大量数统的模型分析和检验不说,你真的就能熟练应用线性回归了么?未必! 在这篇文章中,文摘菌将介绍8种用Python实现线性回归的方法.了解了这8种方法,就能够根据不同需求,灵活选取最为高效的方法实现线

随机推荐