Mając n liczb (zbiór A), ktore ze sobą mnożymy:
A={1, 2, 3, 4, ..., n}
i wartosc definiowaną jako wartosc MAX, potrzebuje zapisać najmniejszy możliwy multizbiór iloczynów wartości ze zbioru A taki, zeby był mniejszy od MAX.
Dla danych:
A={1, 2, 3, 4, 5, 6, 7}
MAX=100
interesujący mnie multizbior będzie wyglądał tak:
{6*7*2, 5*4*3} = {84, 60} // chyba, być może da się lepiej
84<100; 60<100
Jak może wyglądac algorytm wyznaczający taki multizbior? Dodam, ze element n zbioru A jest sumą (n-1)+1, czyli te elementy występują w porządku rosnącym, od 1, z różnicą 1. Każdy element ze zbioru A musimy wykorzystać dokładnie jeden raz.
Generalnie chodzi o to, ze mam bardzo dużą liczbe i zamiast mnożyc ją *2 i poźniej *3, to lepiej pomnożyc raz *6 (przykład).