Σχεδίαση και Ανάλυση Αλγορίθμων

Κεφάλαιο 3Γεννήτριες Συναρτήσεις

Έχει λεχθεί ότι οι γεννήτριες συναρτήσεις (generating functions) είναι «ένα νήμα όπου κρεμούμε μία ακολουθία αριθμών για επίδειξη». Επί της ουσίας, οι γεννήτριες συναρτήσεις είναι ένας κομψός και συνοπτικός συμβολισμός σειρών δυνάμεων, με τη βοήθεια των οποίων προβλήματα σειρών μετατρέπονται σε προβλήματα συναρτήσεων. Αυτό είναι σημαντικό, καθώς η διαχείριση συναρτήσεων είναι γενικώς ευκολότερη υπόθεση. Το αντικείμενο των συναρτήσεων αυτών είναι τεράστιο και έχουν γραφεί πολλά βιβλία μαθηματικών για αυτό. Στη συνέχεια του κεφαλαίου αυτού θα παρουσιασθούν μερικές πτυχές του αντικειμένου αυτού, ώστε εν τέλει με τη βοήθεια των γεννητριών συναρτήσεων: (α) να απαριθμούμε δυνατούς τρόπους εμφάνισης διαφορετικών καταστάσεων και (β) να επιλύουμε αναδρομικές εξισώσεις.

3.1 Κανονικές Γεννήτριες Συναρτήσεις

Δεδομένης μίας ακολουθίας απείρων όρων a0,a1,a2,, η αντίστοιχη γεννήτρια συνάρτηση είναι μία σειρά δυνάμεων:

f(x)=a0+a1x+a2x2+=n=0anxn (3.1)

που είναι τυπική (formal) με την έννοια ότι ορίζεται αλγεβρικά και όχι αναλυτικά. Η ανωτέρω συνάρτηση ονομάζεται κανονική (ordinary) γεννήτρια συνάρτηση και είναι η απλούστερη μορφή γεννήτριας συνάρτησης, καθώς στη βιβλιογραφία αναφέρεται ένα πλήθος άλλων συνθετότερων γεννητριών συναρτήσεων, οι οποίες όμως δεν θα μας απασχολήσουν στα πλαίσια του βιβλίου αυτού. Στη συνέχεια, με τον επόμενο συμβολισμό ισοδυναμούμε την αρχική ακολουθία αριθμών με την αντίστοιχη γεννήτρια συνάρτηση:

< a 0 , a 1 , a 2 , a 3 , >         a 0 + a 1 x + a 2 x 2 + a 3 x 3 (3.2)

Για παράδειγμα, έστω ότι δίνεται η απλή ακολουθία < 1 , 1 , 1 , 1 , >, δηλαδή ισχύει an=1 για κάθε n0. Η αντίστοιχη γεννήτρια συνάρτηση είναι:

f(x)= 1+x+x2+x3+=n=0xn (3.3)

Εύκολα προκύπτει ότι:

f(x) = 1+x+x2+x3+
= 1+x(1+x+x2+x3+)
= 1+xf(x)
f(x) = 11-x

Επομένως, δοθείσης της ακολουθίας an=1 για κάθε n0, η αντίστοιχη γεννήτρια συνάρτηση είναι f(x)=1/(1-x). Βέβαια, γνωρίζουμε από τις φθίνουσες γεωμετρικές προόδους, ότι η σχέση αυτή ισχύει μόνο αν |x|<1, αλλά προς το παρόν δεν μας απασχολούν ζητήματα σύγκλισης. Ωστόσο, σημειώνεται το συμπέρασμα ότι με τη βοήθεια ιδιοτήτων της f(x) μπορούμε να εξάγουμε πληροφορία για την αντίστοιχη ακολουθία αριθμών.

Ας εξετάσουμε ένα άλλο απλό παράδειγμα. Δίνεται η ακολουθία αριθμών < 1 , 1 , 1 , 1 , >. Η αντίστοιχη γεννήτρια συνάρτηση είναι:

f(x)= 1-x+x2-x3+=n=0(-1)nxn (3.4)

Με την ίδια τεχνική, όπως προηγουμένως, προκύπτει ότι η αντίστοιχη γεννήτρια συνάρτηση είναι f(x)=1/(1+x), δηλαδή ισχύει:

< 1 , 1 , 1 , 1 , >         1 1 + x (3.5)

