Énumération des arbres unaires-binaires à n+1 nœuds
Aucune connaissance sur les arbres n'est nécessaire !
Arbre binaire - rappel inutile
On rappelle la caractéristique d'un arbre binaire :
- Soit c'est un arbre vide.
- Soit c'est un arbre qui a exactement deux sous-arbres (un à gauche, un à droite) qui sont des arbres binaires.
Il est inutile d'utiliser ici cette propriété, nous allons définir une nouvelle classe d'arbres qui est différente.
Arbre unaire-binaire
On définit un arbre unaire-binaire comme étant :
- Soit un arbre vide.
- Soit un arbre ayant un ou deux sous-arbres qui sont alors des arbres unaires-binaires.
- Si le sous-arbre est unique,
- il n'est ni à droite, ni à gauche, il est au centre.
- Il peut être vide.
- Si les sous-arbres sont deux,
- il y en a un à gauche, un autre à droite.
- Ils sont alors non vides.
- Si le sous-arbre est unique,
Un arbre vide n'a pas de nœud, sinon, un arbre possède un nœud racine et ceux de ses sous-arbres.
Un arbre unaire-binaire à \(7+1\) nœuds.
Dans tout cet exercice, on parlera d'arbres à \(n+1\) nœuds, comme ci-dessus à \(7+1\) nœuds. En effet, on pourra plus facilement dire qu'il y a la racine et \(n\) nœuds à se répartir soit au centre, soit à gauche et à droite.
Exercice
Coder une fonction motzkin qui prend un entier positif en paramètre et qui renvoie le nombre d'arbres unaires-binaires à \(n+1\) nœuds.
Cette fonction est nommée ainsi d'après le mathématicien Théodore Motzkin (1908-1970).
- Contraintes
-
- \(0 \leqslant n < 10^3\)
- Fonction récursive interdite
- Modules
mathetfunctoolsinterdits - Code source limité à 2000 caractères
Les arbres unaires-binaires à \(3+1\) nœuds
Il y en a 4 :
Les arbres unaires-binaires à \(4+1\) nœuds
Il y en a 9 :
Les 21 arbres unaires-binaires à \(5+1\) nœuds
Les 9 issus d'une branche au centre, puis un arbre unaire-binaire à \(5\) nœuds.
Les 1×4 issus de
- sous-arbre de gauche à \(1\) nœud et
- sous-arbre de droite à \(4\) nœuds.
Les 1×2 issus de
- sous-arbre de gauche à \(2\) nœuds et
- sous-arbre de droite à \(3\) nœuds.
Les 2×1 issus de
- sous-arbre de gauche à \(3\) nœuds et
- sous-arbre de droite à \(2\) nœuds.
Les 4×1 issus de
- sous-arbre de gauche à \(4\) nœuds et
- sous-arbre de droite à \(1\) nœud.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)