MasterMind Quiz

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

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

MasterMind Quiz

Δημοσίευση από skeftomilos » 20 Σεπ 2011 21:45

Έχετε ένα μεγάλο αδιαφανές σακούλι που περιέχει άφθονες μπίλιες πέντε διαφορετικών χρωμάτων. Βάζετε το χέρι στο σακούλι και βγάζετε 5 μπίλιες στην τύχη. Ποιο από τα παρακάτω ενδεχόμενα είναι πιο πιθανό;

1) Να βγάλετε 5 μπίλιες διαφορετικού χρώματος, μία μπίλια από το κάθε χρώμα.
2) Να βγάλετε 2 μπίλιες ίδιου χρώματος, και οι υπόλοιπες 3 να έχουν τρία διαφορετικά χρώματα.

Αυτό το quiz γεννήθηκε σήμερα ενώ πάλευα με τη C# για να φτιάξω ένα πρόγραμμα που να παίζει Mastermind. Είναι πιο δύσκολο απ' όσο δείχνει. Δοκιμάστε να το απαντήσετε με τη διαίσθηση, ή και με αλγόριθμο αν αισθάνεστε αρκετά ατρόμητοι!

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

MasterMind Quiz

Δημοσίευση από dva_dev » 20 Σεπ 2011 23:21

Αν τι βγάζουμε μία μία, αφού έχουμε φτάσει να βγάλουμε 4 μπίλιες διαφορετικού χρώματος, τότε οι πιθανότητες είναι 20% να βγάλουμε την 5η διαφορετική και 80% κάποια από αυτές που έχουν βγεί ήδη, οπότε είμαστε στο 2).
Αν τις βγάζουμε όλες μαζί, τότε πάλι το ίδιο αλλά με μικρότερες πιθανότητες γιατί παίζουν και όλοι οι υπόλοιποι συνδυασμοί.

Τώρα για αλγόριθμο θα περιμένω τον pimpogio...

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

MasterMind Quiz

Δημοσίευση από skeftomilos » 21 Σεπ 2011 13:22

Έξυπνη απάντηση, μπράβο. Απλή και ξεκάθαρη. :)

Αντίθετα λοιπόν από ότι θα περίμενε κανείς, η λοξή διάταξη (2) είναι τουλάχιστον τέσσερις φορές πιθανότερη από την ομαλή και συμμετρική διάταξη (1). Η υπεροχή της (2) είναι μάλιστα ακόμα μεγαλύτερη. Θα περιμένω λίγες μέρες για να δώσω τα ακριβή ποσοστά, μήπως και θελήσει κανένας να τα ανακαλύψει μόνος του στο μεταξύ.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

MasterMind Quiz

Δημοσίευση από dva_dev » 21 Σεπ 2011 21:34

Τώρα έκατσα και έγγραψα λίγο κώδικα και βγάζει:

Κώδικας: Επιλογή όλων

  3125 combinations
   120 combinations with all different
  1200 combinations with 1 couple
   900 combinations with 2 couples
   600 combinations with 1 tripple
   200 combinations with 1 tripple, 1 couple
   100 combinations with 4 same
     5 combinations with all same
Οπότε έχουμε 120/3125 να βγεί το 1) και 1200/3125 - τις 10πλάσιες - να βγεί το 2) αν βγάζουμε και τις 5 μπίλιες με τη μία, αρκεί πάντα να είναι σε ίσα πλήθη οι μπίλιες και να υπάρχουν τουλάχιστον 5 από κάθε χρώμα (φαντάζομαι το "αφθονες" το καλύπτει αυτό).

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

MasterMind Quiz

Δημοσίευση από skeftomilos » 23 Σεπ 2011 04:57

Άψογος! Τα ίδια νούμερα έβγαλα κι εγώ. Πώς το έκανες; Ο δικός μου αλγόριθμος είναι μάλλον αχρείαστα πολύπλοκος, και πρέπει να υπάρχει απλούστερος. Έκανα το εξής:

