2012-04-13 2 views
1

Ich habe eine Menge $9558.99, die ich zwischen 4 Personen teilen muss: 40%, 40%, 10%, 10%. (Dies ist nur ein Beispiel, wo das Problem Oberflächen)Geld Bruchteil zwischen Menschen und Fraktionen von Penny?

Wenn ich den Bruch berechnen, bekomme ich die folgenden Ergebnisse, die alle Fraktionen von einem Penny enthalten, was nicht gut ist, denn offensichtlich kann ich nicht eine Person eine halbe geben Penny.

40% $3823.5960 
40% $3823.5960 
10% $955.8990 
10% $955.8990 
SUM $9558.99 

Wenn ich aufrunden ich einen Cent über:

40% $3823.60 
40% $3823.60 
10% $955.90 
10% $955.90 
SUM $9559.00 <-- 1 penny over 

Wenn ich abrunden I 3 erhalten Pfennig weniger (wieder keine Überraschung):

40% $3823.59 
40% $3823.59 
10% $955.89 
10% $955.89 
SUM $9558.96 <-- 3 pennies under 

Also meine Frage ist Was wäre der richtige Ansatz, um den Betrag auf der Grundlage der Prozentsätze gerecht zu verteilen?

EDIT: Dies ist möglicherweise keine Programmierfrage per se, aber ich denke, es ist sowieso mit einem Programmierer verwandt.

+3

Mehr bekommt als alles, was das ist eine Frage der Mathematik, keine Programmiersprache Frage. Als solches - es ist off-topic. – Oded

+0

Versuchen Sie, diese Frage hier zu veröffentlichen: http://math.stackexchange.com/ –

+0

warum nicht abrunden und die restlichen Pfennige für sich behalten (Büroraumart): D – scibuff

Antwort

3

Aufrunden und subtrahieren Sie die überschüssigen Penny (s) nach dem Zufallsprinzip.

Um zufällig zu subtrahieren, wählen Sie n zufällige Leute, wo n = Anzahl der übrig gebliebenen Penny (s).

Intuitiv glaube ich, dass n in diesem Szenario nicht größer als 3 sein wird.

(Alternativ, runden Sie die restlichen Pennies ab und verteilen Sie sie nach dem Zufallsprinzip).

+0

Ich habe dies als Antwort markiert, weil es in Bezug auf Fairness Sinn macht. Allerdings ist das beste, was IMHO als einige in den Kommentaren auf die Frage hingewiesen ist, fragen Sie Ihren Buchhalter angesichts der Kontext der Domain. –

1

Welche Rundungsmethode Sie verwenden, jemand wird verlieren.

Hier ist ein Alternativvorschlag

Person A 40% des gesamten bekommt - rund um nächsten Cent.
Person B bekommt 40/60 von dem, was übrig ist - Runde zum nächsten Penny.
Person C bekommt 10/20 von dem, was übrig ist - Runde zum nächsten Penny.
Person D bekommt, was übrig ist.

A erhält 3823,60 $
B bekommt $ 3.828,59
C $ 955,90
bekommt D $ 955,90