函数pow(x,y)实现运算x^y,即x的y次方,这里x和y都为整数. 算法的基本思想是,减少乘法次数,重复利用结算结果,例如: x^4,如果逐个相乘的话,需要四次乘法.如果我们这样分解(x^2)*(x^2)就只需要2两次乘法,因为x^2的结果我们可以重复利用.所以我们最好做对称的分解指数y,然后求x^(y/2)的平方. 具体算法如下: 1 如果y为偶数,直接计算mypow(x, y/2)*mypow(x, y/2): 2 如果y为奇数,则y-1为偶数,回到了第一种情况. int mypow(i…
编年史 1951 – Regional Assembly Language 1952 – Autocode 1954 – IPL (LISP语言的祖先) 1955 – FLOW-MATIC (COBOL语言的祖先) 1957 – FORTRAN (第一个编译型语言) 1957 – COMTRAN (COBOL语言的祖先) 1958 – LISP 1958 – ALGOL 58 1959 – FACT (COBOL语言的祖先) 1959 – COBOL 1959 – RPG 1962 – APL …
我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? 虽然有可能你平时没有想过这个问题,不过正所谓是“临阵磨枪,不快也光”,你“眉头一皱,计上心来”,这个不是太简单了嘛,用二分的方法,在一个区间中,每次拿中间数的平方来试验,如果大了,就再试左区间的中间数:如果小了,就再拿右区间的中间数来试.比如求sqrt(16)的结果,你先试(0+16)/2=8,8*8=…
小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: 返回值 注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据3. 返回值和正常的函数⼀样, 可以是任意数据类型 # def fang(x): # return x**2 # # # ret = fang(5) # # print(ret…
atan2(y,x): 函数atan2(y, x)是4象限反正切,求的是y/x的反正切,其返回值为[-π,+π]之间的一个数.它的取值不仅取决于正切值y/x,还取决于点 (x, y) 落入哪个象限: 当点(x, y) 落入第一象限时,atan2(y, x)的范围是 0 ~ π/2; 当点(x, y) 落入第二象限时,atan2(y, x)的范围是 π/2 ~ π; 当点(x, y) 落入第三象限时,atan2(y, x)的范围是 -π--π/2; 当点(x, y) 落入第四象限时,atan2(y…
STL区间成员函数及区间算法总结 在这里总结下可替代循环的区间成员函数和区间算法: 相比单元素遍历操作,使用区间成员函数的优势在于: 1)更少的函数调用 2)更少的元素移动 3)更少的内存分配 在区间成员函数不适用的情况下也应该使用区间算法,至少,相比手写循环而言,它更加简单,有效,并且不容易出错: 区间成员函数 区间构造 标准容器都支持区间构造函数: container::container(InputIterator begin, // 区间的起点 InputIterator end); /…
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 传入函数 函数的本身也可以作为参数. Python内建的mapreduce的函数.(来源于谷歌的,后来被道格这家伙开源了,成为当今处理大数据最火热的hadoop中的计算模型---MapReduce) 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序…
1.函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73.1 s1 = 3.14 * r1 * r1 s2 = 3.14 * r2 * r2 s3 = 3.14 * r3 * r3 当代码出现有规律的重复的时候,你就需要当心了,每次写3.14 * x * x不仅很麻烦,而且,如果要把3.14改成3.14159265359的时候,得全部替换. 有了函数…
一.函数的参数1.位置参数2.默认参数 n就是默认参数 def power(x,n=2): s=1 while n > 0: n = n - 1 s = s * x return s 默认参数有个坑,就是 默认参数要设置为 不可变对象,[str和None]3.可变参数一般情况下 def calc(numbers): s=1 for n in numbers s=s+n*n return s 调用时需要把参数写成list或者tuple >>>calc([1,2,3,4]) 这样子就不…
lambda匿名函数(函数名统一都叫lambda) 为了解决简单的需求而设计的一句话函数 语法: lambda 参数 返回值 n = lambda a,b: max(a,b) ret = n(9,4) print(ret) 注意: 函数的参数可以有多个,多个参数之间用逗号隔开 匿名函数只能写一行 返回值和正常的函数一样,可以是任意数据类型 sorted( )排序函数 语法 sorted(iterable,key=None,reverse=Flase) lst = [1,2,3,4,5,9,4,8…