迭代法是用于求方程或方程组近似根的一种常用的算法设计方法.设方程为,用某种数学方法到处等价的形式,然后按以下步骤执行:
(1)选一个方程的近似根,赋给变量;
(2)将的值保存于变量,然后计算,并将结果存于变量;
(3)当与的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算.若方程有根,则按上述方法求得的就认为是方程的根.试用迭代法求某个数的平方根,用流程图和伪代码表示问题的算法.
未知数的个数多余方程个数的方程(组)叫做不定方程,最早提出不定方程的是我国的《九章算术》.实际生活中有很多不定方程的例子,例如“百鸡问题”:公元五世纪末,我国古代数学家张丘建在《算经》中提出了“百鸡问题”:“鸡母一,值钱三;鸡翁一,值钱二;鸡雏二,值钱一.百钱买百鸡,问鸡翁、母、雏各几何?”
算法设计:
(1)设母鸡、公鸡、小鸡数分别为、、,则应满足如下条件:
;.
(2)先分析一下三个变量的可能值.①的最小值可能为零,若全部钱用来买母鸡,最多只能买33只,
故的值为中的整数.②的最小值为零,最大值为50.③的最小值为零,最大值为100.
(3)对、、三个未知数来说,取值范围最少.为提高程序的效率,先考虑对的值进行一一列举.
(4)在固定一个的值的前提下,再对值进行一一列举.
(5)对于每个,,怎样去寻找满足百年买百鸡条件的.由于,值已设定,便可由下式得到:.
(6)这时的,,是一组可能解,它只满足“百鸡”条件,还未满足“百钱”.是否真实解,还要看它们是否满足,满足即为所求解.
根据上述算法思想,画出流程图并用伪代码表示.
用近似公式求自然数的数值,取(愈大,愈接近的真值),设计一算法,用伪代码表示.
意大利数学家斐波那契,在1202年出版的一本书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所剩小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子?试画出解决此问题的程序框图,并编写相应的程序.
已知次多项式,如果在一种算法中,计算()的值需要次乘法,计算的值共需要9次运算(6次乘法,3次加法),那么计算的值共需要 次运算.下面给出一种减少运算次数的算法:,(,1,2,…,).利用该算法,计算的值共需要6次运算,计算的值共需要 次运算.
下列伪代码输出的结果是 .