1

Edit1:更改了问题以适应指导方针。我已经问过这个问题,但由于含糊不清而被删除。重写问题以使其更清楚。

我的目标是相互比较大约 6000 个数字并找到匹配/最接近的一对。但是没有一个数字是相等的,并且有误差/容差。

我的起始条件是两个数据块分别保存在两个数组中。数据块 [A] 是理论计算数字的数字。数据块 [B] 是实测值。[B] 是对象的实际测量值,应尽可能接近 [A](测量误差)。我必须找到匹配的 Bn 的 Am 。

[A] 的每个数字都比前一个数字高 X 或 Y。X 和 Y 都是可能的,因此之后会显示类似“树”的结构(对于比较过程并不重要)。[B] 中的每个数字都有测量误差,X 和 Y 的每个“加法”都有 1.1% 的几率降低 1%。这意味着在更高的数字范围内,与理论数字 [A] 的偏移量将变得更大。B_n 与 [A] (A_m) 数的最接近的拟合应该被链接/突出显示/以某种方式记住。

我的想法是计算一个 [B] (B_n) 和每个 [A] 数量之间的差异/偏移量。应记住具有最低偏移量的对,并且还应保存偏移量。

这看起来像这样(仍然不是代码,只是一个概念):

z=1
loop {
    offset1 = B_n – A_m
    offset2 = B_n – A_m+z
    is offset1 lower than offset2?
       Yes: z=z+1;
       No:  offset1 = offset2;
            memorize m
}

是否有它自己的功能/它是否类似/以不同的方式执行相同的结果?比较数字并返回最接近的一对。这种方法有效吗?

附带信息:编程语言 = C // 数字数据块 = 两个长度为 3000 及以上的数组 // 数字范围:~100.000001 到 ~100,001.000001 //

4

0 回答 0