Casser 2022

PG
PG
Modifié (January 2022) dans Arithmétique
Bonjour
Tout d'abord meilleurs vœux à tous pour cette nouvelle année.
Ensuite, une question qui m'a traversé l'esprit le 31/12, mais à laquelle je ne me suis pas encore attaqué:
"De combien de façons différentes peut-on décomposer 2022 en somme de carrés d'entiers naturels strictement positifs? Et comment trouver ces décompositions" ?
Cordialement.
PG

Réponses

  • PG
    PG
    Modifié (January 2022)
    Mille excuses !
    Je précise "De combien de façons différentes peut-on décomposer 2022 en somme de carrés d'entiers naturels strictement positifs DEUX A DEUX DISTINCTS ? Et comment trouver ces décompositions" ?
  • Un programme Python ou Scratch doit savoir faire ça 😀
  • Zgrb
    Modifié (January 2022)
    R en dénombre 23400p<-function(n,l){z<-0;a<-floor(sqrt(n))
    if(a*a==n){print(c(l,a))
    z<-z+1;a<-a-1}
    if(length(l)>0){a<-min(a,min(l)-1)}
    while((a*(a+1)*(2*a+1))>6*n){z<-z+p(n-a*a,c(l,a));a<-a-1}
    return(z)}
    
    > p(2022,c())
    [1] 23400
  • Rescassol
    Modifié (January 2022)
    Bonjour
    Qu'est ce que la fonction c()  ?
    Cordialement,
    Rescassol
  • lourrran
    Modifié (January 2022)
    J'arrive à 27685

    PROCÉDURE ff(ssum , nb  )
      SI ssum = 0 ALORS  RENVOYER 1
      SI nb * nb > ssum ALORS RENVOYER 0  
      RENVOYER ff ( ssum , nb+1  ) + ff ( ssum - nb*nb, nb+1 )
    print ( ff(2022,1) )  

    Variante pour lister toutes les réponses :
    PROCÉDURE ff(ssum , nb , ch  )
      SI ssum = 0 ALORS 
         trace ( ch) 
         RENVOYER 1
      FIN
      SI nb * nb > ssum ALORS RENVOYER 0  
      RENVOYER ff ( ssum , nb+1  , ch ) + ff ( ssum - nb*nb, nb+1 ,ch + " " + nb )
    print ( ff(2022,1, "" ) ) 
    Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. Benjamin Franklin
  • def nb_decomp_carres(n):
        tab = {0: [[]]}
        for i in range(1, int(n**.5)+1):
            i2 = i*i
            temp = {}
            for p in tab:
                q = p + i2
                if q <= n:
                    temp[q] = [decomp + [i] for decomp in tab[p]]
            for q in temp:
                if q in tab:
                    tab[q] += temp[q]
                else:
                    tab[q] = temp[q]
        return tab.get(n, [])
    Voici une version en Python, en programmation dynamique, plutôt qu'en récursif comme ci-dessus.
    Le programme renvoie la liste de toutes les décompositions possibles.
    Si on ne veut que leur nombre, il suffit de remplacer "tab.get(n, [])" par "len(tab.get(n, []))" à la dernière ligne.

    Pour 2022, je trouve 27685 décompositions en sommes de carrés distincts.
  • Il m'en manque...
    Pouvez vous me donner la liste de vos décompositions pour 400 (J'en trouve 44, Cf. ci-dessous) que je puisse comparer.
    Rescassol, la fonction c() sert à concaténer avec R. du coup, c() crée un vecteur vide.

    > p(400,c())
    [1] 20
    [1] 17  7  6  5  1
    [1] 17  7  6  4  3  1
    [1] 16 12
    [1] 15 11  5  4  3  2
    [1] 15 10  7  5  1
    [1] 15 10  7  4  3  1
    [1] 15  9  7  6  3
    [1] 15  9  7  5  4  2
    [1] 15  8  7  6  5  1
    [1] 15  8  7  6  4  3  1
    [1] 14 13  5  3  1
    [1] 14 11  7  5  3
    [1] 14 10  8  6  2
    [1] 14  9  8  7  3  1
    [1] 14  9  7  6  5  3  2
    [1] 13 12  7  5  3  2
    [1] 13 12  6  5  4  3  1
    [1] 13 11 10  3  1
    [1] 13 11  9  5  2
    [1] 13 11  9  4  3  2
    [1] 13 11  8  6  3  1
    [1] 13 11  7  6  5
    [1] 13 11  7  6  4  3
    [1] 13 10  9  7  1
    [1] 13 10  9  5  5
    [1] 13 10  9  5  4  3
    [1] 13  9  8  7  6  1
    [1] 13  9  8  6  5  5
    [1] 13  9  8  6  5  4  3
    [1] 12 16
    [1] 12 11 10  5  3  1
    [1] 12 11  9  5  4  3  2
    [1] 12 11  8  6  5  3  1
    [1] 12 11  7  6  5  5
    [1] 12 11  7  6  5  4  3
    [1] 12 10  9  7  5  1
    [1] 12 10  9  7  4  3  1
    [1] 12  9  8  7  6  5  1
    [1] 12  9  8  7  6  4  3  1
    [1] 11 10  9  8  5  3
    [1] 11 10  9  7  7
    [1] 11 10  9  7  6  3  2
    [1] 11  9  8  7  6  7
    
    [1] 44

  • Désolé pour le double post, j'ai réparé mon code, je trouve 55 pour 400 et bien 27685 pour 2022
  • Rescassol
    Modifié (January 2022)
    Bonjour
    Et voilà une autre curiosité :
    $$9(1+2)^3+\dfrac{4!(6!-5!-7)}{8}=2022$$
    Cordialement,
    Rescassol
  • PG
    PG
    Modifié (January 2022)
    Merci pour toutes vos réponses !
    Elles sont satisfaisantes au plan opérationnel.
    Mais comment attaquer la chose au plan théorique ?
    That is the question comme on dit outre Manche...
  • On peut déjà regarder dans OEIS, comme d'habitude : https://oeis.org/A033461

  • Swingmustard
    Modifié (January 2022)
    Bonjour,
    Hors sujet pour les carrés, mais 2022 deux fois somme de deux entiers, hu hu.
    Déjà posté fin 2021, donc pardon pour la redite.
    En fait, j'attendais un pronostic sur $h^2$.
    Pour le triangle quelconque, il manque $2\overrightarrow{AB}.\overrightarrow{AC}$ à $a^2$ pour faire $b^2+c^2$.
    Il manque $\overrightarrow{AB}.\overrightarrow{AC}$ à $c'a$ pour faire $b^2$.
    Aussi, que manque-t-il à $b'c'$ pour faire $h^2$ : $$\overrightarrow{AB}.\overrightarrow{AC},~~~~\dfrac{3}{2}\overrightarrow{AB}.\overrightarrow{AC},~~~~2\overrightarrow{AB}.\overrightarrow{AC}~~?$$
    Amicalement,
    Swingmustard
  • Poirot
    Modifié (January 2022)
    Sur le plan théorique, c'est un vieux résultat que le nombre de manières d'écrire l'entier $n$ comme somme de deux carrés d'entiers relatifs est $$4 \bigg(\sum_{\underset{d \equiv 1 \text{ mod } 4}{d \mid n}} 1 - \sum_{\underset{d \equiv 3 \text{ mod } 4}{d \mid n}} 1\bigg).$$ Une jolie manière de la démontrer est d'introduire la fonction $\theta$ de Jacobi, définie par $$\theta(x) = \sum_{n \in \mathbb Z} x^{n^2}$$ pour $|x| < 1$ (ce n'est pas à proprement parler la fonction de Jacobi, qui est traditionnellement la fonction de $t$ correspondante, où l'on a écrit $x = e^{2i\pi t}$, et $\mathfrak{Im}(t) > 0$, mais passons). On a évidemment $\theta(x)^2 = \sum_{n \in \mathbb N} a_n x^n$, où $a_n$ est le nombre de couples $(a, b) \in \mathbb Z^2$ tels que $a^2+b^2=n$. Avec quelques manipulations algébriques partant de la remarquable formule du triple produit de Jacobi : $$\theta(x) = \prod_{n \geq 1} (1-x^{2n})(1-x^{2n-1})^2,$$ on en déduit (voir https://web.maths.unsw.edu.au/~mikeh/webpapers/paper21.pdf par exemple) l'expression suivante de $\theta(x)^2$ : $\theta(x)^2 = 1 + 4 \sum_{n \geq 0} (-1)^n \frac{x^{2n+1}}{1-x^{2n+1}}$, d'où l'on tire le résultat en développant les fractions en séries et en identifiant les coefficients. Il existe aussi des démonstrations élémentaires de ce résultat, mais beaucoup moins élégantes et très fastidieuses.

    Il existe des formules analogues pour les puissances $4$-ième, $6$-ième et $8$-ième de $\theta$, et on peut en déduire des formules pour le nombre de représentations de $n$ en somme de $4, 6$ ou $8$ carrés. De manière générale, les puissances paires peuvent être traitées avec des méthodes liées aux fonctions modulaires. Pour les puissances impaires c'est plus compliqué. Je ne sais pas si on connaît même théoriquement des formules pour ces puissances, il existe au moins une formule pour le nombre de représentations de $n$ en somme de $3$ carrés, due à Gauss.
Connectez-vous ou Inscrivez-vous pour répondre.