我正在编写一个用Java编写的系统工具,基本上,它在t0开始一个任务,并在N秒内完成。因为我预计这个工具可以在不同的机器上运行,所以执行任务的时间会有所不同。
因此,在此工具启动之前,它需要进行一次性校准,以便能够准确预测任务完成所需的时间(“准确”,如1至3秒即可)。
基本上我有x和y的测量值,在N秒内完成......
x y N Seconds ------------------------------------------------------------ 1.0 15 5.54 1.5 15 3.64 2.0 15 2.73 1.0 35 12.7 1.5 35 8.44 2.0 35 6.23 1.0 55 19.9 1.5 55 13.8 2.0 55 10.3
鉴于上述测量结果,我是否可以推导出一个神奇的公式:“如果任务要在15秒内完成,那么x必须是”等等“,而y是”等等“。
显然数学不是我的强项,甚至可能是公式?
谢谢!
答案 0 :(得分:6)
从问题中的数据开始,看起来这个函数是一个相当不错的近似值。
z = y / (x * 2.67)
例如,对于x = 1.5和y = 15,它给出3.74,对于x = 1.0和y = 55,它给出20.6。
你有两个自由参数,所以如果你想说,z = 15,那么你可以替换并获得y或x的估计值。如果不了解其中一个,你就无法真正了解另一个。
15 = y / (x * 2.67)
15 / (x * 2.67) = y
y = 5.83 / x
x = 5.83 / y
答案 1 :(得分:0)
如果只需要表中的值,只需使用该表即可。如果你需要更多,你必须使用一些函数插值方法来获得公式,例如polynomial interpolation
答案 2 :(得分:0)
如果任务要在15完成 秒,然后x必须是“blah”和y 是“等等”
对于上述内容,可能会有解决方案。但是,如果给出y和N,它会找到x来找到感觉。
基本上你想在x,y和N之间找到correlation。有许多算法可以确定线性相关,如Linear regression。
除非你在基本不同的机器上运行,比如一台机器是客户端WInXP而另一台是Linux机箱,我不认为你需要深入研究这个问题,因为其他小事情可能会克服时间(例如系统上运行的其他进程)