要求公式 - 如果可能的话

时间:2011-06-07 05:09:12

标签: java algorithm math

我正在编写一个用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是”等等“。

显然数学不是我的强项,甚至可能是公式?

谢谢!

3 个答案:

答案 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来找到感觉。

  1. 基本上你想在x,y和N之间找到correlation。有许多算法可以确定线性相关,如Linear regression

  2. 除非你在基本不同的机器上运行,比如一台机器是客户端WInXP而另一台是Linux机箱,我不认为你需要深入研究这个问题,因为其他小事情可能会克服时间(例如系统上运行的其他进程)