猜谜游戏

下面是一个简单的演示程序,展示了如何使用用户输入和while循环。该程序实现了一个简单的猜谜游戏,在这个游戏中,用户必须猜测一个介于1到100之间的秘密数字。

#简单猜谜游戏秘密= 22打印(“我想1和100之间的数字。”)猜=输入(“输入你猜:”)猜= int(猜)数= 1而猜! =秘密和计数< 5:如果想<秘密:打印(“你猜是太低了。”):打印(“你猜太高了。”)数=计数+ 1猜=输入(“输入你猜:”)猜= int(猜)如果猜= =秘密:打印(“正确!”)其他:打印(“对不起,密码”+ str(秘密)

牛顿法

牛顿法是求函数根的一种方法。给定一个可微函数f(x)我们想找到f的一个根,也就是x的一个值使得f(x) = 0。

该方法包括以下步骤:

  1. 选一个点x0接近词根。找到对应的点(x0 , fx0在曲线上。
  2. 在该点上画出曲线的切线,看它与x轴的交点。
  3. 过境点,x1,是你的下一个猜测。从该点开始重复该过程,直到您满意地接近根为止。

数学细节

我们选一个点

(x0, f (x0))

求出该点处的切线方程。切线在这一点的斜率是

切线有一般形式

这条线在y = 0时与x轴相交。

为了重复这个过程,我们只需要将点x1输入到上一个公式中来生成根的下一个近似值

每次我们生成另一个近似值时,我们都可以通过简单地将其代回函数f来轻松地测试该近似值与根的接近程度。一旦|f(xn)|低于预设容差,我们就可以停止迭代。

程序

下面是一个Python程序的代码,该程序使用牛顿方法查找函数的根

F (x) = x4 + 2x3 - 14x2 + 2x + 1

这个函数在0.4附近有一个正的实根。为了找到这个根,我们将写一个函数,它使用函数f(x)及其导数的牛顿迭代

来计算多项式fx),fx)更有效率,我们将使用一个特殊的技巧叫做霍纳氏法则求多项式的值。你知道霍纳法则是怎么运作的吗?

#程序的根f (x) = x ^ 4 + 2 x ^ 3 - 14 x ^ 2 + 2由牛顿法x = x + 1 #输入(“输入一个起始猜根:“)x = (x)外汇浮动= (((x + 2) * x-14) * x + 2) * x + 1公差= 10 e-6外汇外汇> <)或公差:#计算f (x) fpx = ((4 * x + 6) * x-28) * x + 2 #做一个轮牛顿法x = x - fx / fpx fx = (((x + 2) * x-14) * x + 2) * x + 1打印(“根估计”+ str (x))