Αποστολέας Θέμα: Δύσκολες Ασκήσεις στις Δομές Επανάληψης  (Αναγνώστηκε 31349 φορές)

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 539
  • There can be only one...may it be AEPP.
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #60 στις: 24 Ιαν 2013, 12:30:36 πμ »
Πάντως η δυσκολία σε αυτή την άσκηση δεν είναι αλγοριθμική.
Η δυσκολία είναι στο ότι οι μαθητές δεν κατανοούν τι σημαίνει αναπαράσταση και αξία ενός αριθμού.

Πολύ ωραία και πολύ δυνατή άσκηση. Δεν μπορούσα να ξεκολήσω το μυαλό μου από το να μετρήσω με μετρητή τα ψηφία του αριθμού. Ένας φίλος ήρθε και με ξεκόλησε.
Μου άρεσε πολύ ο αθροιστής.

άθροισμα ← 10* άθροισμα + αριθμός mod 10

Όμως τί γίνεται με τον κατοπτρικό του 0001234;
Γίνεται να μου βγάλει 4321000;
Δεν βλέπω να τα καταφέρνω χωρίς πίνακα.
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

ofilos13

  • Νέος
  • *
  • Μηνύματα: 2
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #61 στις: 27 Νοέ 2014, 01:11:45 μμ »
Θα μπουρουσε καποιος να μου δωσει την ακριβης λυση του παρακατω αλγοριθμου.

Σε ενα οινοπωλειο υπαρχει ενα βαρελι 500 κιλα με κοκκινο κρασι.Οι πελατες μπορουν να αγορασουν μπουκαλια του 1.5 κιλου προς 3.4 ευρω το μπουκαλι.Να γαψετε αλγοριθμο ο οποιος.

α)για καθε πελατη να ζητα ποσα μπουκαλια θελει να αγορασει
β)να εμφανιζει το κοστος της παραγγελιας
γ)να εμφανιζει τα συνολικα κιλα που απομενουν στο βαρελι μετα την αντληση καθε παραγγελιας κρασιου
δ)αν γινει καποια παραγγελια μεγαλυτερη απο το τρεχον περιεχομενο του βαρελιου τοτε να τερματιζει και να εμφανιζει
ε)τη μεγαλυτερη παραγγελια (σε μπουκαλια)που εγινε
στ)ποσα μπουκαλια πουληθηκαν
ζ) τα καθαρα εσοδα, αν ολο το κρασι ειχε αρχικο κοστος 120 ευρω

Σπύρος Δουκάκης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #62 στις: 27 Νοέ 2014, 01:35:00 μμ »
Μεθυστική άσκηση!! :)


Θα μπουρουσε καποιος να μου δωσει την ακριβης λυση του παρακατω αλγοριθμου.

Σε ενα οινοπωλειο υπαρχει ενα βαρελι 500 κιλα με κοκκινο κρασι.Οι πελατες μπορουν να αγορασουν μπουκαλια του 1.5 κιλου προς 3.4 ευρω το μπουκαλι.Να γαψετε αλγοριθμο ο οποιος.

α)για καθε πελατη να ζητα ποσα μπουκαλια θελει να αγορασει
β)να εμφανιζει το κοστος της παραγγελιας
γ)να εμφανιζει τα συνολικα κιλα που απομενουν στο βαρελι μετα την αντληση καθε παραγγελιας κρασιου
δ)αν γινει καποια παραγγελια μεγαλυτερη απο το τρεχον περιεχομενο του βαρελιου τοτε να τερματιζει και να εμφανιζει
ε)τη μεγαλυτερη παραγγελια (σε μπουκαλια)που εγινε
στ)ποσα μπουκαλια πουληθηκαν
ζ) τα καθαρα εσοδα, αν ολο το κρασι ειχε αρχικο κοστος 120 ευρω


nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 539
  • There can be only one...may it be AEPP.
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #63 στις: 17 Δεκ 2014, 11:13:45 πμ »
Για να ελέγξω αν ένας αριθμός, έστω Χ, είναι πρώτος, χρειάζομαι μια επανάληψη η οποία εξετάζει αν αυτός ο αριθμός έχει κάποιον διαιρέτη. Οπότε η επανάληψη που χρησιμοποιώ είναι
Κώδικας: [Επιλογή]
Για ι από 2 μέχρι χ div 2 Αν ο αριθμός είναι πρώτος τότε δεν θα υπάρχει κανένας διαιρέτης.

