Λογότυπο ήδη-έτερον

Μέθοδος Διαίρει και Βασίλευε ➗👑

Σε μια κατασκήνωση, μια ομάδα 13 παιδιών αποφασίζει να παίξει το παιχνίδι «βρες το δαχτυλίδι». Το παιχνίδι λειτουργεί ως εξής:

  1. Ένα παιδί (Παιδί-1) δίνει ένα δαχτυλίδι στα υπόλοιπα 12 και το ένα από τα παιδιά το κρύβει.
  2. Όλα τα παιδιά κάθονται σε μια γραμμή.
  3. Το Παιδί-1 πρέπει να βρει σε ποιο παιδί βρίσκεται το δαχτυλίδι, με τις εξής ερωτήσεις:
    • Αν το δαχτυλίδι βρίσκεται στο πρώτο ή δεύτερο «μισό» της γραμμής.
    • Η διαδικασία επαναλαμβάνεται έως ότου μείνουν δύο παιδιά, όπου το ένα έχει το δαχτυλίδι.

Αυτό το παιχνίδι αντιπροσωπεύει τη μέθοδο Διαίρει και Βασίλευε (divide and conquer), που χρησιμοποιείται για να αναλυθεί ένα πρόβλημα σε μικρότερα υποπροβλήματα.

👩‍🎓 👩‍🎓 👩‍🎓 💍 👩‍🎓 👩‍🎓 | 👩‍🎓 👩‍🎓 👩‍🎓 👩‍🎓 👩‍🎓 👩‍🎓
👩‍🎓 👩‍🎓 👩‍🎓 | 💍 👩‍🎓 👩‍🎓
💍  👩‍🎓 | 👩‍🎓
💍 | 👩‍🎓
💍 

🎯 Βασικές Αρχές της Μεθόδου:

  • Το πρόβλημα χωρίζεται σταδιακά σε μικρότερα κομμάτια, μέχρι να φτάσουμε σε ένα υποπρόβλημα που λύνεται εύκολα.
  • Η προσέγγιση αυτή λέγεται top-down.

👨‍💻 Παράδειγμα Αλγορίθμου: Μάντεψε τον αριθμό

ΠΡΟΓΡΑΜΜΑ μάντεψε_τον_αριθμό
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: προσ, αρχη_, τελος, μεση, απαντηση
  ΛΟΓΙΚΕΣ: βρεθηκε
  ΧΑΡΑΚΤΗΡΕΣ: απ
ΑΡΧΗ
  ΓΡΑΨΕ 'Σκέψου έναν ακέραιο αριθμό από το 1 μέχρι το 100'
  ΓΡΑΨΕ 'και θα τον μαντέψω το πολύ σε 7 προσπάθειες'
  ΓΡΑΨΕ 'αρκεί να απαντάς ειλικρινά στις ερωτήσεις μου: '

  αρχη_ <- 1
  τελος <- 100
  προσ<- 0
  βρεθηκε <- ΨΕΥΔΗΣ

  ΟΣΟ αρχη_ <= τελος ΚΑΙ βρεθηκε = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
    προσ<- προσ+ 1
    μεση <- (αρχη_ + τελος) div 2
    ΓΡΑΨΕ 'Προσπάθεια', προς, 'Ν'
    ΓΡΑΨΕ 'Είναι ο αριθμός', μεση, ';'
    ΓΡΑΨΕ 'Δώσε Ν(ΝΑΙ) ή Ο(ΟΧΙ):'

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΔΙΑΒΑΣΕ απ
      ΑΝ απ = 'Ν' ΚΑΙ απ/'ν' ΚΑΙ απ/'O' ΚΑΙ απ/'o' ΤΟΤΕ
        ΓΡΑΨΕ 'Λάθος απάντηση. Ξαναπροσπάθησε...'
      ΤΕΛΟΣ_ΑΝ
    ΜΕΧΡΙΣ_ΟΤΟΥ απ = 'Ν' ή απ = 'ν' ή απ = 'Ο' ή απ = 'o'

    ΑΝ απ = 'Ν' ή απ = 'ν' ΤΟΤΕ
      βρεθηκε <- ΑΛΗΘΗΣ
      ΓΡΑΨΕ 'Τον βρήκα σε', προς, 'προσπάθειες/ες...'
    ΑΛΛΙΩΣ
      ΓΡΑΨΕ 'Ο αριθμός που έβαλες είναι '
      ΓΡΑΨΕ '(1)μεγαλύτερος ή (2)μικρότερος;'
      ΓΡΑΨΕ 'Δώσε απάντηση 1 ή 2:'
      ΔΙΑΒΑΣΕ απαντηση
      ΑΝ απαντηση = 1 ΤΟΤΕ
        αρχη_ <- μεση + 1
      ΑΛΛΙΩΣ
        τελος <- μεση - 1
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΑΝ

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ΑΝ προσ> 7 ή αρχη_ > τελος ΤΟΤΕ
    ΓΡΑΨΕ 'Δε βρήκα τον αριθμό σε 7 προσπάθειες'
    ΓΡΑΨΕ 'Γιατί δεν είπες ειλικρινά ή'
    ΓΡΑΨΕ 'έκανες κάτι λάθος στη διαδικασία'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ μάντεψε_τον_αριθμό

🎮 Επεξήγηση του Αλγορίθμου:

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

Ο Ευκλείδης λειτουργεί μέσω τεχνητής νοημσύνης