Nombres que l'on peut atteindre
Citation de Yves Farcy le 7 février 2021, 13 h 45 minMais au fait quels sont tous les nombres que l'on peut atteindre avec :
\(\pm 1\pm 2\pm 3\pm\ldots\pm98\pm99\pm100\)
et si on se choisit un nombre cible parmi eux, peut-on trouver une méthode ou écrire un algorithme qui nous donnera au moins une de ses décompositions ?
Mais au fait quels sont tous les nombres que l'on peut atteindre avec :
\(\pm 1\pm 2\pm 3\pm\ldots\pm98\pm99\pm100\)
et si on se choisit un nombre cible parmi eux, peut-on trouver une méthode ou écrire un algorithme qui nous donnera au moins une de ses décompositions ?
Citation de Brigitte Goulard le 27 février 2021, 15 h 42 minOui , en écrivant un algorithme qui teste toutes les sommes possibles.
encore faut-il écrire cet algorithme. en faisant varier uniquement le + ou - pour chaque nombre; donc il y aurait 2^100 calculs. ... A VOIR
Oui , en écrivant un algorithme qui teste toutes les sommes possibles.
encore faut-il écrire cet algorithme. en faisant varier uniquement le + ou - pour chaque nombre; donc il y aurait 2^100 calculs. ... A VOIR
Citation de Sébastien Dumortier le 3 mars 2021, 18 h 41 minAvec le petit programme en python :
liste=[-1,1]
for i in range(2,101):
@print(i)
@liste_suite=[]
@for base in liste:
@@liste_suite=liste_suite+[base-i]
@@liste_suite=liste_suite+[base+i]
@liste=list(set(liste_suite))
liste.sort()
print(liste)les "@" représentent les tabulations, que je n'arrive pas à faire dans ce message.
on constate que tous les nombres pairs sont atteignables, et aucun impair.
Remarque qui se généralise en fonction de la parité du plus grand entier de la liste.
On peut améliorer pour déterminer le nombre de combinaisons, et afficher les combinaisons également.
Avec le petit programme en python :
liste=[-1,1]
for i in range(2,101):
@print(i)
@liste_suite=[]
@for base in liste:
@@liste_suite=liste_suite+[base-i]
@@liste_suite=liste_suite+[base+i]
@liste=list(set(liste_suite))
liste.sort()
print(liste)
les "@" représentent les tabulations, que je n'arrive pas à faire dans ce message.
on constate que tous les nombres pairs sont atteignables, et aucun impair.
Remarque qui se généralise en fonction de la parité du plus grand entier de la liste.
On peut améliorer pour déterminer le nombre de combinaisons, et afficher les combinaisons également.
Citation de Yves Farcy le 7 mars 2021, 15 h 35 min1.Une proposition pour montrer "à la main" que tous les nombres pairs sont atteignables :
On part de S = 1+2+3+...+99+100 = 5050
Changer un signe + en signe - revient à soustraire à S le double du nombre qui suit le signe.
Ainsi changer +1 en -1 dans S revient à soustraire 2 à S pour obtenir 5048
En changeant dans S uniquement +2 en -2, on obtient 5046 et ainsi de suite jusqu'à changer + 100 en -100 ; puis on garde -100 et on repart en changeant +1 en -1 et ainsi de suite de 2 en 2 jusqu'à obtenir -5050.
Par symétrie on peut bien sûr partir de -5050
2.Reste la question : combien de décompositions pour chaque nombre ?
Prenons un exemple simple, on veut atteindre 5040.
J'utilise le raisonnement précédent : on part de S = 5050 , on calcule la différence 5050-5040 = 10
On peut donc changer le signe 5 mais aussi les signes de 4 et 1 ou ceux de 3 et 2 : il y a trois solutions qui correspondent aux partitions strictes de 5.
Si je ne dis pas de bêtises, cela reste valable jusqu'à 4850 (et donc aussi entre -5050 et -4850) où il y aura autant de solutions que de partitions strictes de 100 mais après, en suivant ce raisonnement, il y aura des partitions à enlever...et ça ne va pas être de la tarte... déjà que le nombre de partitions strictes d'un nombre, c'est pas du gâteau...(on peut avoir une idée de la suite sur l'OEIS avec les valeurs de 1 à 5000 ici).
@sdumortier
si tu peux donc améliorer ton petit programme pour donner le nombre de décompositions pour chaque nombre, ça serait chouette !
A suivre...
1.Une proposition pour montrer "à la main" que tous les nombres pairs sont atteignables :
On part de S = 1+2+3+...+99+100 = 5050
Changer un signe + en signe - revient à soustraire à S le double du nombre qui suit le signe.
Ainsi changer +1 en -1 dans S revient à soustraire 2 à S pour obtenir 5048
En changeant dans S uniquement +2 en -2, on obtient 5046 et ainsi de suite jusqu'à changer + 100 en -100 ; puis on garde -100 et on repart en changeant +1 en -1 et ainsi de suite de 2 en 2 jusqu'à obtenir -5050.
Par symétrie on peut bien sûr partir de -5050
2.Reste la question : combien de décompositions pour chaque nombre ?
Prenons un exemple simple, on veut atteindre 5040.
J'utilise le raisonnement précédent : on part de S = 5050 , on calcule la différence 5050-5040 = 10
On peut donc changer le signe 5 mais aussi les signes de 4 et 1 ou ceux de 3 et 2 : il y a trois solutions qui correspondent aux partitions strictes de 5.
Si je ne dis pas de bêtises, cela reste valable jusqu'à 4850 (et donc aussi entre -5050 et -4850) où il y aura autant de solutions que de partitions strictes de 100 mais après, en suivant ce raisonnement, il y aura des partitions à enlever...et ça ne va pas être de la tarte... déjà que le nombre de partitions strictes d'un nombre, c'est pas du gâteau...(on peut avoir une idée de la suite sur l'OEIS avec les valeurs de 1 à 5000 ici).
si tu peux donc améliorer ton petit programme pour donner le nombre de décompositions pour chaque nombre, ça serait chouette !
A suivre...
Citation de François Desnoyer le 7 mai 2021, 18 h 41 minBonsoir,
en fait le nombre de façons d'atteindre un nombre pair donné est donné par un coefficient dans un méchant produit eulérien... Dès que tout sera en place, un petit article apparaîtra 🙂
F.D.
Bonsoir,
en fait le nombre de façons d'atteindre un nombre pair donné est donné par un coefficient dans un méchant produit eulérien... Dès que tout sera en place, un petit article apparaîtra 🙂
F.D.
Si vous rencontrez des difficultés relatives à l’utilisation du forum, ou si vous souhaitez vous inscrire aux forums pour participer aux discussions, vous pouvez envoyer un courriel à :