Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужен алгоритм следующей функции... [Delphi, Windows]


Kutuzov ©   (2002-04-22 15:37:00) 

На вход функции подается: Y, A1..An, где 1..n - индексы.
Причём А1>A2; A2>A3...A(n-1)>An.
На выходе функции: Z, B1..Bn, где 1..n - индексы.
Сама функция: Y=A1*B1+A2*B2+...+A(n-1)*B(n-1)+An*Bn+Z.
Причём вариантов ответа у этой функции много и необходимо выбрать следующий: Z, B1..Bn - должны быть минимальны!!!
Все числа Y, Z, A1..An, B1..Bn - целые!!!
Примечание: Написать с конкретным количеством n получается, а вот с неизвестным заранее n незнаю как!!!


Chris   (2002-04-24 13:56:00) [1]

Насчет математики не подскажу, а по поводу n могу предложить такой вариант:
Используй не статический массив, а динамический:
var massiv: array of record
A, B: integer;
end;

инициализация массива
setlength(massiv,0);

увеличение массива на 1 элемент
setlength(massiv,high(massiv)+2);

уменьшение массива на 1 элемент
setlength(massiv,high(massiv));

запись в последний элемент
massiv[high(massiv)].A:=1;
massiv[high(massiv)].B:=2;


Наверх

Титульная страница Поиск, карта сайта Написать письмо