
28-12-15, 09:41
|
| Όνομα: Γιώργος Έκδοση λογισμικού Office: Ms-Office 2010 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 18-06-2010
Μηνύματα: 3.674
| |
Χρόνια πολλά
Δες μια λύση στο συνημμένο.
Στη λύση υπέθεσα ότι στους μαθητές δίνονται μόνο ολόκληρα μήλα.
Αυτό δημιουργεί κάποια προβλήματα:
1) Αν υποθέσουμε ότι οι μαθητές είναι N και τα μήλα που μοιράστηκαν αρχικά S, κάθε μαθητής δικαιούται S/N μήλα.
Επειδή μπορεί να δοθούν μόνο ολόκληρα μήλα, κάθε μαθητής θα πάρει αρχικά D μήλα, όπου D είναι το ακέραιο πηλίκο S/N (D=INT(S/D) και θα περισσέψουν Y μήλα, όπου Y είναι το υπόλοιπο της ακέραιας διαίρεσης (Y=MOD(S;N)=S-D*N)
Τα Y μήλα που περισσεύουν θα δοθούν από 1 σε Y μαθητές, τυχαία.
Για το σκοπό αυτό δημιουργήθηκε η συνάρτηση rndKatanomi.
2) Ας υποθέσουμε ότι τα μήλα που θα επιστέψει κάθε ευνοημένος μαθητής (λαμβάνοντας υπόψη και τη δυνατότητα μετά το φάγωμα) είναι di, το άθροισμά τους Sd (Sd=Σdi, i=1..N), αυτά που θα έπρεπε να λάβει κάθε αδικημένος pi και το άθροισμά τους Sp (Sp=Σpi, i=1..N).
Κάθε αδικημένος μαθητής θα πρέπει να λάβει, θεωρητικά,xi=Sd*pi/Sp.
Επειδή μοιράζονται ολόκληρα μήλα, κάθε αδικημένος θα πάρει αρχικά ai, όπου ai είναι το ακέραιο μέρος του xi (ai=INT(xi)).
Αν Sa είναι το άθροισμα των ai (Sa=Σai, i=1..N), η διαφορά K=Sd-Sa είναι τα μήλα που θα μείνουν για μοίρασμα, σε μια δεύτερη κατανομή.
Τα K μήλα δίνονται από 1 στους K μαθητές με τα μεγαλύτερα δεκαδικά υπόλοιπα (xi-ai).
Για το σκοπό αυτό δημιουργήθηκε η συνάρτηση IDMax().
Περισσότερα στο συνημμένο.
Φιλικά/Γιώργος
|