采用两种方法进行求解面积,递归与循环

探索中发现递归的使用时间比循环的使用时间长

from typing import Callable,Union

import sys

import time

sys.setrecursionlimit(10000)

def getArea(func:Callable[[Union[int,float]],Union[int,float]],

x_start:Union[int,float],

x_end:Union[int,float],

steps:int)->Union[float]:

x1 = x_start

x2 = (x_end - x_start)/steps + x1

if (steps == 1):

return ((x_end - x_start)/steps)*(func(x_end)+func(x_end-(x_end - x_start)/steps))/2

return (x2 - x1)*(func(x2) + func(x1))/2 + getArea(func,x2,x_end,steps-1)

def get_area(func:Callable[[Union[int,float]],Union[int,float]],

x_start:Union[int,float],

x_end:Union[int,float],

steps:int)->Union[float]:

x1 = x_start

dis_x = (x_end - x_start) / steps

area = 0

for i in range(steps):

x2 = x1 + dis_x

area += (func(x2) + func(x1))*dis_x/2

x1 = x2

return area

timelabel = time.time()

for i in range(100):

getArea(lambda x:x**2,1,10,6000)

time2 = time.time() - timelabel

timelabel = time.time()

for i in range(100):

get_area(lambda x: x**2, 1, 10, 6000)

time3 = time.time() - timelabel

print("函数1的时间{0},函数2的时间{1}".format(time2,time3))

output:

函数1的时间1.067819356918335,函数2的时间0.5800333023071289

原文链接:https://blog.csdn.net/qq_29507011/article/details/104985959

python梯形公式面积_算法(一)梯形近似法求曲线面积相关推荐

  1. **python入门实战**-已知圆的半径求周长面积

    python入门实战-已知圆的半径求周长面积 输入半径计算圆的周长和面积 这边的知识点:调用math库里面的π值,以及数据类型. 下面展示一些 代码. import math p=math.pi a= ...

  2. 已知三角形三边长怎么求面积_已知三角形三边求面积的公式——海伦公式

    海伦公式又译作希伦公式.海龙公式.希罗公式.海伦-秦九韶公式,传说是古代的叙拉古国王希伦(Heron,也称海龙)二世发现的公式,是一个利用三角形的三条边长直接求三角形面积的公式.下面我们利用初中的知识 ...

  3. 计算圆环面积的c语言程序,C0610求圆环面积_C语言程序设计源代码_doc_大学课件预览_高等教育资讯网...

    #include void main() { double r2,r1,s; double area_ring (double x,double y); /*函数原型,求圆环面积*/ printf(& ...

  4. python时间序列峰值检测_算法 - 实时时间序列中的峰值信号检测d

    算法 - 实时时间序列中的峰值信号检测d 更新:迄今为止表现最佳的算法就是这个算法. 该问题探讨了用于检测实时时间序列数据中的突然峰值的稳健算法. 请考虑以下数据集: p = [1 1 1.1 1 0 ...

  5. python 货币合适_算法之Python实现 - 001 : 换钱的最少货币数

    [题目]给定数组arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求组成aim的最少货币数. [代码1]:时间与额外 ...

  6. python如何求列表中的众数_算法(LeetCode)六种方法求数组中的绝对众数

    原题来自:LEETCODE. 感谢:http://t.cn/R61A67j 定义:绝对众数就是一个数在一组数中个数超过1/2的数. 比如给你一个长度为N的整形数组: [13,12,53,12,23,3 ...

  7. python素数最优算法_几种简单的求素数算法的复杂度分析

    素数的算法有很多种,现在主要讲两种算法及其改进版本的复杂度分析,解释性能提升的幅度.同时应用一个素数定理:素数的平方一定是合数,那么在范围内最大数的开方范围内找不到能整除的数,那么这个数是素数.应用这 ...

  8. python贪心法_算法-贪心

    贪心算法也被称为贪婪算法,它是指在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优解,关键 ...

  9. python 九宫重排_算法:数字推盘游戏--重排九宫(8-puzzle)

    1 packagealgorithm;2 3 importjava.util.Comparator;4 importjava.util.PriorityQueue;5 6 /** 7 * 重排九宫,或 ...

  10. python计算矩形面积_计算和比较两个矩形面积的程序

    我必须为学校写一个程序,到目前为止,我有下面的代码,但当我试图运行它时,它说有一个错误,计算区没有被定义.在# This program will calculate and compare the ...

最新文章

  1. SCCM 2007系列7 补丁分发上
  2. 广告植入、电商导流……“变味”的线上演唱会
  3. JPA(二):HellWord工程
  4. 在服务器使用mysql_Linux服务器---使用mysql
  5. COLLEGE.sql(复制的时候注意路径!!!)
  6. [Leetcode][第96题][JAVA][不同的二叉搜索树][动态规划][数学]
  7. sendmail发送html邮件,尝试使用sendmail发送/发送html电子邮件,但显示电子邮件的源代码...
  8. linux禁用IPv6地址
  9. python加密字符串小写字母循环后错两位_Python简单加密程序:如何将Z循环回
  10. pipeline 发布war包
  11. hashmap怎么取值_HashMap?面试?我是谁?我在哪
  12. Model1和Model2区别
  13. c语言位运算测试题及答案,[原创] 位运算和bit位操作程序题目答案 -- 谭浩强C语言习题...
  14. pyqtSignal()
  15. MATLAB把型线图画静水力曲线,静水力曲线计算与绘制指导书
  16. html页面到服务器上乱码,网页乱码问题
  17. Anaconda中spyder5闪退如何解决
  18. 联邦学习(Federated Learning)
  19. 学习open62541 --- [15] 使用建模工具UaModeler
  20. 深度卷积神经网络之AlexNet

热门文章

  1. 上海名媛 -- 精致女孩的打拼生活
  2. 江在川上曰:vue-Router学习笔记
  3. 【pwnable.kr】 mistake
  4. Linux文件补全功能,Linux系统自动补全命令有哪些
  5. ansys2020视频教程
  6. 收藏的经典影视视频下载地址
  7. 韩剧Search[1992-2005]
  8. 计算机网络的概念、功能、组成和分类
  9. ADS2015导入飞思卡尔元器件模型 安装DesignKit
  10. 爱了爱了!今年最好用的手机表格制作软件!