1) Υπολόγισα με πόσα διαφορετικά patterns μπορούν να στοιχηθούν 5 στοιχεία σε στοίβες. Είναι τα εφτά patterns που αναφέρεις παραπάνω.
2) Υπολόγισα πόσα χρωματιστά patterns προκύπτουν από το κάθε pattern, αν χρωματίσουμε τις στοίβες με τα διαθέσιμα χρώματα αδιαφορώντας για τη σειρά των χρωμάτων. Π.χ. για τη διάταξη (1) του quiz τα χρωματιστά patterns είναι ένα, ενώ για τη διάταξη (2) είναι είκοσι.
3) Υπολόγισα με πόσους τρόπους μπορούν να μπουν στη σειρά τα στοιχεία του κάθε χρωματιστού pattern. Π.χ. το μοναδικό χρωματιστό pattern της διάταξης (1) μπαίνει στη σειρά με εκατόν είκοσι τρόπους, ενώ το καθένα από τα είκοσι χρωματιστά patterns της διάταξης (2) μπαίνει στη σειρά με εξήντα τρόπους.
4) Πολλαπλασίασα το νούμερο του βήματος 2 με το νούμερο του βήματος 3, και έβγαλα το σύνολο των συνδυασμών του κάθε pattern.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

MasterMind Quiz

Δημοσίευση από dva_dev » 23 Σεπ 2011 16:51

Πήγα με επαναληπτικές μεθόδους και τα σύμβολα 1,2,3,4,5 (για πρακτικούς λόγους) αντί για χρώματα.

Υπολόγισα αρχικά -με το χέρι- πόσα διαφορετικά γενικά patterns επαναλήψεων μπορούν να φτιαχτούν - χωρίς να με ενδιαφέρει σε ποιό/α ψηφία ακριβώς γίνεται η επανάληψη - (αυτά τα 7), και όρισα ένα πίνακα Χ να κρατάω το πλήθος εμφάνισης τους, ώστε να αποφύγω να ασχοληθώ με δυναμική διαχείριση και διαστάσεις και πίνακες κ.λπ.

Έκανα 5 nested loops για να παράξω όλους τους διαθέσιμους συνδυασμούς.
Για κάθε συνδυασμό που παράγεται κάνω το εξής:
Αυξάνω ένα μετρητή που κρατάει πόσοι συνδυασμοί παράχθηκαν (περιττό βασικά αφού βγαίνει με 5^5 αλλά το έκανα για να υπάρχει ομοιομορφία στον τρόπο υπολογισμού).

Βρίσκω το πλήθος εμφάνισης του κάθε ψηφίου για τον τρέχοντα συνδυασμό και το βάζω σε ένα πινακάκι.
Ταξινομώ το πινακάκι για να βρω το pattern (και το κάνω αριθμό) και το αντιστοιχώ στο 1-7 (για να το χρησιμοποιήσω σαν θέση του pattern στον πίνακα Χ).
Μετά αυξάνω για το pattern, το αντίστοιχο πλήθος στον πίνακα Χ (που κρατάω τις εμφανίσεις τους).
Προχωράω στον επόμενο συνδυασμό (με τα nested loops).

Τέλος εκτυπώνω τον πίνακα Χ (και μερικά λογάκια ακόμα).

Νομίζω ότι ο κώδικας είναι self documented :D

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

#include <string.h>
#include <assert.h>

int checkOccurences&#40;char *comb&#41;;

