Здравствуйте.
У меня есть две реализации построения интерполяционного полинома Ньютона, одна на С++ - которая работает, а другая на Ruby - которая ведёт себя некорректно. Помогите разобраться, в чём принципиальная ошибка реализации на Ruby.
Помимо уже указанных другим ответчиком повсеместных ошибок о границах циклов:
C++:
y_val[i] = F(j);
j += 1.0 / (n - 1);
Ruby:
table[i] = {x: i/n.to_f, y: f(i/n.to_f)}
Очевидно, считаются совершенно разные вещи.
Возможно итерации лишние делает, там в С часть циклов 0..n, а часть 0..(n-1), например:
for (int k = 0; k < i; k++)
for k in 0..i do
Когда должно быть:
for k in 0..(i-1) do
Там в нескольких местах такое несоответствие.
Продвижение своими сайтами как стратегия роста и независимости