我在做一个新项目,它就像一个数学网站。我正试图创建一个程序,将解决方程。你知道吗
例如,当我用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
。
但是我什么也没有得到(因为它找不到答案)。你知道吗
这将只检查从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
相关问题 更多 >
编程相关推荐