从给定范围中查找缺失值
Finding the missing values from a given range
如何计算特定数字范围之间的所有缺失值
其中缺失的数字等于 average of next和 previous 给定输入范围的值
例子
缺失值数量 = 2
数组:[5, ?, ?, 20]
结果:5,10,15,20
简单地做 (5+25)/4+1 即缺失值+1 给你 5 我们将其添加到我们的第一个值给出 5 10 15 20 但不适用于
等其他示例
[6,?,?,?,20](3 个缺失值)
也许你可以尝试计算你知道的第一个和最后一个数字之间的差值,例如 20-5=15,现在你只需将它除以你想要的 "steps" 个数要获得最后一个(缺失数字的数量 + 1),示例中为 15/3 = 5,现在您只需将该数量添加到每个元素即可获得下一个。
像这样:
[5, (5+5), ((5+5)+5), 20]
您可以验证它也适用于具有 3 个缺失值的第二个示例。
你的条件是每个数字等于下一个和前一个数字的平均值,你可以写成:
xi = (x i+1 + xi-1) / 2
可以很容易地重新排列为:
xi - xi-1 = xi +1 - xi
也就是说,相邻数字之间的差值都是一样的
所以这只是一个简单的线性插值。由于您已经用 C 标记了它,所以这里有一个简单的 C 函数来评估您的示例:
#include <stdio.h>
void calc_values(float start, float end, int n) {
int i;
for(i = 1; i <= n; i++)
printf("%f\n",
start + (end - start) * i / (n + 1));
}
int main()
{
calc_values(6, 20, 3);
return 0;
}
给出:
9.500000
13.000000
16.500000
如何计算特定数字范围之间的所有缺失值 其中缺失的数字等于 average of next和 previous 给定输入范围的值
例子
缺失值数量 = 2
数组:[5, ?, ?, 20]
结果:5,10,15,20
简单地做 (5+25)/4+1 即缺失值+1 给你 5 我们将其添加到我们的第一个值给出 5 10 15 20 但不适用于
等其他示例[6,?,?,?,20](3 个缺失值)
也许你可以尝试计算你知道的第一个和最后一个数字之间的差值,例如 20-5=15,现在你只需将它除以你想要的 "steps" 个数要获得最后一个(缺失数字的数量 + 1),示例中为 15/3 = 5,现在您只需将该数量添加到每个元素即可获得下一个。
像这样:
[5, (5+5), ((5+5)+5), 20]
您可以验证它也适用于具有 3 个缺失值的第二个示例。
你的条件是每个数字等于下一个和前一个数字的平均值,你可以写成:
xi = (x i+1 + xi-1) / 2
可以很容易地重新排列为:
xi - xi-1 = xi +1 - xi
也就是说,相邻数字之间的差值都是一样的
所以这只是一个简单的线性插值。由于您已经用 C 标记了它,所以这里有一个简单的 C 函数来评估您的示例:
#include <stdio.h>
void calc_values(float start, float end, int n) {
int i;
for(i = 1; i <= n; i++)
printf("%f\n",
start + (end - start) * i / (n + 1));
}
int main()
{
calc_values(6, 20, 3);
return 0;
}
给出:
9.500000
13.000000
16.500000