Διαισθητικά, λοιπόν, καταλαβαίνουμε ότι οι γεννήτριες συναρτήσεις ονομάζονται έτσι γιατί βοηθούν να γεννήσουμε τους συντελεστές της σειράς δυνάμεων.

3.2 Πράξεις σε Γεννήτριες Συναρτήσεις

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

Πολλαπλασιασμός


Αν πολλαπλασιάσουμε μία γεννήτρια συνάρτηση επί μία σταθερά, τότε κάθε όρος της αντίστοιχης ακολουθίας πολλαπλασιάζεται επί την αντίστοιχη σταθερά. Με βάση, λοιπόν, τον ανωτέρω κανόνα, εφόσον ισχύει:

< 1 , 1 , 1 , 1 , >         1 1 x (3.6)

έπεται ότι ισχύει:

< 2 , 2 , 2 , 2 , >         2 1 x (3.7)

Πρόσθεση


Πρόσθεση δύο γεννητριών συναρτήσεων σημαίνει ότι πρέπει να προστεθούν οι αντίστοιχοι όροι των δύο ακολουθιών. Για παράδειγμα, λοιπόν, με βάση αυτόν τον κανόνα, εφόσον ισχύει ότι:

< 1 , 1 , 1 , 1 , >         1 1 x (3.8)

και

< 1 , 1 , 1 , 1 , >         1 1 + x (3.9)

έπεται ότι ισχύει:

< 2 , 0 , 2 , 0 , >         1 1 x + 1 1 + x = 2 1 x 2 (3.10)

Δεξιά Ολίσθηση


Αν ισχύει ότι:

< a 0 , a 1 , a 2 , a 3 , >         f ( x ) (3.11)

τότε αν προστεθούν στην αρχή της ακολουθίας k μηδενικά, έπεται ότι θα ισχύει:

< 0 , 0 , , 0 , 0 , a 0 , a 1 , a 2 , a 3 , >         x k f ( x ) (3.12)

Για παράδειγμα, αν προστεθούν k μηδενικά εμπρός από τη γνωστή ακολουθία < 1 , 1 , 1 , 1 , >, τότε η αντίστοιχη γεννήτρια συνάρτηση είναι xk/(1-x).

Παραγώγιση


Αν παραγωγισθεί το ένα σκέλος, τότε πρέπει να παραγωγισθεί και το άλλο. Για παράδειγμα, από τη γνωστή ακολουθία προκύπτει:

ddx11-x = ddx(1+x+x2+x3+)
1(1-x)2 = 1+2x+3x2+4x3+
1(1-x)2 = n=0(n+1)xn

Από την τελευταία σχέση προκύπτει ότι η γεννήτρια συνάρτηση f(x)=1/(1-x)2 αντιστοιχεί στην ακολουθία < 1 , 2 , 3 , 4 , >, ή αλλιώς ότι ισχύει γενικώς an=n για κάθε n0.

Γενικότερα, μπορεί να αποδειχθεί ότι δεδομένης της αντιστοιχίας:

<a0,a1,a2,a3,>f(x) (3.13)

ισχύει επίσης:

<a1,2a2,3a3,4a4,>f(x) (3.14)

Δηλαδή, παρατηρούμε ότι με τον κανόνα αυτό εκτελείται ταυτόχρονα: (α) μία αριστερή ολίσθηση και (β) ένας πολλαπλασιασμός κάθε όρου με το δείκτη του. Αν σε κάποια περίπτωση χρειαζόταν μόνο ο πολλαπλασιασμός, τότε θα μπορούσε να ακυρωθεί η αριστερή ολίσθηση εφαρμόζοντας και μία δεξιά ολίσθηση. Έστω, λοιπόν, ότι πρέπει να βρεθεί η γεννήτρια συνάρτηση της ακολουθίας <0,1,4,9,>. Ισχύει κατά σειρά:

<1,1,1,1,> 11-x
<1,2,3,4,> ddx11-x=1(1-x)2
<0,1,2,3,> x(1-x)2
<1,4,9,16,> ddxx(1-x)2=1+x(1-x)3
<0,1,4,9,> x(1+x)(1-x)3

3.3 Ακολουθία Fibonacci

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

<0,1,1,2,3,5,8,13,21,>x1-x-x2 (3.15)

