Διαδρομές
/
Tcl
Tcl
/
Ασκήσεις
/
Γρίφος της ζέβρας
Γρίφος της ζέβρας

Γρίφος της ζέβρας

Δύσκολο

Εισαγωγή

Ο Γρίφος της Ζέβρας είναι ένας διάσημος γρίφος λογικής, στον οποίο υπάρχουν πέντε σπίτια, καθένα βαμμένο με διαφορετικό χρώμα. Τα σπίτια έχουν διαφορετικούς κατοίκους, οι οποίοι έχουν διαφορετικές εθνικότητες, διαφορετικά κατοικίδια, πίνουν διαφορετικά ποτά και απολαμβάνουν διαφορετικά χόμπι.

Για να σε βοηθήσουμε να λύσεις τον γρίφο, σου δίνονται 15 προτάσεις που περιγράφουν τη λύση. Ωστόσο, μόνο αν συνδυάσεις τις πληροφορίες από όλες τις προτάσεις θα μπορέσεις να βρεις τη λύση του γρίφου.

Note

Ο Γρίφος της Ζέβρας είναι ένα πρόβλημα ικανοποίησης περιορισμών (CSP). Σε ένα τέτοιο πρόβλημα, έχεις ένα σύνολο από πιθανές τιμές και ένα σύνολο από περιορισμούς που καθορίζουν ποιες τιμές είναι έγκυρες. Ένα άλλο γνωστό CSP είναι το Sudoku.

Οδηγίες

Ο στόχος σου είναι να λύσεις το Παζλ της Ζέβρας, για να βρεις τις απαντήσεις σε αυτές τις δύο ερωτήσεις:

  • Ποιος από τους κατοίκους πίνει νερό;
  • Ποιος έχει τη ζέβρα;

Παζλ

Για τις παρακάτω 15 προτάσεις γνωρίζουμε πως είναι όλες αληθείς:

  1. Υπάρχουν πέντε σπίτια.
  2. Ο Άγγλος μένει στο κόκκινο σπίτι.
  3. Ο Ισπανός έχει τον σκύλο.
  4. Το άτομο στο πράσινο σπίτι πίνει καφέ.
  5. Ο Ουκρανός πίνει τσάι.
  6. Το πράσινο σπίτι βρίσκεται αμέσως δεξιά από το σπίτι του ελεφαντοστού.
  7. Στον ιδιοκτήτη του σαλιγκαριού αρέσει να πηγαίνει για χορό.
  8. Το άτομο στο κίτρινο σπίτι είναι ζωγράφος.
  9. Το άτομο στο μεσαίο σπίτι πίνει γάλα.
  10. Ο Νορβηγός μένει στο πρώτο σπίτι.
  11. Αυτός που απολαμβάνει το διάβασμα μένει στο σπίτι δίπλα στο άτομο με την αλεπού.
  12. Το σπίτι του ζωγράφου είναι δίπλα στο σπίτι με το άλογο.
  13. Το άτομο που παίζει ποδόσφαιρο πίνει χυμό πορτοκαλί.
  14. Ο Ιάπωνας παίζει σκάκι.
  15. Ο Νορβηγός μένει δίπλα στο μπλε σπίτι.

Επιπλέον, καθένα από τα πέντε σπίτια είναι βαμμένο με διαφορετικό χρώμα, και οι κάτοικοί τους έχουν διαφορετική εθνικότητα, έχουν διαφορετικά κατοικίδια, πίνουν διαφορετικά ροφήματα και ασχολούνται με διαφορετικά χόμπι.

Note

Υπάρχουν 24 δισεκατομμύρια (5!⁵ = 24.883.200.000) πιθανές λύσεις, οπότε προσπάθησε να αποκλείσεις όσο το δυνατόν περισσότερες λύσεις.

Πακέτα Tcl

Αυτή είναι η πρώτη άσκηση που περιλαμβάνει ένα έτοιμο πακέτο. Πρόσεξε την παρουσία του αρχείου pkgIndex.tcl και τη συμπερίληψη του τρέχοντος καταλόγου στη μεταβλητή auto_path. Αυτά επιτρέπουν στην εντολή package require να βρει το αρχείο πηγαίου κώδικα του πακέτου.

Αυτό δεν είναι ένα ιδιαίτερα καλογραμμένο πακέτο: είναι απλώς κώδικας που έχει δανειστεί από διάφορες πηγές. Η κλήση interp alias έχει σκοπό να κρύψει τα ελαττώματα και να κάνει το πακέτο permutations πιο εύκολο στη χρήση.

Αναφορές:


Πηγή

WikipediaΟ σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Tcl Exercism

Έτοιμος να ξεκινήσεις την άσκηση Γρίφος της ζέβρας;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Tcl με 135 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.

Αναλυτική ματιά στο Γρίφος της ζέβρας!

Εξερεύνησε 8 διαφορετικούς τρόπους για να βρεις τη λύση του Γρίφου της Ζέβρας ανάμεσα σε 24 δισεκατομμύρια πιθανές λύσεις, όπως το να αγνοείς τις άκυρες μεταθέσεις όσο το δυνατόν νωρίτερα, τον αλγόριθμο AC-3, μια ιδιαίτερα συνοπτική λύση βασισμένη στη λογική και ακόμη και έναν γενετικό αλγόριθμο!