比较两个值,找出最接近用户输入的值

C++ comparing two value to find which is closest to user input value

本文关键字:最接近 用户 输入 两个 比较      更新时间:2023-10-16

我一直在网上寻找一段时间来找到解决我的问题的方法。首先介绍一下背景。我在写一个计算弹射器轨迹的程序。用户必须先在一定距离内输入。然后,我循环遍历角度和速度的组合,以找出哪个组合将给出最接近用户输入的距离。我不太知道如何进行变量比较来找出哪个角度和速度的组合产生的距离最接近用户输入的距离。我只是想让它尽可能的简单和容易。此外,我没有使用任何类型的数组来存储值。如果可能的话,我希望在for循环中即时完成它。有什么建议吗?

这个问题的答案取决于你的轨迹公式的复杂性。我猜你没有考虑流体动力学或重力差。事实上,我认为你在用一个基本的抛物线方程…

这个方程可以通过重新排列直接求解。但问题是,你解的是两个相互依赖的变量。如果你允许角度和速度同时变化,就会有无限的解决方案,所以你需要用一些标准来限制"最佳"答案(例如,期望的角度或期望的速度)。

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

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