Με τη βοήθεια αυτής της σχέσης, στη συνέχεια θα βρεθεί ο κλειστός τύπος του n-οστού αριθμού Fibonacci, ενώ επίσης οι τεχνικές για την εύρεση αυτού του κλειστού τύπου θα εφαρμοσθούν και σε άλλες περιπτώσεις.

Ορίζουμε, λοιπόν, τη συνάρτηση:

f(x)=f0+f1x+f2x2+f3x3+f4x4+ (3.16)

Είναι ευνόητο ότι ισχύουν οι σχέσεις:

<0,1,0,0,0,> x
<0,f0,f1,f2,f3,> xf(x)
<0,0,f0,f1,f2,> x2f(x)

Αθροίζοντας τις σχέσεις αυτές κατά μέλη, προκύπτει:

<0,1+f0,f1+f0,f2+f1,f3+f2,>x+xf(x)+x2f(x) (3.17)

Το αριστερό σκέλος της σχέσης αυτής ταυτίζεται με το αριστερό σκέλος της αποδεικτέας σχέσης. Συνεπώς, πρέπει να αποδειχθεί και η ισότητα των δύο δεξιών σκελών. Όμως, το δεξιό σκέλος της τελευταίας σχέσης ισούται με f(x), δηλαδή ισχύει:

f(x) = x+xf(x)+x2f(x)   
f(x) = x1-x-x2

Δεδομένης, λοιπόν, της γεννήτριας συνάρτησης για την ακολουθία Fibonacci, θα προσπαθήσουμε να εξάγουμε ένα κλειστό τύπο για το n-οστό αριθμό Fibonacci. Αρχικά, εκτελούμε μία παραγοντοποίηση του παρονομαστή της γεννήτριας συνάρτησης:

1-x-x2=(1-c1x)(1-c2x) (3.18)

όπου οι σταθερές c1,c2 ισούνται με:

c1=1+52   c2=1-52 (3.19)

Στη συνέχεια, για τη διάσπαση του κλάσματος της γεννήτριας συνάρτησης γράφουμε τη σχέση ως εξής:

x1-x-x2=c31-c1x+c41-c2x (3.20)

Αν δώσουμε δύο τυχαίες τιμές στη μεταβλητή x, λαμβάνουμε δύο γραμμικές εξισώσεις με αγνώστους τα c3,c4. Λύνοντας το παραγόμενο γραμμικό σύστημα με δύο αγνώστους και δύο εξισώσεις προκύπτει:

c3=15   c4=-15 (3.21)

Συνεπώς, ισχύει:

x1-x-x2=15(11-c1x-11-c2x) (3.22)

Όμως, για κάθε όρο της ανωτέρω παρένθεσης ισχύει:

11-c1x = 1+c1x+c12x2+
11-c2x = 1+c2x+c22x2+

Αντικαθιστώντας τις τιμές αυτές προκύπτει:

f(x) = 15(11-c1x-11-c2x)
= (1+c1x+c12x2+)-(1+c2x+c22x2+)5
fn = c1n-c2n5=15((1+52)n-(1-52)n)

3.4 Γεννήτριες Συναρτήσεις για Απαρίθμηση

Είναι γνωστά τα κλασικά αναπτύγματα των (a+b)2 και (a+b)3. Γενικεύοντας ισχύει:

(a+b)n=an+(n1)an-1b+(n2)an-2b2++(nn-1)abn-1+bn (3.23)

Αντικαθιστώντας a=1 και b=x προκύπτει:

(1+x)n= 1+(n1)x+(n2)x2++(nn-1)xn-1+xn=i=0n(ni)xi (3.24)

Προκύπτει, λοιπόν, ότι η γεννήτρια συνάρτηση (1+x)n μπορεί να χρησιμεύσει για την εύρεση του πλήθους των συνδυασμών των n αντικειμένων λαμβανόμενων ανά k, για 0kn. Δηλαδή, ο συντελεστής του όρου xk είναι το πλήθος των συνδυασμών που μπορούμε να επιλέξουμε k αντικείμενα από ένα σύνολο n αντικειμένων. Για το λόγο αυτό, μία γεννήτρια συνάρτηση που υπολογίζει το πλήθος συνδυασμών ή διατάξεων ονομάζεται απαριθμήτρια (enumerator).

