C ++比较两个值,找到最接近用户输入值的值

时间:2013-06-21 01:43:37

标签: c++

我一直在寻找互联网上一段时间来找到问题的解决方案。首先是一些背景。我正在写一个计算弹射轨迹的程序。用户必须先键入一段距离。然后我循环通过角度和速度的组合来找出哪个组合将给出最接近用户输入的距离。我不太清楚如何进行变量比较以找出度和速度的哪种组合产生最接近用户输入距离的距离。我只是想尽可能简单易行。另外,我没有使用任何类型的数组来存储值。如果可能的话,我想在我的for循环中动态完成它。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

嗯,答案取决于你的轨迹公式的复杂性。我猜你没有考虑流体动力学或重力差异。事实上,我想象的是你正在使用一个基本的抛物线方程......

可以通过重新排列直接解决该等式。但事实是,你正在解决两个实际上是共同依赖的变量。如果允许角度和速度变化,则有无限的解决方案,因此您需要通过某些标准(例如,所需的角度或所需的速度)来限制“最佳”答案。

如果你有更多的变量,如升力,阻力,旋转,入射形状,非恒定重力,气压和湿度,那么你需要采用一种非平凡的最小化算法。 Nelder-Mead算法是最基本的,但有点不稳定的。

如果这还不够有用,您应该提供有关您的问题的更多信息,并显示一些代码。