La génération de fonctions est utile lorsque vous concevez des algorithmes de comptage. Autrement dit, non seulement lorsque vous recherchez le nombre d'objets ayant une certaine propriété, mais également lorsque vous recherchez un moyen d'énumérer ces objets (et, peut-être, de générer un algorithme pour compter les objets). Il y a une très bonne présentation dans le chapitre 7 de Concrete Mathematics par Ronald Graham, Donald Knuth et Oren Patashnik . Les exemples ci-dessous sont tirés de ces livres (les erreurs et le manque de clarté sont les miens).
Supposons que vous cherchiez les moyens de faire des changements avec un ensemble de pièces donné. Par exemple, avec les coupures américaines courantes¹, les pièces possibles sont . Pour donner ¢ 42 en monnaie, une possibilité est ; une autre possibilité est . Nous écrirons . Plus généralement, nous pouvons écrire une fonction génératrice pour toutes les façons d'apporter du changement:
En termes plus techniques, est un terme dans l'espace des séries de puissance sur les cinq variables[ 25 ] [ 10 ] [ 5 ] [ 1 ] [ 1 ] [ 10 ] [ 10 ] [ 10 ] [ 10 ] [ 1 ] [ 1 ] 42 ⟨ [ 25 ] [ 10 ][ 1 ] , [ 5 ] , [ 10 ] , [ 25 ] , [ 100 ][ 25 ] [ 10 ] [ 5 ] [ 1 ] [ 1 ][ 10 ] [ 10 ] [ 10 ] [ 10 ] [ 1 ] [ 1 ]H = Σ h ≥ 0 Σ q ≥ 0 Σ d ≥ 0 Σ n ≥ 0 Σ p ≥ 0 [ 100 ] h [ 25 ] q [ 10 ] d [ 5 ] n [ 1 ] p42 ⟨ [ 25 ] [ 10 ] [ 5 ] [ 1 ]2⟩ = ⟨ [ 10 ]4[ 1 ]2⟩
H= ∑h ≥ 0∑q≥ 0∑ré≥ 0∑n ≥ 0∑p ≥ 0[ 100 ]h[ 25 ]q[ 10 ]ré[ 5 ]n[1 ]p
[ 100 ] , [ 25 ] , [ 10 ] , [ 5 ] , [ 1 ] ⟨ [ 100 ] h [ 25 ] q [ 10 ] d [ 5 ] n [ 1 ] p ⟩ = 100 h + 25 q + 10 d + 5 n + p v v H PH[ 100 ] , [ 25 ] , [ 10 ] , [ 5 ] , [ 1 ]. Définissez l'évaluation d'un monôme dans cet espace par
Ensuite, les façons de donner cents en variation sont le nombre de monômes dont l'évaluation est . Nous pouvons exprimer de manière incrémentale, en notant d'abord les façons dont donne le changement en centimes seulement, puis les façons en donnant le changement en centimes et nickels, et ainsi de suite. ( dire pas de pièce.)
⟨ [ 100 ]h[ 25 ]q[ 10 ]ré[ 5 ]n[ 1 ]p⟩ = 100 h + 25 q+ 10 d+ 5 n + p
vvHPI P = I + [ 1 ] + [ 1 ] 2 + [ 1 ] 3 + … = INjeP= Je+ [ 1 ] + [ 1 ]2+ [ 1 ]3+ … = Jeje- [ 1 ]N= ( I+ [ 5 ] + [ 5 ]2+ [ 5 ]3+ … ) P= Pje- [ 5 ]D = ( I+ [ 10 ] + [ 10 ]2+ [ 10 ]3+ … ) N= Nje- [ 10 ]Q = ( I+ [ 25 ] + [ 25 ]2+ [ 25 ]3+ … ) D = Dje- [ 25 ]H= ( I+ [ 100 ] + [ 100 ]2+ [ 100 ]3+ … ) Q = Qje- [ 100 ]
Si vous voulez compter et non seulement énumérer les façons d'apporter des changements, alors il existe un moyen simple d'utiliser la série formelle que nous avons obtenue. Appliquer l'homomorphisme
Le coefficient de dans est le nombre de façons de donner cents en monnaie.
S:[ 1 ] ↦ X,[ 5 ] ↦ X5,[ 10 ] ↦ Xdix, [ 25 ] ↦ X25, [ 100 ] ↦ X100
XvS( C)v
Un exemple plus difficile: supposons que vous vouliez étudier toutes les façons de carreler des rectangles avec des dominos 2 × 1. Par exemple, il existe deux façons de carreler un rectangle 2 × 2, soit avec deux dominos horizontaux, soit avec deux dominos verticaux. Compter le nombre de façons de carreler un rectangle est assez facile, mais le cas devient rapidement non évident. Nous pouvons énumérer tous les pavages possibles d'une bande horizontale de hauteur 3 en collant les dominos ensemble, ce qui donne rapidement des motifs répétitifs:
2 × n3 × n
⎧⎩⎨⎪⎪⎪⎪⎪⎪U= o + L V+ Γ Λ + ≡ UV= JeU+ =-VΛ =jeU+-=Λ
où les formes amusantes représentent des arrangements de dominos élémentaires: n'est pas un domino, est un domino vertical au-dessus de la partie gauche d'un domino horizontal, est un domino vertical aligné avec le bas de la bande de hauteur 3, est un domino horizontal aligné avec le haut de la bande plus deux dominos horizontaux en dessous et un pas à droite, etc. Ici, la multiplication représente la concaténation horizontale et n'est pas commutative, mais il existe des équations entre les motifs élémentaires qui forment des variables dans cette série de puissances. Comme précédemment avec les pièces, nous pouvons remplacer pour chaque domino et obtenir une série génératrice pour le nombre de pavages d'un
oLje-=X3 × ( 2 n / 3 ) rectangle (c'est-à-dire que le coefficient de est le nombre de façons de carreler un rectangle de la zone , qui contient dominos et a la largeur ). La série peut également être utilisée de manière plus polyvalente; par exemple, en distinguant les dominos verticaux et horizontaux, nous pouvons compter les pavages avec un nombre donné de dominos verticaux et horizontaux.
X3 k6 k3 k2 k
Encore une fois, lisez Concrete Mathematics pour une présentation moins précipitée³.
¹ Je sais que ma liste est incomplète; supposons un US simplifié adapté aux exemples mathématiques.²
² De plus, s'il apparaît, supposons des pièces sphériques.
³ Et une meilleure composition.