Μόλις αποφοίτησες από το πανεπιστήμιο και διοργανώνεις ένα τεράστιο πάρτι για να γιορτάσεις με φίλους και οικογένεια. Πάνω από 70 άτομα έχουν έρθει, ανάμεσά τους και ο ελαφρώς εκκεντρικός θείος σου ο Ted.
Σε ένα από τα συνηθισμένα του καμώματα, σου βάζει στοίχημα 100 λίρες ότι τουλάχιστον δύο άτομα στον χώρο έχουν τα ίδια γενέθλια. Αυτό ακούγεται γελοίο, αφού υπάρχουν πολύ περισσότερες πιθανές ημερομηνίες γενεθλίων απ' ό,τι καλεσμένοι, οπότε το δέχεσαι με σιγουριά.
Προς μεγάλη σου έκπληξη, αφού συγκέντρωσες τα γενέθλια μόλις 32 καλεσμένων, έχεις ήδη βρει δύο καλεσμένους που έχουν τα ίδια γενέθλια. Παραδέχεσαι την ήττα σου και δίνεις στον θείο Ted τις 100 λίρες, αλλά κάτι δεν πάει καλά.
Την επόμενη μέρα, η περιέργεια σε νικά. Μια γρήγορη αναζήτηση στο διαδίκτυο σε οδηγεί στο παράδοξο των γενεθλίων, το οποίο αποκαλύπτει ότι με μόλις 23 άτομα, η πιθανότητα να έχουν δύο άτομα τα ίδια γενέθλια ξεπερνά το 50%.
Αχά. Γι' αυτό λοιπόν ήταν τόσο σίγουρος ο θείος Ted.
Αποφασισμένος να αντιστρέψεις την κατάσταση, αρχίζεις να ψάχνεις άλλα παράδοξα. Την επόμενη φορά, εσύ θα είσαι αυτός που θα βάζει τα στοιχήματα.
Το παράδοξο των γενεθλίων είναι ένα αληθές παράδοξο: παρόλο που φαίνεται λάθος, στην πραγματικότητα ισχύει.
Το καθήκον σου είναι να εκτιμήσεις τις πιθανότητες του παραδόξου των γενεθλίων.
Για να το κάνεις αυτό, πρέπει να:
Μια ημερομηνία γέννησης περιλαμβάνει την πλήρη ημερομηνία γέννησης (έτος, μήνα και ημέρα), ενώ τα γενέθλια αναφέρονται μόνο στον μήνα και την ημέρα, που επαναλαμβάνονται κάθε χρόνο. Δύο ημερομηνίες γέννησης με τον ίδιο μήνα και την ίδια ημέρα αντιστοιχούν στα ίδια γενέθλια.
Το παράδοξο των γενεθλίων προϋποθέτει ότι:
Η υλοποίησή σου πρέπει να ακολουθεί αυτές τις προϋποθέσεις.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις PHP με 11 έννοιες121 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.