Ότι η γεννήτρια συνάρτηση (1+x)n πράγματι εκτελεί την απαρίθμηση των συνδυασμών μπορεί να εξηγηθεί ως εξής: Έστω ένα μονομελές σύνολο {a1}. Υπάρχει 1 τρόπος να επιλεγούν 0 αντικείμενα, 1 τρόπος να επιλεγεί 1 αντικείμενο και 0 τρόποι να επιλεγούν περισσότερα αντικείμενα από το σύνολο αυτό. Άρα, για την περίπτωση αυτή, η γεννήτρια συνάρτηση είναι (1+x). Δοθέντος ενός άλλου μονομελούς συνόλου {a2}, ισχύει το ίδιο σκεπτικό ως προς τη γεννήτρια συνάρτηση. Είναι ευνόητο ότι η γεννήτρια συνάρτηση για την επιλογή από την ένωση ανεξαρτήτων συνόλων είναι το γινόμενο των αντίστοιχων γεννητριών συναρτήσεων. Επομένως, η γεννήτρια συνάρτηση για την επιλογή αντικειμένων από το διμελές σύνολο {a1,a2} είναι (1+x)2. Προφανώς, υπάρχει 1 τρόπος να επιλεγούν 0 αντικείμενα, 2 τρόποι να επιλεγεί 1 αντικείμενο, 1 τρόπος να επιλεγούν 2 αντικείμενα και 0 τρόποι να επιλεγούν περισσότερα αντικείμενα από το σύνολο αυτό. Αυτό το σκεπτικό μπορεί να γενικευθεί.

Συνέλιξη


Έστω A(x) η γεννήτρια συνάρτηση για την απαρίθμηση επιλογών από ένα σύνολο A και B(x) η γεννήτρια συνάρτηση για την απαρίθμηση επιλογών από ένα σύνολο B. Αν τα σύνολα A και B είναι ανεξάρτητα μεταξύ τους, τότε η γεννήτρια συνάρτηση για την απαρίθμηση επιλογών από το σύνολο AB είναι A(x)B(x). Πιο συγκεκριμένα, αν

A(x)=n=0anxn   και   B(x)=n=0bnxn (3.25)

τότε:

C(x)=A(x)B(x)=n=0cnxn (3.26)

όπου:

cn=a0bn+a1bn-1+a2bn-2++anb0 (3.27)

ενώ η ακολουθία c0,c1,c2, είναι η συνέλιξη (convolution) των ακολουθιών a0,a1,a2, και b0,b1,b2,. Πράγματι, το cn δίνει το πλήθος των επιλογών n αντικειμένων από το σύνολο AB. Γενικώς, μπορούμε να επιλέξουμε n αντικείμενα από την ένωση των συνόλων, επιλέγοντας j αντικείμενα από το σύνολο A και n-j από το B. Αυτό μπορεί να γίνει κατά ajbn-j τρόπους. Προσθέτοντας για όλες τις δυνατές τιμές του j, προκύπτει το ζητούμενο.

Μέχρι στιγμής θεωρήθηκε ότι η επιλογή ενός συγκεκριμένου αντικειμένου από ένα σύνολο μπορεί να γίνει μόνο μία φορά, δηλαδή πρόκειται για επιλογή χωρίς αντικατάσταση. Ας θεωρήσουμε την περίπτωση της επιλογής με αντικατάσταση. Έστω, λοιπόν, ένα μονομελές σύνολο. Από το σύνολο αυτό μπορούμε να επιλέξουμε 0 αντικείμενα κατά 1 τρόπο, 1 αντικείμενο κατά 1 τρόπο, 2 αντικείμενα κατά 1 τρόπο κοκ. Συνεπώς, η γεννήτρια συνάρτηση για την επιλογή n αντικειμένων με αντικατάσταση από ένα μονομελές σύνολο είναι:

<1,1,1,1,>  1+x+x2+x3+=11-x (3.28)

Με βάση τον κανόνα της συνέλιξης, η γεννήτρια συνάρτηση για την επιλογή n αντικειμένων από την ένωση ανεξαρτήτων συνόλων δίνεται από γινόμενο των αντίστοιχων γεννητριών συναρτήσεων. Επομένως, προκύπτει ότι η ζητούμενη γεννήτρια συνάρτηση είναι f(x)=1/(1-x)n. Το ερώτημα είναι ποιά είναι η τιμή κάποιου συντελεστή της σειράς των δυνάμεων. Για την εύρεση αυτού του κλειστού τύπου θα χρησιμοποιηθεί το Θεώρημα του Taylor. Ισχύει, λοιπόν, ότι:

f(x)=f(0)+f(0)x+f′′(0)2!x2+f′′′(0)3!x3++f(k)(0)k!xk+ (3.29)

Το θεώρημα λέει ότι η τιμή του k-οστού συντελεστή της γεννήτριας συνάρτησης 1/(1-x)n δίνεται από την τιμή της k-οστής παραγώγου στο 0, διαιρεμένη δια k!. Επομένως, κατά σειρά έχουμε:

f(x) = n(1-x)-n-1
f′′(x) = n(n+1)(1-x)-n-2
f′′′(x) = n(n+1)(n+2)(1-x)-n-3
f(k)(x) = n(n+1)(n+2)(n+k-1)(1-x)-n-k

Επομένως, η τιμή του ζητούμενου k-οστού συντελεστή της γεννήτριας συνάρτησης είναι:

f(k)(0)/k! = n(n+1)(n+k-1)k!
= (n+k-1)!(n-1)!k!=(n+k-1k)

Ο τύπος αυτός είχε αναφερθεί στο Κεφάλαιο LABEL:. Στο σημείο αυτό συνοψίζουμε για ευκολία μερικά σημαντικά μέχρι στιγμής ευρεθέντα στον Πίνακα 3.1.

Γεννήτρια
Ακολουθία συνάρτηση
<1,1,1,1,> 11-x
<1,-1,1,-1,> 11+x
<2,2,2,2,> 21-x
<2,0,2,0,> 2(1-x)2
<1,2,3,4,> 1(1-x)2
<0,1,2,3,> x(1-x)2
<1,4,9,16,> 1+x(1-x)3
<0,1,4,9,> x(1+x)(1-x)3
<0,1,1,2,3,5,8,> x1-x-x2
Πίνακας 3.1: Γεννήτριες συναρτήσεις ευρείας χρήσης

3.5 Γεννήτριες Συναρτήσεις και Αναδρομικές Εξισώσεις

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

Αρχικά, ας εξετάσουμε μία απλή περίπτωση. Δίνεται, λοιπόν, η αναδρομική εξίσωση: tk=3tk-1. Έστω ότι f(x) είναι η ζητούμενη γεννήτρια συνάρτηση. Διαδοχικά έχουμε:

f(x) = a0+a1x+a2x2+a3x3   +a4x4+
3xf(x) =    3a0x+ 3a1x2+3a2x3+
f(x)-3xf(x) = a0+(a1-3a0)x+(a2-3a1)x2+

Όμως, οι παρενθέσεις της τελευταίας σχέσης ισούνται με 0. Επομένως, ισχύει:

f(x)-3xf(x) = a0  
f(x) = a01-3x=a0(1+3x+32x2+33x3+)

Συνεπώς, ισχύει tk=3ka0, όπου βέβαια a0 είναι η αρχική συνθήκη.

Ας εξετάσουμε τώρα μία πιο σύνθετη αναδρομική εξίσωση:

tk= 2tk-1+3tk-2 (3.30)

όπου k2, ενώ επίσης ισχύει t0=t1=1. Η προκύπτουσα ακολουθία είναι: 1, 1, 5, 13, 41, 121, 365, . Για την εύρεση κλειστού τύπου για το tk θεωρούμε τη γεννήτρια συνάρτηση f(x) όπου:

f(x)= 1+x+5x2+13x3+41x4+121x5+365x6+ (3.31)

Και πάλι με μία σειρά αλγεβρικών χειρισμών μπορούμε να βρούμε τον κλειστό τύπο της γεννήτριας συνάρτησης και, επομένως, τον τύπο κάθε συντελεστή:

f(x) = a0+a1x+a2x2+a3x3   +a4x4+
2xf(x) =    2a0x+ 2a1x2+ 2a2x3+
3x2f(x) =        3a0x2+ 3a1x3+

Αφαιρώντας κατά μέλη έχουμε:

f(x)-2xf(x)-3x2f(x)=a0+(a1-2a0)x+(a2-2a1-3a0)x2+(a3-2a2-3a1)x3+ (3.32)

Όμως, εξ ορισμού είναι γνωστό ότι an-2an-1-3an-2=0 και, επομένως, ισχύει:

f(x)-2xf(x)-3x2f(x) = a0+(a1-2a0)x  
f(x) = 1-x1-2x-3x2
= 1-x(1-3x)(1+x)
= 1211-3x+1211+x

Στην τελευταία σχέση διαπιστώνουμε γνωστούς κλειστούς τύπους. Έτσι, καταλήγουμε ότι:

tn=12 3n+12(-1)n (3.33)

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

an = 2an-1+bn-1
bn = an-1+2bn-1

όπου a0=1 και b0=0. Παρατηρούμε, όμως, ότι οι δύο εξισώσεις αυτές είναι «διαπλεκόμενες», γεγονός που καθιστά την επίλυσή τους δυσκολότερη.

Αρχικά, λοιπόν, δεχόμαστε ότι ισχύει:

A(x)=n=0anxn  και  B(x)=n=0bnxn (3.34)

Πολλαπλασιάζουμε τις αρχικές αναδρομικές εξισώσεις επί xn, οπότε προκύπτει:

anxn = 2an-1xn+bn-1xn
bnxn = an-1xn+ 2bn-1xn

Λόγω της ύπαρξης του δείκτη n–1, στις επόμενες σχέσεις το άθροισμα αρχίζει από 1 και όχι από 0. Έχουμε λοιπόν:

n=1anxn = n=12an-1xn+n=1bn-1xn
n=1bnxn = n=1an-1xn+n=12bn-1xn

Συνεπώς, ισχύει:

A(x)-a0x0 = 2xn=12an-1xn-1+xn=1bn-1xn-1
B(x)-b0x0 = xn=1an-1xn-1+ 2xn=12bn-1xn-1

ή ισοδύναμα:

A(x)-1 = 2xn=02an-1xn-1+xn=0bn-1xn-1
B(x)-0 = xn=0an-1xn-1+ 2xn=02bn-1xn-1

και

A(x)-1 = 2xA(x)+xB(x)
B(x)-0 = xA(x)+ 2xB(x)

Φθάσαμε σε ένα γραμμικό σύστημα 2 εξισώσεων με 2 αγνώστους, το οποίο επιλύεται και δίνει:

A(x) = 1-2x1-4x+3x2=1211-x+1211-3x
B(x) = x1-4x+3x2=-1211-x+1211-3x

Επομένως, από αυτές τις γεννήτριες συναρτήσεις προκύπτει ότι οι σειρές δυνάμεων είναι:

A(x)=n=01+3n2xn  και  B(x)=n=03n-12xn (3.35)

3.6 Βιβλιογραφική Συζήτηση

Το αντικείμενο των γεννητριών συναρτήσεων είναι τεράστιο. Οι απαρχές του πηγαίνουν πίσω στον De Moivre. Στο κεφάλαιο αυτό εξετάσθηκαν οι κανονικές γεννήτριες συναρτήσεις. Στη βιβλιογραφία αναφέρεται ένα πλήθος άλλων τύπων γεννητριών συναρτήσεων, όπως οι εκθετικές, οι πιθανοτικές, οι σειρές Lambert, οι σειρές Bell, οι σειρές Dirichlet και άλλες. Το βιβλίο του Wilf διαπραγματεύεται αποκλειστικά το αντικείμενο αυτό [197]. Μάλιστα το βιβλίο είναι διαθέσιμο στο Διαδίκτυο και περιέχει λυμένες και άλυτες ασκήσεις. Στα βιβλία των Govinda Rao [65], Liu [104], Bryant [24], Graham-Knuth-Patashnik [66] και Hofri [77] υπάρχουν εκτενή αντίστοιχα κεφάλαια (η σειρά των βιβλίων αντιστοιχεί σε αυξανόμενο βαθμό δυσκολίας). Η Άσκηση 6 προέρχεται από το άρθρο [57], ενώ οι Ασκήσεις 9-10 από το άρθρο [59].

3.7 Ασκήσεις

  1. 1.

    Να βρεθούν οι γεννήτριες συναρτήσεις των ακολουθιών:

    • <1,2,4,8,>, και

    • <1,8,27,64,>.

  2. 2.

    Δίνεται η ακολουθία: <2,4,6,8,>. Θα ανέμενονταν οι επόμενες τιμές της ακολουθίας να είναι: 10, 12 κοκ. Ποιά είναι η γεννήτρια συνάρτηση που παράγει αυτή την ακολουθία; Να βρεθούν άλλες γεννήτριες συναρτήσεις που να δίνουν ακολουθίες με τους ίδιους 4 πρώτους όρους, αλλά η συνέχεια να είναι διαφορετική.

  3. 3.

    Να βρεθεί η συνάρτηση για τους συντελεστές του xn των γεννητριών συναρτήσεων:

    • f(x)=x31-x2, και

    • f(x)=x2-11+3x3.

  4. 4.

    Ποιοί είναι οι συντελεστές των δυνάμεων του x που αντιστοιχούν στη γεννήτρια συνάρτηση:

    • f(x)=11-2x3, και

    • f(x)=11-2x.

  5. 5.

    Κατά πόσους τρόπους μπορεί:

    • να τοποθετηθούν n πράσινα αντικείμενα σε ένα δοχείο;

    • να επιλεγεί ένα αντικείμενο από ένα δοχείο με n διαφορετικά χρωματιστά αντικείμενα;

  6. 6.

    Δύο παίκτες Π1 και Π2 παίζουν τάβλι και το τελικό αποτέλεσμα είναι Σ1:Σ2. Να υπολογισθεί ο αριθμός των διαφορετικών τρόπων που μπορούμε να φθάσουμε στο αποτέλεσμα αυτό. Για παράδειγμα, αν το τελικό αποτέλεσμα είναι 2:1, τότε υπάρχουν 3 διαφορετικοί τρόποι: (α) 0:1, 1:1, 2:1, (β) 1:0, 1:1, 2:1 και (γ) 1:0, 2:0, 2:1.

  7. 7.

    Χρησιμοποιώντας τον κανόνα της συνέλιξης να βρεθεί με πόσους τρόπους μπορούν να τοποθετηθούν n φρούτα σε ένα δοχείο υπό τους εξής περιορισμούς:

    • το πλήθος των μήλων να είναι άρτιο,

    • το πλήθος των μπανανών να είναι πολλαπλάσιο του 3,

    • το πλήθος των πορτοκαλιών να είναι τουλάχιστον 4 και

    • το πλήθος των αχλαδιών να είναι το μέγιστο 1.

  8. 8.

    Κατά πόσους τρόπους μπορούμε να δώσουμε n3 ευρώ σε 3 άτομα:

    • με τον περιορισμό ότι κάθε άτομο θα πάρει τουλάχιστον 1 ευρώ;

    • χωρίς κάποιον περιορισμό;

    Πόσες λύσεις έχει η εξίσωση x+y+z=n;

  9. 9.

    Με πόσους τρόπους μπορεί να καλυφθεί ένα ορθογώνιο 2xn με κομμάτια ντόμινο 2x1; Η άσκηση να επιλυθεί δοκιμάζοντας διαδοχικά για τιμές n=0,1,2,. Τι παρατηρείτε;

  10. 10.

    Με πόσους τρόπους μπορεί να καλυφθεί ένα ορθογώνιο 3xn με κομμάτια ντόμινο 2x1; Επίσης, με πόσους τρόπους μπορεί να καλυφθεί ένα παραλληλεπίπεδο 2x2xn με τούβλα 2x1x1;

  11. 11.

    Να βρεθεί η γεννήτρια συνάρτηση που παράγει την ίδια ακολουθία με την έξοδο των επομένων ψευδικωδικών:

    x <-- 3; i <--1;
    while i<=5 do
       print(x);
       x <-- 2x-2;
       i <-- 1+1;
    
    x <-- 1; i <--1;
    while i<=5 do
       print(x);
       x <-- 5x-6;
       i <-- 1+1;
    
    x <-- 6; i <--1;
    while i<=5 do
       print(x);
       x <-- trunc(x/3)+6;
       i <-- 1+1;
    
  12. 12.

    Δίνεται η αναδρομική εξίσωση:

    tk=tk-1+tk-2-tk-3 (3.36)

    όπου k3, ενώ επίσης ισχύει t0=t1=t2=1. Με τη βοήθεια γεννήτριας συνάρτησης να βρεθεί κλειστός τύπος για το tk.

  13. 13.

    Δίνεται η αναδρομική εξίσωση:

    tk= 2tk-1-1 (3.37)

    όπου k1, ενώ επίσης ισχύει t0=1. Με τη βοήθεια γεννήτριας συνάρτησης να βρεθεί κλειστός τύπος για το tk.

  14. 14.

    Δίνεται η αναδρομική εξίσωση:

    3tk=-4tk-1+tk-2 (3.38)

    όπου k2, ενώ επίσης ισχύει t0=t1=1. Με τη βοήθεια γεννήτριας συνάρτησης να βρεθεί κλειστός τύπος για το tk.