Το πρόβλημα είναι πως αν θέλω να βρω ποιοι αριθμοί στο διάστημα [1-500000], είναι πρώτοι, τότε βάζοντας ακόμη μια επανάληψη εξωτερικά ο χρόνος που απαιτείται για την εκτέλεση του αλγορίθμου, είναι τεράστιος. Δοκίμασα να απορρίψω αριθμούς οι οποίοι διαιρούνται με το 2, με το 3 με το 7 και με το 11 αλλά μάταια. Δεν έχει πέσει ο χρόνος εκτέλεσης.

Καμία ιδέα για μικρότερη πολυπλοκότητα;  :-\   
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3100
  • to Iterate is human to Recurse divine
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #64 στις: 17 Δεκ 2014, 11:44:19 πμ »
Για κάθε αριθμό να ελέγξεις μέχρι τη ρίζα.
Είναι λίγο καλύτερα και μπορείς να το αποδείξεις και να το εξηγήσεις στα παιδιά σχετικά απλά
Δεν νομίζω όμως να δεις πάλι μεγάλη διαφορά.

Αν θες κάτι πολύ γρήγορο δοκίμασε το κόσκινο του Ερατοσθένη. Αν η απαραίτητη μνήμη που διαθέτεις αρκεί είναι εξαιρετικά γρήγορο
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #65 στις: 17 Δεκ 2014, 03:46:00 μμ »
Όπως λεει και ο Ευριπίδης μπορείς να χρησιμοποιήσεις το κόσκινο του Ερατοσθένη. Πολύ ωραίος αλγόριθμος, υλοποιείται και με πίνακα λογικών μεταβλητών.
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 539
  • There can be only one...may it be AEPP.
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #66 στις: 17 Δεκ 2014, 03:52:27 μμ »
...... υλοποιείται και με πίνακα λογικών μεταβλητών.

Δεν το καταλαβαίνω αυτό το κομμάτι.
Μια βοήθεια από που να ξεκινήσω;
Ευχαριστώ.
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #67 στις: 17 Δεκ 2014, 04:44:20 μμ »
Κώδικας: [Επιλογή]
Αλγόριθμος Ερατοσθένης
Δεδομένα //Ν//
Για i από 1 μέχρι Ν
Είναι_Πρώτος[i] ← Αληθής
Τέλος_επανάληψης

όριο ← Τ_Ρ(Ν)
Για i από 2 μέχρι όριο
Αν Είναι_Πρώτος[i] τότε
Για j από i * 2 μέχρι Ν με_βήμα i
Είναι_Πρώτος[j] ← Ψευδής
Τέλος_επανάληψης
Τέλος_αν
Τέλος_επανάληψης

Για i από 1 μέχρι Ν
Αν Είναι_Πρώτος[i] τότε
Εμφάνισε i
Τέλος_αν
Τέλος_επανάληψης

Τέλος Ερατοσθένης
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 539
  • There can be only one...may it be AEPP.
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #68 στις: 18 Δεκ 2014, 10:41:15 πμ »
Κώδικας: [Επιλογή]
Αλγόριθμος Ερατοσθένης
Δεδομένα //Ν//
Για i από 1 μέχρι Ν
Είναι_Πρώτος[i] ← Αληθής
Τέλος_επανάληψης

όριο ← Τ_Ρ(Ν)
Για i από 2 μέχρι όριο
Αν Είναι_Πρώτος[i] τότε
Για j από i * 2 μέχρι Ν με_βήμα i
Είναι_Πρώτος[j] ← Ψευδής
Τέλος_επανάληψης
Τέλος_αν
Τέλος_επανάληψης

Για i από 1 μέχρι Ν
Αν Είναι_Πρώτος[i] τότε
Εμφάνισε i
Τέλος_αν
Τέλος_επανάληψης

