» Poradna » Programy

Excel (Calc) skládání celků z částí s co nejmenším zbytkem (Dlužníček)

 | Microsoft Windows 10 Chrome 60.0.3112.91

Ahojte,předně se omlouvám za šílený název, zkusím vysvětlit:Mám několik lidí, co platili určité výdaje ve skupině a chci spočítat, jak by si měli předat peníze při co nejmenším počtu transakcí.Dostal jsem se k tabulce, kde ve sloupci A mám jména (řekněme písmena A..H) a v druhém sloupci počet peněz, které by měli dostat (kladné číslo) nebo zaplatit (záporné číslo). Součet čísel ve sloupci B=0.https://ctrlv.cz/czxeNapadla mě tabulka, kde bych zkoušel všechny kombinace a počítal velikost zbytku, ale to by s počtem účastníků narůstalo do nepříjemných rozměrů.Nevíte třeba, jak se tento problém jmenuje? Určitě to už někdo řešil, problém je, že nevím, co hledat.Díky.

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Android Chrome 33.0

Kazdy kdo dluzi tak zaplati na hromadu a z te hromady se daji penize tem co jsou v plusu. Co chcete porovnavat? Kdyz mate 10 lidi tak to bude 10 transakci.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 65.0

Zapomněl jsem uvést, že transakce je možná vždy jen mezi dvěma lidmi. (Samozřejmě v reálu se to dá řešit hromadou, mně jde ale o návrh algoritmu.)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Firefox 52.0

Co treba vsichni dluznici to daji napr. nejvetsimu dluznikovy a pak uz jen rozdelovat a zacit od nejvyssi sumy. To my pripada nejednodusi. Druha moznost je. Nejmensi dluznik da penize nejvetsimu investorovy tak pokracovat dokud investor nebude na nule, nebo se nestane dluznik. A porad dokola. Docela me to zaujalo a zkusila jsem to udelet v C# nic sloziteho a pocet transakci zalezelo na poctu dluzniku a investoru a na castkach. Spis bych ale volila druhou variantu, zadny dluznik by nedostal velky balik penez :~)

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 66.0.3359.33

Kromě toho co vám poradili jiní .. si prostě stáhněte aplikaci do mobilu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 65.0

Díky, ale aplikaci nechci. Jde mi o návrh toho algoritmu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 66.0.3359.33

no tak si algoritmus navrhnete ... na tom neni nic tak tezkeho ... 1) suma kapitalu / poctem ucastniku = vysledna castka kterou ma kazdy mit2) seradit od nejbohatsiho po nejmensiho3) a pak jen berete rozdily a kontrolujete vyslednou castku ... jak ? na to uz snad prijdete sam ne?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 59.0

Nejlépe tak, jak píše výše Roman S: peníze na hromadu a z té hromady vyplatit.Pokud bys nebyl spokojenej, můžeš to udělat takto:- setřídíš kladné i záporné částky dle velikosti- od největší kladné částky budeš postupně odpočítávat ty největší mínusové částky- až dojdeš u první kladné částky na 0, přejdeš na další a postup opakuješ až do úplného vynulování

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 65.0

Diky, přesně na takový postup s odčítáním jsem došel taky. Jenže ten nefunguje vždy. Např: 10, 10, - 7, -7, -3, -3Tady mám jednu transakci navíc. Dnes jsem na to neměl čas, ale řekl bych, že je to něco jako problém obchodního cestujícího...

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Edge 16.16299

SKusil by som spravit priemer sumy ,potom najbližšie hodnoty vynulovat ..

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 59.0.3071.112

Teda tohle zadání mi připadá jako jedena z variant z NP-úplných problémů. Teď je otázka zda musíš dosáhnout toho absolutně nejmenšího počtu transakcí, nebo zda ti stačí nějaké optimální řešení, kde těch transakcí bude celkem málo, ale nemusí to být nejnižší počet. Ovšem bude to celkem jednoduché na nalezení řešení kdo komu má kolik poslat.Každopádně řešit tohle v Excelu je podle mě hrůznost a moc to nepůjde.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 66.0.3359.45

hele vzhledem k tomu, že nevíš jak rozdílné částky můžou být, a chlapec se ptá na algoritmus, tak jde přece o to vypočítat tu limitu počtu matematických operací potřebných k pokrytí jakéhokoliv scénáře ... akorát těch cest jak toho dosáhnout je několik ... očividně to má za úkol do školy a je prostě línej přemýšlet

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Skládání, Calc, Kladné číslo, Záporné číslo