Ciao a tutti,
sono un programmatore abbastanza noob e mi sto cimentando in qualcosa di troppo complesso per me, tanto che non so come fare. Spero che qualche geniaccio mi dia una mano perché non capisco proprio quale calcolo o logica possa portarmi al risultato finale.
In parole facili sto cercando di assegnare dei bonus a delle persone in maniera equa, ma ho delle limitazioni che non riesco a codificare.
Sto cercando di scrivere un programma a riga di comando (il linguaggio di per sé non è importante) che faccia quanto segue. (Semplifico la descrizione per farvi capire cosa vorrei fare e per facilità)
Gli input sono: dato un numero n di importi e il loro valore importo. Date un numero di persone, facciamo 10 (p1, p2, p3 eccetera).
Ogni importo viene diviso in 3 categorie, ognuna delle quali è uguale a una parte dell'importo.
A = 21%*importo
B = 33%*importo
C = 46%*importo
In ognuna di queste categorie vanno inserite da 1 a 5 persone di modo che possano spartirsi la quota dell'importo della categoria. Ogni persona può essere inserita in più categorie (ma solo una volta per categoria).
Lo scopo del programma sarebbe calcolare quali e quante persone inserire in ogni categoria di ogni importo affinché tutte le persone ricevano una cifra simile (o il più simile possibile)
Considerate che in teoria il numero di categorie sarebbe 28 e il numero di persone altissimo, ma ho descritto uno schema più semplice per facilitare la cosa altrimenti diventava troppo complesso anche discuterne.
Se non avessi le categorie sarebbe facile:
quota_persona = tot_valore_importi / num_importi / num_persone
Ma da qui non so andare avanti. Avete delle idee in merito a come fare? Qual è secondo voi la matematica o un algoritmo efficace per questa forma di "bilanciamento" equo? Non so proprio come districarmi.