Τέλος Ερατοσθένης
Απλά υπέροχο!!!
Ευχαριστώ.
Υποθέτω πως δεν λύνεται πιό απλά χωρίς τη χρήση πινάκων.
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2198
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #69 στις: 18 Δεκ 2014, 12:10:24 μμ »
Θα πρέπει να αποθηκεύεται η πληροφορία των πολλαπλασίων του αριθμού που είναι πρώτος (ότι δεν είναι πρώτοι) οπότε είναι υποχρεωτικός ο πίνακας
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 426
  • Real stupidity beats ΑΙ any time
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #70 στις: 18 Δεκ 2014, 12:23:16 μμ »
Θα μπορούσες επίσης να χρησιμοποιήσεις το θεώρημα του Fermat αν μπορούσαμε να παράγουμε τυχαίους αριθμούς. (Θα χάνεις βέβαια τους αριθμούς Carmichael)

pstasinos

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 44
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #71 στις: 27 Φεβ 2015, 01:09:15 πμ »
Κώδικας: [Επιλογή]
Αλγόριθμος Ερατοσθένης
Δεδομένα //Ν//
Για i από 1 μέχρι Ν
Είναι_Πρώτος[i] ← Αληθής
Τέλος_επανάληψης

όριο ← Τ_Ρ(Ν)

[/quote]


Η απάντηση μου αρέσει πάρα πολύ.Πολύ όμορφη και απλή. Μόνο μια απορία.
Μήπως στη μεταβλητή όριο έπρεπε να μπει
όριο <- Α_Μ(Τ_Ρ(Ν))


Ευχαριστώ

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #72 στις: 27 Φεβ 2015, 10:24:03 πμ »
Δεν υπάρχει πρόβλημα.
Μεταφράζεται στην αντίστοιχη

Κώδικας: [Επιλογή]
ι <- 1
Όσο ι <= Κάποιος_πραγματικός επανάλαβε
    ι <- ι + 1
Τέλος_επανάληψης

Κάποια στιγμή το ι θα ξεπεράσει τον πραγματικό. Δεν είναι απαραίτητο για το όριο να είναι ακέραιος. Δεν ξέρω αν αυτό εννοούσες.
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

pstasinos

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 44
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #73 στις: 27 Φεβ 2015, 11:13:23 μμ »
Δεν υπάρχει πρόβλημα.
Κάποια στιγμή το ι θα ξεπεράσει τον πραγματικό. Δεν είναι απαραίτητο για το όριο να είναι ακέραιος. Δεν ξέρω αν αυτό εννοούσες.

Ναι για αυτό το είπα , και έχεις δίκιο ισχύει.
Απλά στα παιδιά που το αναφέρω τους λέω πως διαγράφουμε με την γνωστή διαδικασία με το κόσκινο του Ερατοσθένη μέχρι και τον επόμενο ακέραιο του SQRT(N)
δηλαδή καλύτερα όριο <- Α_Μ(Τ_Ρ(Ν))+1
και σαφώς αυτό θα πρέπει να δίνεται ως παρατήρηση στην εκφώνηση. 

Ευχαριστώ

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 539
  • There can be only one...may it be AEPP.
Απ: Δύσκολες Ασκήσεις στις Δομές Επανάληψης
« Απάντηση #74 στις: 17 Νοέ 2015, 10:52:12 πμ »
Ωραία άσκηση από το διαδίκτυο, με μια μικρή τροποποίηση:
"Να βρεθεί το άθροισμα των 10 θετικών πρώτων αριθμών που θα συναντήσετε οι οποίοι μπορούν να διαιρεθούν ακριβώς ο καθένας τους, χωρίς να αφήνει υπόλοιπο, με όλους τους αριθμούς από το 1 μέχρι το 10."   :D

Αργώ να πάρω αποτέλεσμα στο διερμηνευτή.
Αν θέλαμε να την δυσκολέψουμε περισσότερο:
"Να υπολογιστεί και να εμφανιστεί 5ψήφιος  θετικός αριθμός ο οποίος να διαιρείται ακριβώς από τους 5 πρώτους πρώτους αριθμούς(primary). Αν δεν υπάρχει τέτοιος να βρεθεί το άθροισμα των 10 θετικών πρώτων αριθμών που θα συναντήσετε οι οποίοι μπορούν να διαιρεθούν ακριβώς ο καθένας τους, χωρίς να αφήνει υπόλοιπο, με όλους τους αριθμούς από το 1 μέχρι το 10:D :D :D

Χωρίς πίνακες εννοείται και με τη μικρότερη πολυπλοκότητα.
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής