Цитата:
Сообщение от LelikBolik
Необходимо переделать под поиск оптимальной суммы вещественных чисел с наименьшей погрешностью, хотябы до 4 знака после запятой?
|
Число 11 из чисел 2, 4, 6, например, не соберешь... не говоря про первый знак после запятой. Тут как фишка ляжет с числами
А теперь по-существу.
1. Есть число Х0 и числа х1, х2, х3...
2. Для каждого числа х1,х2,х3... рассчитываем число, назовем его, а1,а2,а3,...
Код:
var
a : array of integer;
x : array of real;
X0 : real;
i : integer;
begin
...
for i := 1 to length(x) do
a[i] := X0 div x[i];
...
3. Далее считаем выражения х1*b1+x2*b2+..., где
0 <= b1 <= a1 и т.д.. Находим наиболее приближенное.
4. Бурно радуемся по поводу полученного результата
П.С. Пункт 3 конечно можно оптимизировать, но в 2 ночи не хочу насоветовать чего-нить не того