В реальных случаях ошибки никогда не сводятся к нулю, поскольку имеют тенденцию к накоплению .
Учтите, что ваша ошибка равномерно колеблется в диапазоне [-999, + 999] между всеми точками данных.Теперь мы можем суммировать эту ошибку для k
точек данных и нарисовать график err_sum = f(k)
.Тестовый код C ++:
#include <iostream>
#include <sys/random.h>
int main()
{
int i,k;
int rnd;
int err;
char buf[4];
for (k=10000; k < 1000000; k+=10000) {
err = 0;
for (i=0; i < k; i++) {
getrandom(buf, 4, 0);
rnd = *(int*)buf;
err += rnd%1000;
}
std::cout << k << "," << err << "\n";
}
return EXIT_SUCCESS;
}
Результирующий график:
Из графика видно, что сумма ошибок не сходится к нулю, так каклюбое другое значение.Он просто увеличивается с добавлением дополнительных точек данных.Кроме того, с каждым k значения более разбросаны от линейного приближения до того момента, когда поведение вряд ли можно назвать «линейным».