int main&#40;int argc, char **argv&#41;
&#123;
    int i, opt = 0;
    long freq&#91;8&#93; = &#123;0&#125;;
    char *msg&#91;&#93; = &#123;
        "",
        "with all different",
        "with 1 couple",
        "with 2 couples",
        "with 1 tripple",
        "with 1 tripple, 1 couple",
        "with 4 same",
        "with all same"
    &#125;;
    char comb&#91;&#93; = "00000";

    if &#40;&#40;argc == 2&#41; && &#40;argv&#91;1&#93;&#91;0&#93;=='/' || argv&#91;1&#93;&#91;0&#93;=='-'&#41;&#41; opt = atoi&#40;argv&#91;1&#93;+1&#41;;

    for &#40;comb&#91;0&#93; = '1'; comb&#91;0&#93; <= '5'; comb&#91;0&#93;++&#41;
        for &#40;comb&#91;1&#93; = '1'; comb&#91;1&#93; <= '5'; comb&#91;1&#93;++&#41;
            for &#40;comb&#91;2&#93; = '1'; comb&#91;2&#93; <= '5'; comb&#91;2&#93;++&#41;
                for &#40;comb&#91;3&#93; = '1'; comb&#91;3&#93; <= '5'; comb&#91;3&#93;++&#41;
                    for &#40;comb&#91;4&#93; = '1'; comb&#91;4&#93; <= '5'; comb&#91;4&#93;++&#41;
                    &#123;
                        freq&#91;0&#93;++;
                        i = checkOccurences&#40;comb&#41;;
                        freq&#91;i&#93;++;

                        if &#40;opt == i&#41; puts&#40;comb&#41;;
                    &#125;

    for &#40;i=0; i<8; i++&#41;
        printf&#40;"%6ld combinations %s\n",freq&#91;i&#93;, msg&#91;i&#93;&#41;;
    return 0;
&#125;

int checkOccurences&#40;char *comb&#41;
&#123;
    int i;
    char occur&#91;&#93; = "00000";

    for &#40;i=0; i<5;i++&#41; occur&#91;comb&#91;i&#93;-'1'&#93;++;

    qsort&#40;occur, sizeof&#40;occur&#41;-1, sizeof&#40;char&#41;, strcmp&#41;;

    switch &#40;atoi&#40;occur&#41;&#41;
    &#123;
    case 11111&#58;		return 1;	//all different
    case  1112&#58;		return 2;	//1 couple
    case   122&#58;		return 3;	//2 couples
    case   113&#58;		return 4;	//1 tripple
    case    23&#58;		return 5;	//1 tripple, 1 couple
    case    14&#58;		return 6;	//4 same
    case     5&#58;		return 7;	//all same
    default&#58;
        assert&#40;0&#41;;
    &#125;
    return 0;
&#125;
Τελευταία επεξεργασία από το μέλος dva_dev την 24 Σεπ 2011 12:32, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

MasterMind Quiz

Δημοσίευση από skeftomilos » 23 Σεπ 2011 22:14

Yeap, self documented indeed. :-) Ο κώδικας είναι κομψός και σύντομος. Μου αρέσει που χρησιμοποίησες strings για να αναπαραστήσεις τα patterns, με byte arrays θα αναγκαζόσουν να γράψεις περισσότερο κώδικα. Τα πέντε nested loops μου θύμισαν τα PowerLoops, μια γλωσσική δομή που δεν έχει επικρατήσει στις γλώσσες προγραμματισμού. Στη συγκεκριμένη περίπτωση ξέρουμε από πριν πόσα loops θα χρειαστούν, οπότε δεν υπάρχει λόγος να επινοήσουμε κάποιο είδος PowerLoop, όπως θα έπρεπε να κάνουμε αν ο αριθμός από μπίλιες ήταν μεταβλητός. Σε αυτή την περίπτωση βέβαια δε θα ξέραμε ούτε το πλήθος των patterns, οπότε θα είχαμε ένα πρόβλημα πολύ μεγαλύτερης δυσκολίας.

Ευχαριστώ για τη συμμετοχή στο quiz! :D

Άβαταρ μέλους
Bugman
Δημοσιεύσεις: 362
Εγγραφή: 01 Ιούλ 2003 20:39
Τοποθεσία: Πρέβεζα
Επικοινωνία:

MasterMind Quiz

Δημοσίευση από Bugman » 14 Οκτ 2011 18:58

Η δική μου άποψη:
Δεν υπάρχουν συχνότητες εμφάνισης όταν η αποθήκη (ή το σακούλι) έχει άπειρα κομμάτια!
Μαθηματικά αν έχουμε μπίλιες με δυο χρώματα και τραβάμε μια από μια "αποθήκη" με ίσα στο πλήθος κομμάτια για τα δύο χρώματα θα έχουμε 1/2 πιθανότητα να πετύχουμε το ίδιο χρώμα την πρώτη φορά, την δεύτερη φορά θα έχουμε στην αποθήκη άνισο πλήθος...και κάθε φορά τα κομμάτια που θα έχουν βγει θα καθορίζουν και την πιθανότητα του επόμενου. Αν τώρα η αποθήκη ή το σακούλι περιέχει άπειρες μπίλιες τότε η ιστορία δεν παίζει κανένα ρόλο...Έτσι δεν υπάρχει κανένα "γεγονός" να μας υποδείξει με ποια συχνότητα θα βγαίνουν οι μπίλιες. Αν δεχτούμε το γεγονός να είναι πάντα οι μπίλιες σε ίσο πλήθος χρωμάτων (με το που βγαίνει μι αμέσως μια από κάθε άλλο χρώμα εξαφανίζεται σε μια αποχέτευση) τότε αν έχουμε πέντε χρώματα θα έχουμε 1/5 πιθανότητα κάθε φορά να έχουμε μια μπίλια με ένα χρώμα της επιλογής μας. Αν μάλιστα θέλουμε πέντε φορές να έχουμε το ίδιο χρώμα αυτό σημαίνει 1/5*1/5*1/5*1/5*1/5 πιθανότητα...να έχουμε στην πρώτη πεντάδα τα αυτά χρώματα (1/5)^5 δηλαδή 0,00032 αν πούμε ότι εκτελούμε μια δειγματοληψία για 1000000 φορές θα έχουμε 32 περιπτώσεις με ίδιο χρώμα. Προσοχή τώρα αν το πρώτο χρώμα δεν είναι επιλογή μας αλλά το θέσουμε ως επιλογή για τα υπόλοιπα τέσσερα τότε θα έχουμε (1/5)**4 ή 0,0016 ή 16 επιτυχίες στις 10000 προσπάθειες.
Ο dva_dev έκανε την σκέψη να δει πόσοι συνδυασμοί είναι και βρήκε 3125. Είδε μετά ότι μόνο 5 δίνουν "επιτυχία" στο όλα ίδια (και είναι φυσικό αφού έχουμε πέντε χρώματα). Ποιός είναι ο λόγος επιτυχιών προς σύνολο συνδυασμών; Διαιρούμε το 5 με το 3125...και βρίσκουμε 0,0016...Ακριβώς όσο το υπολόγισα χωρίς πρόγραμμα! Απλά μαθηματικά!

Ας πούμε ότι έχουμε το πρώτο...και είναι η επιλογή μας, το δεύτερο θα είναι 1 από τα 4 άλλα, θα έχει πιθανότητα 4 (χρώματα) προς 5 (σύνολο χρωμάτων), ή 4/5. Αμέσως το επόμενο πρέπει να είναι ένα από τα υπόλοιπα 3...σε σύνολο 5 άρα 3/5 η πιθανότητα, αμέσως μετά έχουμε το 2/5 και τέλος το 1/5...Άρα μια πεντάδα με διαφορετικά χρώματα θα έχει 4/5*3/5*2/5*1/5 πιθανότητα! Αυτό μας κάνει 0,0384 ή στους 3125 συνδυασμούς δίνει 120 επιτυχίες...(συνδυασμοί με διαφορετικά νούμερα).

Άβαταρ μέλους
Bugman
Δημοσιεύσεις: 362
Εγγραφή: 01 Ιούλ 2003 20:39
Τοποθεσία: Πρέβεζα
Επικοινωνία:

MasterMind Quiz

Δημοσίευση από Bugman » 14 Οκτ 2011 19:20

skeftomilos,
Νομίζω πως για το Mastermind καλύτερα θα ήταν να υπάρχουν πολλά χρώματα π.χ. δέκα ενώ θα ζητάς πέντε τα οποία δεν θα είναι ίδια.
Οι πεντάδες βγαίνουν με τον ίδιο τρόπο και η πιθανότητα είναι....9/10*8/1*7/10*6/10=0.3024
Έτσι τρεις στις δέκα περιπτώσεις θα είναι ανακατεμένα χρώματα με κανένα ζευγάρι μέσα. Παρατήρησε δε ότι είναι δέκα φορές μεγαλύτερη η πιθανότητα να έρθει ανομοιόμορφο σχήμα από την περίπτωση που είχαμε μόνο πέντε χρώματα (διπλασιάσαμε τα χρώματα και δεκαπλασιάσαμε την πιθανότητα)

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

MasterMind Quiz

Δημοσίευση από skeftomilos » 16 Οκτ 2011 23:35

Bugman έγραψε:Η δική μου άποψη:
Δεν υπάρχουν συχνότητες εμφάνισης όταν η αποθήκη (ή το σακούλι) έχει άπειρα κομμάτια!
Μαθηματικά αν έχουμε μπίλιες με δυο χρώματα και τραβάμε μια από μια "αποθήκη" με ίσα στο πλήθος κομμάτια για τα δύο χρώματα θα έχουμε 1/2 πιθανότητα να πετύχουμε το ίδιο χρώμα την πρώτη φορά, την δεύτερη φορά θα έχουμε στην αποθήκη άνισο πλήθος...και κάθε φορά τα κομμάτια που θα έχουν βγει θα καθορίζουν και την πιθανότητα του επόμενου. Αν τώρα η αποθήκη ή το σακούλι περιέχει άπειρες μπίλιες τότε η ιστορία δεν παίζει κανένα ρόλο...Έτσι δεν υπάρχει κανένα "γεγονός" να μας υποδείξει με ποια συχνότητα θα βγαίνουν οι μπίλιες. Αν δεχτούμε το γεγονός να είναι πάντα οι μπίλιες σε ίσο πλήθος χρωμάτων (με το που βγαίνει μι αμέσως μια από κάθε άλλο χρώμα εξαφανίζεται σε μια αποχέτευση) τότε αν έχουμε πέντε χρώματα θα έχουμε 1/5 πιθανότητα κάθε φορά να έχουμε μια μπίλια με ένα χρώμα της επιλογής μας.
Όταν σκεφτόμουν τη μέθοδο τυχαιοποίησης για τις μπίλιες του quiz, προτίμησα το παραδοσιακό σακούλι παρόλο που είχα το προαίσθημα ότι κάποιος θα έβγαινε να υποδείξει τις αδυναμίες της μεθόδου. :-) Μου αρέσει το κόλπο με την αποχέτευση για να διασφαλίσουμε ότι η αναλογία των χρωμάτων θα παραμείνει ίση. Γενικά όσο περισσότερα μαθαίνω για τις πιθανότητες και τη στατιστική, τόσο περισσότερο καταλαβαίνω πόσες περιπλοκές κρύβει μέσα στην απατηλή της απλότητα!

Σχετικά με τον υπολογισμό των πιθανοτήτων της διάταξης "all different", είναι πράγματι τόσο απλός όσο τον περιγράφεις. Μπορεί δηλαδή να υπολογιστεί με πολλαπλασιασμό μερικών κλασμάτων. Όμως για τη διάταξη "1 couple" τα πράγματα είναι λιγότερο εύκολα.
Bugman έγραψε:skeftomilos,
Νομίζω πως για το Mastermind καλύτερα θα ήταν να υπάρχουν πολλά χρώματα π.χ. δέκα ενώ θα ζητάς πέντε τα οποία δεν θα είναι ίδια.
Όσο αυξάνονται τα χρώματα τόσο μειώνεται η υπεροχή της διάταξης "1 couple" επί της "all different". Ενώ στα πέντε χρώματα η υπεροχή είναι 10 προς 1, στα εννιά χρώματα πέφτει στο 2 προς 1, στα δεκατέσσερα ισοφαρίζεται 1 προς 1, και σε ακόμα περισσότερα χρώματα η διάταξη "all different" αποκτά την υπεροχή. Αναλυτικά η κατανομή για διάφορους αριθμούς χρωμάτων:

[table]
[mrow]Μπίλιες[mcol]Χρώματα[mcol]Σύνολο συνδυασμών[mcol]1 couple[mcol]all different[mcol]Αναλογία
[row]5[col]5[col]3.125[col]1.200[col]120[col]10
[row]5[col]6[col]7.776[col]3.600[col]720[col]5
[row]5[col]7[col]16.807[col]8.400[col]2.520[col]3,33
[row]5[col]8[col]32.768[col]16.800[col]6.720[col]2,5
[row]5[col]9[col]59.049[col]30.240[col]15.120[col]2
[row]5[col]10[col]100.000[col]50.400[col]30.240[col]1,67
[row]5[col]11[col]161.051[col]79.200[col]55.440[col]1,43
[row]5[col]12[col]248.832[col]118.800[col]95.040[col]1,25
[row]5[col]13[col]371.293[col]171.600[col]154.440[col]1,11
[row]5[col]14[col]537.824[col]240.240[col]240.240[col]1
[row]5[col]15[col]759.375[col]327.600[col]360.360[col]0,91
[row]5[col]16[col]1.048.576[col]436.800[col]524.160[col]0,83
[row]5[col]17[col]1.419.857[col]571.200[col]742.560[col]0,77
[row]5[col]18[col]1.889.568[col]734.400[col]1.028.160[col]0,71
[row]5[col]19[col]2.476.099[col]930.240[col]1.395.360[col]0,67
[row]5[col]20[col]3.200.000[col]1.162.800[col]1.860.480[col]0,63
[/table]

Άβαταρ μέλους
Bugman
Δημοσιεύσεις: 362
Εγγραφή: 01 Ιούλ 2003 20:39
Τοποθεσία: Πρέβεζα
Επικοινωνία:

MasterMind Quiz

Δημοσίευση από Bugman » 23 Οκτ 2011 21:52

αν το δεις σε βάθος το θέμα...μάλλον το βλέπω να φτιάχνεις αλγόριθμο για κρυπτογραφία. Το όλο ζήτημα στη κρυπτογραφία είναι να μην μπορεί κάποιος να βρει "ζευγάρια" τιμών ώστε με υποθέσεις να βρει μια λογική συνέχεια και έτσι να αποκρυπτογραφήσει. Αυτό που θέλουμε δηλαδή είναι η διάταξη "all different" να είναι μόνιμη κατάσταση για τον αλγόριθμο κρυπτογράφησης. Αν για παράδειγμα ένα κείμενο γραμμάτων από ένα λεξιλόγιο 26 γραμμάτων γίνει ένα κείμενο από ένα λεξιλόγιο 65000 γραμμάτων τότε κάθε λέξη θα έχει γράμματα από τα 65000...άντε να βρει δηλαδή κανείς διπλά γράμματα...Και αν υποθέσουμε πως πολλά γράμματα από τα 65000 ισοδυναμούν με ένα από τα 26 τότε μπορούμε να έχουμε μια λέξη με πολλούς τρόπους γραμμένη.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

MasterMind Quiz

Δημοσίευση από skeftomilos » 24 Οκτ 2011 03:08

Βασικά αυτό που ήθελα να πετύχω ήταν να φτιάξω ένα πρόγραμμα που να λύνει γρίφους MasterMind, με οποιοδήποτε αριθμό από μπίλιες και χρώματα, και στο μικρότερο δυνατό αριθμό κινήσεων. Μετά από αρκετή προσπάθεια έφτασα μέχρι το επίπεδο δέκα μπίλιες και είκοσι χρώματα, όπου η λύση έρχεται κατά μέσο όρο σε 12,9 γύρους και 49,5 δευτερόλεπτα. Για περισσότερες μπίλιες και χρώματα θα χρειαστεί ανάπτυξη τεχνικών που δε θα βασίζονται στη brute force, οι οποίες προϋποθέτουν προχωρημένες γνώσεις πιθανοτήτων, που προς το παρόν δε διαθέτω. :-)

Για την κρυπτογραφία ξέρω αρκετά για να μην τολμώ καν να επινοήσω αλγορίθμους ελαφρά τη καρδία. Ότι φαίνεται μπετόν αρμέ στον κρυπτογράφο μπορεί να αποδειχτεί χάρτινος τοίχος για τον κρυπταναλυτή. Μάλιστα ο κρυπταναλυτής δεν πρόκειται καν να ενημερώσει τον κρυπτογράφο ότι κατάφερε να του σπάσει τον κώδικα, παρά μόνο ίσως μετά το τέλος του πολέμου (που θα τον έχει κερδίσει ο ίδιος φυσικά!).

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης