当我试图解一个方程时,python只使用整数

2024-04-24 06:01:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个新项目,它就像一个数学网站。我正试图创建一个程序,将解决方程。你知道吗

例如,当我用cd2来做任何事情时,它都不像用cd2来做的那样简单。我相信这个python代码不能处理小数。你知道吗

在下面输入代码

import math 

def solve():
 x = -1000
 while x < 1001:
 if x**2 + 1 == 4:
  print("x = " + str(x))
 x += 1

solve()

我希望输出是1.73205080757-1.73205080757。 但是我什么也没有得到(因为它找不到答案)。你知道吗


Tags: 项目代码import程序网站def数学math
3条回答

这将只检查从x=-1000到x=1000的整数值,即它将询问答案是-1000吗?不,答案是-999吗?没有等,永远不要尝试1.7或1.73或1.73。。。!答案是一个浮点而不是整数,因此编写的方法不可能得到它。你需要不断重复更接近的答案。这是一个数学算法设计的问题我想,你可以先查一下数学公式如何近似二次解(可能是17世纪的一些数学家做的公式!),然后尝试将此公式转换为Python。如果你不知道float,int,“duck typing”在Python中的区别,试试google这个也可以帮你。你知道吗

您期待的答案介于1和2之间。从-1000开始递增1。所以你将从-1000到0到1到2到3…跳过你期望的答案。你知道吗

您应该使用类似于:https://en.wikipedia.org/wiki/Newton%27s_method

(带浮点数,即x=1.0

查看代码,最小步长是1(x增加了x += 1),因此x只能是整数。没有这样的整数可以完全填充你的条件x**2 + 1 == 4

相关问题 更多 >