Πάντα νικητής;

Αυγούστου 16, 2008

Ένας χρήστης παίζει με τον υπολογιστή ως εξής:

Σε κάθε γύρο, ο χρήστης λέει έναν ακέραιο αριθμό από το 1 έως το 10 και ο υπολογιστής λέει έναν άλλο. Το παιχνίδι συνεχίζεται ώσπου όλοι οι αριθμοί που έχει πει ο χρήστης σε όλους τους γύρους να δίνουν άθροισμα με όλους τους αριθμούς που έχει πει ο υπολογιστής σε όλους τους γύρους τον αριθμό 101. Ο χρήστης και ο υπολογιστής παίζουν εναλλάξ σε κάθε γύρο. Το πλήθος των γύρων μπορεί να διαφέρει από παιχνίδι σε παιχνίδι, ανάλογα με τους αριθμούς που επιλέγει ο καθένας.

Αν για παράδειγμα στο τέλος κάποιου γύρου το άθροισμα των αριθμών που έχουν πει οι δύο παίκτες είναι 98 και ο παίκτης που παίζει πει τον αριθμό 2, ο επόμενος παίκτης είναι αναγκασμένος να επιλέξει τον αριθμό 1, ώστε το συνολικό άθροισμα να μην ξεπεράσει το 101, αν ο παίκτης πει 3 το παιχνίδι σταματά, αν πει 4 είναι άκυρη επιλογή και πρέπει να ξαναεπιλέξει αριθμό.

Πώς επιλέγεται ο νικητής:
Όταν και οι 2 παίκτες (υπολογιστής και χρήστης) έχουν πει όλους τους αριθμούς και το άθροισμα έχει φτάσει 101, υπολογίζεται το άθροισμα των αριθμών που είπε ο χρήστης (έστω sumA) και το άθροισμα των αριθμών που είπε ο υπολογιστής (έστω sumB) σε κάθε γύρο. Αν οι αριθμοί sumA και sumB είναι πρώτοι μεταξύ τους, τότε κερδίζει ο υπολογιστής. Αν όχι, κερδίζει ο χρήστης.

Η ερώτηση είναι:
Με ποιο τρόπο (αλγόριθμο) μπορεί να παιχτεί το παιχνίδι από τον υπολογιστή ώστε ο χρήστης να μην έχει καμιά ελπίδα να κερδίσει;

Σημείωση:
Δυο αριθμοί λέγονται πρώτοι μεταξύ τους όταν δεν έχουν κανένα κοινό διαιρέτη εκτός από τη μονάδα.

Λύση… (Μην κλέβετε!)
Διαβάστε την υπόλοιπη καταχώριση »

Κι άλλη μνήμη… :-P

Αυγούστου 16, 2008

Έχουμε μια ενιαία περιοχή μνήμης διαστάσεων 5×1000 (φανταστείτε ότι μοιάζει πίνακα με 5 γραμμές και 1000 στήλες) στην οποία μπορούμε να γράφουμε και να διαβάζουμε bits ένα-ένα.

Έχουμε 5 διεργασίες που κάνουν το εξής:

  • Η 1η διεργασία γράφει το bit 1 σε κάθε θέση μνήμης στην 1η γραμμή (γραμμή 0 στο σχήμα).

  • Η 2η διεργασία γράφει την ακολουθία 10000 (άσσος που ακολουθείται από 4 μηδενικά) στη 2η γραμμή συνεχόμενα ώσπου να γεμίσουν οι θέσεις μνήμης της 2ης γραμμής (γραμμή 1 στο σχήμα).

  • Η 3η διεργασία γράφει την ακολουθία 1000000 (άσσος ακολουθούμενος από 6 μηδενικά) στην 3η γραμμή στη σειρά ώσπου να γεμίσουν οι θέσεις μνήμης της 3ης γραμμής (γραμμή 2 στο σχήμα).

  • Η 4η διεργασία γράφει την ακολουθία 10000000000000000 (άσσος που ακολουθείται από 16 μηδενικά στην 4η γραμμή ώσπου να γεμίσουν οι θέσεις μνήμης της 4ης γραμμής (γραμμή 3 στο σχήμα).

  • Η 5η διεργασία γράφει την ακολουθία 1000000000000000000000 (άσσος που ακολουθείται από 22 μηδενικά στην 5η γραμμή ώσπου να γεμίσουν οι θέσεις μνήμης της 5ης γραμμής (γραμμή 4 στο σχήμα).

Ποιο είναι το συντομότερο πρόγραμμα που τυπώνει τους αριθμούς των στηλών του “πίνακα – μνήμης” που αποτελούνται μόνο από άσσους;

Παράδειγμα:

Στη μνήμη του επόμενου σχήματος η στήλη 0 είναι μια από τις ζητούμενες.

Λύση… (Μην κλέβετε!)

Διαβάστε την υπόλοιπη καταχώριση »

Η άπειρη μνήμη

Αυγούστου 16, 2008

Έστω ότι έχουμε δύο θετικούς ακέραιους αριθμούς τους a και b που είναι αρκετά μικροί σε σχέση με το χώρο που καταλαμβάνει ένας ακέραιος στη μνήμη του υπολογιστή και έναν πάρα πολύ μεγάλο ακέραιο αριθμό n (θεωρητικά άπειρο) που η ακριβής τιμή του δεν έχει μεγάλη σημασία. Ισχύουν, δηλαδή, τα εξής:

  • a,b \in R ~~ και ~~a,b\ge 0
  • n\gg 2^{256}~~ και ~~ n\rightarrow \infty

Αν στην επόμενη παράσταση οι ρίζες είναι n σε πλήθος, υπάρχει τρόπος να φτιαχτεί πρόγραμμα που να την υπολογίζει, χωρίς να προκαλεί υπερχείλιση και να εκτελείται σε πεπερασμένο χρόνο; Ναι ή όχι και γιατί;

\sqrt{a+b\sqrt{a+b\sqrt{a+b\sqrt{a+...}}}}

Λύση… (Μην κλέβετε!)

Διαβάστε την υπόλοιπη καταχώριση »

Quiz

Ιουλίου 6, 2007

Όποτε διαβάζω τα posts μου απελπίζομαι… Πρέπει να γράψω και κάτι με ουσία!!
Αποφάσισα να κάνω post τα quiz που έβαλα στο #c/c++!!
Μπορεί εκεί να μην είχαν και μεγάλη απείχηση,
αλλά εδώ αν κάποτε κάποιος που δεν έχει τι να κάνει…
μπορεί και να καθίσει να τα λύσει… :-P

Βήμα 1ο:.. έφτιαξα την κατηγορία Quiz που θα τα φιλοξενήσει!!

Βήμα 2ο:.. πάω για ύπνο!! zzzZZZZzzzzzz!!!!!
Από αύριο θα αρχίσει το ανέβασμα των Quiz!!

Καληνύχτα!!