Здравствуйте.
У меня есть две реализации построения интерполяционного полинома Ньютона, одна на С++ - которая работает, а другая на 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
Там в нескольких местах такое несоответствие.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
На вход подается описание бинарного дереваНа листьях (висячих вершинах) этого дерева написаны целые числа (от -10^6 до 10^6)