Hoi,
Op Thu 19 Feb 2009 om 05:32:51 +0100 schreef Mark van Dijk:
> 
<knip>
> Ik reken nu steeds uit wat iedereen aan iedereen moet betalen, trek dan weer
> bedragen van elkaar af en nu lopen sommige mensen elkaar 50 cent over te maken.
> Beetje onpraktisch, kan vast handiger. Maar goed, "I'm a reader not a
> calculator"....
> 
> Zulke dingen zijn in openoffice te maken, of misschien als een script. Als we
> pythonisten hebben die zoiets in python kunnen schrijven zou het me meteen
> helpen met m'n eigen skills.
> 
> Anyway, hulp gewenst, alvast bedankt.

een sortering van schulden/toegoeden is bijvoorbeeld:

piet  +50
henk  +10
kees  -10
jan   -10
klaas -40
      ---
        0

Hier een programma in een soort van pseudo-code.  Ik geloof dat dit
doet wat je wilt.

--------

while er zijn uitstaande schulden  (lijst is niet leeg)
do
 noteer betaling: grootste schuldenaar betaalt aan grootste vorderaar
 verwerk nieuwe stand
done

voer genoteerde betalingen uit

----------

Bij verwerken nieuwe stand geldt: als de schuld van de grootste schuldenaar
niet gelijk was aan de vordering van de grootste vorderaar, dan heeft 1 van hen
nog een restant en blijft die in de lijst zitten.

de conditie "er zijn uitstaande schulden" kun je implementeren als: het
associatieve array (bv ( piet -> +50, henk -> +10, klaas -> -60 )) is niet
leeg.

HTH, Groeten,

Joost

PS: ik geloof dat je vraag (en mijn antwoord dus ook) off topic zijn.  Mijn
excuses aan de lijst.



