Bonjour à toutes et à tous :
Indice N°1 : La somme des 4 chiffres est égale à 25
Indice N°2 : Le code est composé de 2 chiffres.
A vos clavier ...
**forum modifié**
Le titre nous dit '4 chiffres dont 2 identiques', et le détail nous dit autre chose. Bizarre.
Oublions le titre.
Une solution, mais ce n'est pas la seule : 7747
Bonsoir
si, comme le dit le titre on veut que 2 chiffres identiques, alors le problème est impossible.
Oui
Il faut comprendre que sur les 4 chiffres ,il n'y a que deux chiffres
distincts utilisés pour former le nombre...
Donc 3487 interdit mais 6699 autorisé (mais faux).
Je pense que Tidiiii97440 avait un digicode à trouver
avec ces deux indices.
Bonjour
j'ai été volontairement de mauvaise foi. En effet il y a 2 façons de comprendre "2 chiffres identiques".
Effectivement j'ai un digicode à trouver.
Je me suis trompé dans l'énoncé de l'indice numéro 2 : Le code est composé de 2 chiffres identiques.
Le code est composé de 2 chiffres identiques.
Ca veut dire quoi ?
Est-ce que 1233 correspond à cette contrainte ?
Ou 5666 ?
Ou 7878 ?
Bonjour,
Je pense que l'énoncé est celui que nous avons compris au départ
avec 4 chiffres de somme 25 et ne comportant que 2 chiffres différents.
Soit les 12 solutions trouvées.
L'évolution éventuelle n'offre aucun intérêt.
Comme dit ty9847 il y a 186 solutions (liste sur demande
25 n'est pas multiple de 4 donc il y a zéro solutions avec 4 fois le même chiffre.
Mais 4 chiffres dont deux identiques n'interdit pas que trois puissent être identiques et alors la première contrainte impose 25%3 = 1 pour le dernier chiffre, ce qui donne 1, 4, ou 7.
On a dans la liste 1888 et ses 23 permutations. Mais comme les trois autres chiffres sont des 8, ça revient simplement à choisir la position du 1, ce qui fait seulement 4 possibilités. Même chose pour 4777 et 7666 ce qui fait 12 possibilités au total.
Pour cas 25 = 2p + q' + r avec p, q', r deux à deux distincts:
Modulo 2 => q' + r devant être impair on a toujours q' et r de partités différentes et donc q' != r automatiquement. On suppose sans perte de généralité que q' = 2q et le code suivant fournit 204-12 = 196 possibilités pour ce cas.
import itertools
assembler = lambda x:x[~0]+x[~1]*10+x[1]*100+x[0]*1000
def solutions():
codes = set()
for p in range(10):
P0 = 25 - p*2
for q in range(0,10,2):
if q == p: continue
r = P0 - q
if r == p or r < 0 or r > 9: continue
codes |= set(map(assembler, itertools.permutations((p,p,q,r))))
return codes | set(map(assembler, itertools.permutations((1,8,8,8)))) \
| set(map(assembler, itertools.permutations((4,7,7,7)))) \
| set(map(assembler, itertools.permutations((7,6,6,6))))
codes = sorted(solutions())
print(f"{len(codes)} solutions: {codes}")
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :