Subsections
3.1 Αρχή πολλαπλασιασμού ανεξάρτητων επιλογών
Περπατώντας έξω από ένα κατάστημα που σερβίρει καφέδες διαφόρων ειδών συναντά κανείς
τον ισχυρισμό που φαίνεται στο Σχήμα 3.1,
που αρχικά φαίνεται μάλλον εξωφρενικός. Είναι όμως;
Σχήμα
3.1: Πόσους διαφορετικούς καφέδες μπορεί να φτιάξει ένα καφενείο;
Ας υποθέσουμε ότι κάποιος πίνει τον καφέ του με ή χωρίς ζάχαρη, με ή χωρίς γάλα.
(Οι ποσότητες γάλατος και ζάχαρης που μπορεί κανείς να έχει είναι σταθερές. Δεν υπάρχει
με ολίγη.)
Πόσα διαφορετικά είδη από καφέ πρέπει να μπορεί να φτιαξει ένα καφενείο ώστε
να μπορεί να εξυπηρετήσει όλους τους πελάτες;
Η απάντηση είναι 4:
- Χωρίς γάλα, χωρίς ζάχαρη
- Χωρίς γάλα, με ζάχαρη
- Με γάλα, χωρίς ζάχαρη
- Με γάλα, με ζάχαρη
Αν σκεφτούμε λίγο προσεκτικότερα θα συνειδητοποιήσουμε ότι
και ότι ο λόγος που η απάντηση είναι αυτή είναι
ότι κάθε μια από τις δύο δυνατές επιλογές όσον αφορά το περιεχόμενο
σε γάλα μπορεί να συνδυαστεί με κάθε μία από τις δύο δυνατές επιλογές
που αφορούν στο περιεχόμενο σε ζάχαρη.
Άσκηση 3.1
Ποια η απάντηση στο άνω «πρόβλημα του καφέ» αν οι επιλογές μας
ως προς τη ζάχαρη δεν είναι πλέον οι ΝΑΙ, ΟΧΙ, αλλά μπορούμε
είτε να μην έχουμε καθόλου ζάχαρη, είτε να έχουμε ένα φακελάκι, είτε δύο;
Άσκηση 3.2
Αν το αρχικό «πρόβλημα του καφέ» προστεθεί η επιλογή ΚΡΥΟΣ ή ΖΕΣΤΟΣ, την οποία
μπορούμε να έχουμε ανεξάρτητα από το γάλα ή τη ζάχαρη που διαλέγουμε,
ποια είναι η απάντηση;
Η αρχή του πολλαπλασιασμού ανεξάρτητων επιλογών
κωδικοποιεί την απλή αυτή παρατήρηση
που κάναμε:
Ας υποθέσουμε ότι έχουμε να παραγματοποιήσουμε μια σύνθετη επιλογή, η οποία
συνίσταται από την πραγματοποίηση επί μέρους επιλογών, που πραγματοποιούνται
ανεξάρτητα η μία από την άλλη, είναι δηλ. τέτοιες οι επί μέρους επιλογές
ώστε η επιλογή τιμών για κάποιες από αυτές να μην επηρεάζει τις δυνατότητες που υπάρχουν
για τις υπόλοιπες.
Τότε το συνολικό πλήθος δυνατοτήτων
που έχουμε για τη σύνθετή μας επιλογή είναι το γινόμενο των
δυνατοτήτων για τις επί μέρους επιλογές μας.
Σε πιο αυστηρή γλώσσα η αρχή του πολλαπλασιασμού ανεξαρτήτων επιλογών εκφράζεται ως εξής
(γενικά με
συμβολίζουμε τον πληθάριθμο-πόσα στοιχεία έχει-του συνόλου ):
Θεώρημα 3.1
Έστω φυσικός αριθμός και το σύνολο όλων των διαφορετικών -άδων
όπου
,
και τα είναι όλα πεπερασμένα σύνολα.
Τότε
Απόδειξη.
Απόδειξη με επαγωγή ως προς
. Αν
πρόκειται περί ταυτολογίας, αφού
.
Υποθέτουμε τώρα ότι η πρόταση ισχύει για
και τη δείχνουμε για
.
Θέλουμε να μετρήσουμε τα διατεταγμένα αντικείμενα της μορφής
|
(3.1) |
όπου
, για
.
Αν
αυτά τα αντικείμενα (
3.1) χωρίζονται στις εξής
ξένες μεταξύ τους
ομάδες:
είναι εκείνα τα αντικείμενα που στην τελευταία θέση τους έχουν
,
δηλ. όλα τα αντικείμενα της μορφής
|
(3.2) |
είναι εκείνα τα αντικείμενα με
στην τελευταία θέση, κ.ο.κ.
Οι ομάδες αυτές είναι μεταξύ τους ισοπληθείς, αφού, π.χ. μπορεί η
να τεθεί σε 1-1 και επί αντιστοιχία με τη
μέση της απεικόνισης
Το συνολικό πλήθος λοιπόν των αντικειμένων τύπου (
3.1)
είναι
|
(3.3) |
Αλλά, είναι φανερό, το πλήθος στοιχείων της
είναι όσα και τα διατεταγμένα
αντικείμενα
που, λόγω της επαγωγικής υπόθεσης, είναι ίσο με
.
Αντικαθιστώντας στην (
3.3) παίρνουμε το αποτέλεσμα.
Άσκηση 3.3
Το παρακάτω πρόγραμμα σε python υπολογίζει όλα τα ζεύγη όπου
, όλα τα
στοιχεία δηλ. του καρτεσιανού γινομένου .
A = ['Sweet', 'Medium', 'No Sugar']
B = ['With milk', 'No milk']
for x in A:
for y in B:
print "Sugar: ", x, " Milk: ", y
Τρέξτε το πρόγραμμα. Πόσες γραμμές τυπώνει; Τροποποιήστε το πρόγραμμα ώστε να συμπεριλαμβάνει
και ένα επιπλέον χαρακτηριστικό του καφέ, το μέγεθος, το οποίο έχει τρεις δυνατές τιμές:
C = ['Large', 'Medium', 'Small']
Άσκηση 3.4
Σε μια χώρα οι τηλεφωνικοί αριθμοί είναι όλοι δεκαψήφιοι. Το πρώτο ψηφίο κάθε τηλεφωνικού αριθμού
μπορεί να είναι 2 ή 3 μόνο. Δεν υπάρχει περιορισμός για τα άλλα 9 ψηφία.
Ποιος είναι ο μέγιστος αριθμός τηλεφώνων που μπορεί να υπάρξει ταυτόχρονα σε αυτή τη χώρα;
Άσκηση 3.5
Πόσους δεκαδικούς ακεραίους με το πολύ τρία ψηφία
μπορεί κανείς να γράψει χρησιμοποιώντας μόνο τα γράμματα
2,3,5;
Υπόδειξη: Πόσους μονοψήφιους, πόσους διψήφιους και πόσους τριψήφιους μπορείτε να φτιάξετε;
Άσκηση 3.6
Πόσες διαφορετικές στήλες ΠΡΟ-ΠΟ υπάρχουν (μήκους 14, με 1,2 ή Χ σε κάθε
θέση);
Άσκηση 3.7
Πόσες διαφορετικές τριάδες γραμμάτων μπορούν να εμφανιστούν
σε ελληνικές πινακίδες αυτοκινήτων;
(Σε αυτές χρησιμοποιούνται μόνο γράμματα που ανήκουν και στο ελληνικό
και στο λατινικό αλφάβητο. Αυτά τα γράμματα είναι 14 τον αριθμό.)
Αν κάθε τέτοια τριάδα ακολουθείται από ένα τετραψήφιο
φυσικό αριθμό (με πρώτο ψηφίο διαφορετικό από το 0)
πόσα το πολύ αυτοκίνητα μπορούν να ταξινομηθούν στην Ελλάδα;
Λύστε το ίδιο πρόβλημα για πινακίδες μοτοσυκλετών: 3 γράμματα ακολουθούμενα από ένα αριθμό που μπορεί
να είναι μονοψήφιος, διψήφιος ή τριψήφιος αλλά όχι 0.
Η πρώτη σημαντική εφαρμογή της αρχής πολλαπλασιασμού των ανεξάρτητων επιλογών είναι
το ακόλουθο.
Απόδειξη.
Μπορεί κανείς εύκολα να αποδείξει το Θεώρημα με επαγωγή ως προς το
, αλλά
ας δούμε πώς αποδεικνύεται εφαρμόζοντας την αρχή πολλαπλασιασμού.
Η βασική παρατήρηση είναι ότι το πλήθος όλων των υποσυνόλων
του
μπορεί να τεθεί σε 1-1 και επί αντιστοιχία
με το σύνολο όλων των διατεταγμένων
-άδων
|
(3.4) |
Όντως, η 1-1 και επί αυτή αντιστοιχία είναι αυτή που στέλνει το τυχόν
υποσύνολο
στη
-άδα
όπου
αν και μόνο αν
(βεβαιωθείτε ότι αυτή η απεικόνιση
όντως είναι 1-1 και επί).
Αντί να μετρήσουμε λοιπόν τα στοιχεία του
μπορούμε να μετρήσουμε το πλήθος των
-άδων (
3.4).
Το αποτέλεσμα είναι το ίδιο.
Για να μετρήσουμε τώρα τις -άδες (3.4) σκεφτόμαστε ως εξής:
για να επιλέξουμε μια τυχούσα -άδα πρέπει να κάνουμε ανεξάρτητες
επιλογές, μια για κάθε , και σε κάθε μια από αυτές τις επιλογές
έχουμε δύο δυνατότητες.
Άρα, το πλήθος δυνατοτήτων για τη συνολική επιλογή είναι
.
Άσκηση 3.9
Δώστε επαγωγική απόδειξη (ως προς το ) του Θεωρήματος 3.2.
Άσκηση 3.10
Το παρακάτω πρόγραμμα σε python υπολογίζει το δυναμοσύνολο ενός συνόλου.
Το σύνολο το αναπαριστάμε με μια λίστα (που φροντίζουμε να μην έχει στοιχεία που επαναλαμβάνονται).
def subsets(s):
n = len(s)
# empty set contains only the empty set
if n==0:
return [[]]
# s1 is set s without its first element
s1 = s[1:]
f = s[0] # f is the first element of set s
# all subsets of s not containing its first element, f
p1 = subsets(s1)
# p2 will contain all subsets of s containing f
p2 = []
for x in p1:
p2.append([f]+x)
return p2+p1
Κατανοήστε το πώς δουλεύει αυτή η συνάρτηση subsets.
(Η συνάρτηση αυτή είναι αναδρομική (recursive), καλεί δηλ. τον εαυτό της.)
Μπορείτε να τη δοκιμάσετε ως εξής:
s = ['a', 'b', 'c', 'd']
print subsets(s)
για να πάρετε το output
[['a', 'b', 'c', 'd'], ['a', 'b', 'c'], ['a', 'b', 'd'],
['a', 'b'], ['a', 'c', 'd'], ['a', 'c'], ['a', 'd'], ['a'],
['b', 'c', 'd'], ['b', 'c'], ['b', 'd'],
['b'], ['c', 'd'], ['c'], ['d'], []]
Παράδειγμα 3.1
Μέ πόσους τρόπους μπορεί κανείς να επιλέξει δύο ξένα μεταξύ τους
υποσύνολα και του συνόλου
;
Τα σύνολα αυτά μπορούν να είναι και κενά.
Για να απαντήσουμε σκεφτόμαστε ως εξής, και ο τρόπος αυτός σκέψης
αποτελεί υπόδειγμα για το πώς σκεφτόμαστε στην πλειονότητα των περιπτώσεων.
Για να μετρήσουμε λοιπόν τα συγκεκριμένα αντικείμενα
βρίσκουμε, κατ' αρχήν, μια διαδικασία για να τα κατασκευάσουμε.
Αυτή η διαδικασία πρέπει να είναι τέτοια ώστε
- Να κωδικοποιείται με μια ακολουθία από επιλογές μετά από τις οποίες
καταλήγουμε σε ένα από τα αντικείμενα της κλάσης που προσπαθούμε να μετρήσουμε,
- Για κάθε μια από τις δυνατές ακολουθίες επιλογών που κάνουμε να προκύπτει και
ένα διαφορετικό αντικείμενο από την κλάση, και
- Για κάθε στοιχείο της κλάσης των προς μέτρηση αντικειμένων
υπάρχει μια ακολουθία επιλογών (που είναι και μοναδική, από την
προηγούμενη απαίτηση) που μας δίνει το στοιχείο αυτό.
Η κατασκευή που δίνουμε για το συγκεκριμένο πρόβλημα είναι η εξής.
Προχωράμε για έως και για κάθε επιλέγουμε αν θα είναι
στο σύνολο , στο σύνολο ή αν δε θα είναι σε κανένα από αυτά.
Δε μπορεί να είναι και στα δύο αφού τα και τα θέλουμε ξένα
μεταξύ τους.
(Δείτε Σχήμα 3.2.)
Σχήμα 3.2: Τοποθετούμε κάθε ένα από τα
σε ακριβώς ένα από τα τρία σακιά
Είναι φανερό πως αν έχουμε δύο διαφορετικές ακολουθίες από τις
αυτές επιλογές, τότε αυτές οδηγούν σε δύο διαφορετικά αντικείμενα,
σε δύο διαφορετικά δηλ. ζεύγη ξένων υποσυνόλων
.
Έτσι, το πλήθος των αντικειμένων που μας ενδιαφέρει είναι ίσο με
το πλήθος των δυνατών ακολουθιών επιλογών μας.
Είναι επίσης φανερό ότι οι απλές επιλογές που απαρτίζουν αυτή την ακολουθία
επιλογών είναι ανεξάρτητες μεταξύ τους, αφού κάθε φορά, και ότι
και να έχουμε επιλέξει μέχρι στιγμής, τρείς είναι οι δυνατές επιλογές μας
για τον τρέχοντα αριθμό , δηλ. να επιλέξουμε . ή
.
Έτσι, το τελικό αποτέλεσμα είναι
Άσκηση 3.12
Ποια η απάντηση στο ερώτημα του Παραδείγματος 3.1
αν απαιτήσουμε τα σύνολα και να είναι μη κενά;
Υπόδειξη: Αφαιρέστε από την απάντηση που δόθηκε στο Παράδειγμα 3.1
μια κατάλληλη ποσότητα που αντιπροσωπεύει επιλογές που δεν πληρούν το κριτήριο
της μη κενότητας που έχουμε θέσει.
Μια συνάρτηση από το σύνολο στο σύνολο είναι απλά μια αντιστοίχιση
κάθε στοιχείου του σε κάποιο στοιχείο του .
Αν
και
πόσες τέτοιες συναρτήσεις υπάρχουν;
Η απάντηση είναι :
Απόδειξη.
Το να επιλέξουμε μια συνάρτηση από το
στο
(ένα μέλος δηλ. του
συνόλου
) σημαίνει απλούστατα να επιλέξουμε την εικόνα κάθε στοιχείου
του
ανάμεσα σε όλα τα στοιχεία του
. Οι επιλογές αυτές είναι
προφανώς ανεξάρτητες μεταξύ τους αφού δεν έχουμε θέσει κανένα περιορισμό
στο τι είδους συναρτήσεις θέλουμε (π.χ., θα μπορούσαμε να θέλουμε 1-1
συναρτήσεις μόνο-σε αυτή την περίπτωση οι επιλογές δε θα ήταν φυσικά
ανεξάρτητες).
Έτσι το πλήθος των δυνατών επιλογών είναι
Άσκηση 3.14
Πόσοι πίνακες υπάρχουν με στοιχεία 0, 1 ή 3;
Άσκηση 3.16
Αν
ποιο το πλήθος των συναρτήσεων
που είναι άρτιες, πληρούν δηλ.
για
όλα τα ;
Άσκηση 3.17
Πόσοι μη αρνητικοί ακέραιοι αριθμοί, μικρότεροι από ,
έχουν κάποιο 2 στο δεκαδικό τους ανάπτυγμα;
Υπόδειξη: Πόσοι δεν έχουν;
Άσκηση 3.18
Πόσους διαιρέτες έχει ο φυσικός αριθμός
|
(3.5) |
Ο έχει γραφεί σαν γινόμενο δυνάμεων ξένων μεταξύ τους πρώτων
αριθμών .
(Πρώτος λέγεται ένας ακέραιος μεγαλύτερος του αν δεν έχει άλλους
διαιρέτες παρά μόνο τον εαυτό του και το 1. Π.χ. πρώτοι αριθμοί είναι
οι 2, 3, 5, 7, 11, 13, ενώ ο 6 δεν είναι πρώτος, αλλά σύνθετος αριθμός.
Υπάρχουν άπειροι πρώτοι αριθμοί.)
Μπορείτε να χρησιμοποιήσετε το θεμελιώδες θεώρημα (Θεώρημα 2.6) που λέει ότι κάθε φυσικός αριθμός γράφεται κατά μοναδικό τρόπο στη μορφή (
3.5)
, εκτός ίσως από τη σειρά των παραγόντων.
Εφαρμόστε το αποτέλεσμά σας στον αριθμό και απαριθμήστε και τους διαιρέτες του έναν-έναν μαζί
με το ανάπτυγμα του καθενός σε γινόμενο πρώτων.
Mihalis Kolountzakis
2015-11-28