Solution pour le challenge 22
Notons, pour tout et pour tout ensemble de cardinal :
- le nombre de parties de de cardinal congru à 0 modulo 3
- le nombre de parties de de cardinal congru à 1 modulo 3
- le nombre de parties de de cardinal congru à 2 modulo 3
Comme le nombre de parties de de cardinal est égal à alors :
sachant que cette somme doit se poursuivre « tant que c’est possible », ce qui veut dire qu’on ajoute les entiers tant que . Bref :
où le symbole désigne la partie entière par défaut du réel c’est-à-dire le plus grand entier inférieur ou égal à . On voit de la même manière que :
et
Afin, de calculer explicitement voici un astuce géniale.
On fait intervenir le nombre complexe :
qui a le bon goût d’être une « racine cubique de l’unité » ce qui signifie simplement que
En effet, d’après la formule de Moivre :
En conséquence, la suite géométrique est périodique, de période 3, ce qui va s’avérer crucial pour la suite des opérations.
On observe en outre que :
Maintenant, appliquons la formule du binôme :
On a simplement séparé les termes qui composent cette somme en trois groupes : d’un côté les termes d’indice multiple de 3, d’un autre côté ceux dont l’indice est congru à 1 modulo 3 et, pour finir, ceux dont l’indice est congru à 2 modulo 3.
Compte tenu de ce qui a été dit au sujet du nombre complexe on dispose de deux égalités supplémentaires :
Nous disposons donc des trois relations suivantes :
En les ajoutant membre à membre, et en tenant compte de il vient :
Or, et sont conjugués et, par conséquent, et sont aussi conjugués. Ceci conduit à :
Voilà déjà une formule explicite pour mais elle est un peu « compliquée ». On sait bien que est un entier naturel et l’on préférerait disposer d’une formule plus simple.
Pour cela, on va tâcher de faire disparaître toute référence aux nombres complexes et à la trigonométrie…
On observe que, pour tout :
d’où, en passant aux parties réelles :
c’est-à-dire :
Finalement :
Passons à l’examen de la parité de Cette question ne semble pas facile d’accès avec la formule explicite obtenue ci-dessus.
Pourtant, en rédigeant un programme de calcul de (voir en annexe pour une version écrite en Python) et en observant la parité de pour de petites valeurs de on découvre une apparente régularité
1, 1, 1, 2, 5, 11, 22, 43, 85, 170, 341, 683, 1366, 2731, 5461, 10922, …
Pour , les pairs sont et
On est donc naturellement conduit à la …
Conjecture
Pour tout entier :
ce qu’on va maintenant tâcher d’établir rigoureusement.
Pour cela, on va faire un petit raisonnement combinatoire.
Considérons un ensemble de cardinal et nommons un élément particulier de . Les parties de dont le cardinal est multiple de sont :
- les parties de de cardinal multiple de
- les unions du singleton et d’une partie de de cardinal congru à 2 modulo 3
Par conséquent :
Considérons maintenant un ensemble de cardinal et nommons deux éléments particuliers. Les parties de dont le cardinal est multiple de 3 sont :
- les parties de de cardinal multiple de
- les unions de l’un des deux singletons ou et d’une partie de de cardinal congru à 2 modulo 3
- les unions de la paire et d’une partie de de cardinal congru à 1 modulo 3
Par conséquent :
Considérons enfin un ensemble de cardinal et nommons trois éléments particuliers. Les parties de dont le cardinal est multiple de 3 sont :
- les parties de de cardinal multiple de
- les unions de l’un des trois singletons ou et d’une partie de de cardinal congru à 2 modulo 3
- les unions de l’une des trois paires ou et d’une partie de de cardinal congru à 1 modulo 3
- l’union de et d’une partie de de cardinal multiple de 3
Par conséquent :
En combinant et on obtient la relation de récurrence linéaire d’ordre 3 suivante :
Notons désormais :
C’est le reste de la division de par 2 : cet entier vaut 0 si est pair et 1 sinon. Alors, pour tout (en réduisant modulo 2 l’égalité précédente) :
Comme on voit que les premiers termes de la suite sont :
1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, …
On peut aisément montrer par récurrence que, pour tout :
ce qui permet de conclure.
Annexe : programmation en Python
Calcul des coefficients binomiaux (solution récursive, utilisant la formule du pion)
def binomial(n,k): if k == 0: return 1 elif 2 * k > n: return binomial(n, n-k) else: return (n * binomial(n-1,k-1)) // k
Calcul de la somme
def A(n): s = 0 k = 0 while k <= n: s += binomial(n, k) k += 3 return s
Pour consulter l’énoncé, c’est ici