Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

 #1 - 15-09-2016 20:10:58

shadock
Elite de Prise2Tete
Enigmes résolues : 39
Messages : 3334

mathématiqyes pour les nuls 28 (somme des motifs d'un nombre)

Bonjour tout le monde !

Définition : On appelle motif d'un nombre N (ne commençant pas par 0) et ayant n>1 chiffres, tous les nombres lu de gauche à droite (dans N) ayant au maximum n-1 chiffres.

Ex : Si N=1203, alors l'ensemble M de ses motifs est M={1,2,0,3,12,20,03,120,203}. Le cardinal de cet ensemble est noté m.

Attention : On ne peut pas lire le nombre de manière cyclique. Par exemple 312 n'est pas un motif de 1203.

On notera [latex]\sigma[/latex] la notation "motif de". On cherche donc à déterminer ici de manière générale
[TeX]\sum_{i=1}^m \sigma_i(N)[/TeX]
La case réponse valide le résultat de la somme des motifs de 123456789. 

NB :
* En étant méthodique on réalise la somme des motifs d'un nombre de 20 chiffres à la main en moins de dix minutes.
* Vous pouvez aussi chercher la formule générale pour calculer cette somme. Je suis curieux de voir la mise en forme des formules que vous pourrirez trouver. La mienne est délicate à démontrer pour un nombre "n" de chiffres. Mais je l'ai vérifié à la main jusqu'à l'ordre 9, et je n'ai pas trop d'idée de code en Python ou autre. S'il y en a qui on une idée on pourrait vérifier la formule à plus grande échelle.

Bon courage ! smile

PS : Cette énigme n'est pas bêta-testée


 
Réponse :

"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline
  • |
  • Répondre

#0 Pub

 #2 - 15-09-2016 20:31:57

Spirou
Professionnel de Prise2Tete
Enigmes résolues : 49
Messages : 489

mathématiques pour les nuls 28 (simme des motifs d'un nombre)

Pour le code python je dirais:

Code:

def trouveSommeMotif(nb):
    nombre = str(nb)
    somme = 0
    nombreDeLettre = len(nombre)
    for nombre2 in range(nombreDeLettre):
        for nombre3 in range(nombreDeLettre-nombre2):
            somme+=int(nombre[nombre3:nombre3+nombre2+1])
    print(somme-nb)

J'ai vérifié avec quelques nombres et ca a l'air de marché.
Par contre sans le programme je n'ai pas encore trouvé comment faire pour calculer la somme de tous les motif d'un nombre. Je continu de chercher... smile

Spirou

 #3 - 15-09-2016 20:52:48

caduk
Professionnel de Prise2Tete
Enigmes résolues : 45
Messages : 398

mathématiques pour les nuls 28 (somme des lotifs d'un nombre)

Bonjour,
Pour le calcul de la somme des motifs de 123456789, je procède de la manière suivante:
45+36*11+8+28*111+12*7+21*1111+123*6+15*11111+1234*5+10*111111+12345*4+6*1111111+123456*3+3*11111111+1234567*2 = 44200536

ce qui nous donne la formule: [latex]\sum \limits_{i=2}^{n} \left[\dfrac{i(i+1)}{2}\times \dfrac{10^{n-i+1}-1}{9}+n\sum \limits_{j=1}^{n-i+1}j\times 10^{n-i-j+1}\right][/latex]
Cette formule vient des différentes suites arithmétiques observée pour chaque taille de motif...

Edit: La formule générale:
n est le nombre, j est la taille du motif, i est l'index du motif
[TeX]\sum \limits_{j=1}^{n-1}\sum \limits_{i=0}^{n-j+1}\lfloor\dfrac{n}{10^i}\rfloor-\lfloor\dfrac{n}{10^{i+j}}\rfloor\times10^{j}[/TeX]
Edit:
Il y a en fait beaucoup plus simple:
Si [latex]n = i_{t-1}i_{t-2}...i_0[/latex] alors on obtient:
[TeX]\sum_{k=0}^{t-1} \left[(t-k+1)\dfrac{10^{t-k+1}-1}{9}i_k\right]-n[/TeX]

 #4 - 15-09-2016 21:28:39

enigmatus
Expert de Prise2Tete
Enigmes résolues : 0
Messages : 561

mathématiques pour les buls 28 (somme des motifs d'un nombre)

Bonsoir,
Voici le code en python qui calcule la somme des motifs (fournir le nombre N en argument). Le résultat est 364 pour 1203 et valide la case réponse pour 123456789.

Code:

import sys
N=sys.argv[1]

n=len(N)
som=0
for l in range(1,n):
   for k in range(n-l+1):
      som+=int(N[k:k+l])
print(som)

 #5 - 16-09-2016 03:34:44

Sydre
Professionnel de Prise2Tete
Enigmes résolues : 15
Messages : 245

mathématiques pour les nulq 28 (somme des motifs d'un nombre)

Salut,

La réponse à la question initiale est [latex]44200536[/latex]

Concernant la formule générale, j'ai réussi à démontrer l'expression suivante pour un nombre [latex]n[/latex] en base 10 :
[TeX]\sum_{i=1}^{\lfloor \mathbb{log}_{10}(n) \rfloor +1}\sum_{j=1}^i \lfloor \{\frac{n}{10^i}\}10^j \rfloor - n[/TeX]
Avec [latex]\lfloor \cdot \rfloor[/latex] la fonction partie entière et [latex]\{ \cdot \}[/latex] la fonction partie fractionnaire.

Un problème intéressant smile

 #6 - 16-09-2016 11:54:38

nobodydy
Elite de Prise2Tete
Enigmes résolues : 49
Messages : 1677

mathématiques pour les nuld 28 (somme des motifs d'un nombre)

Salut

Je valide la case réponse 44200536 smile
pour le reste .... sad

 #7 - 16-09-2016 12:50:18

nodgim
Elite de Prise2Tete
Enigmes résolues : 0
Messages : 3802

Mathémtaiques pour les nuls 28 (Somme des motifs d'un nombre)

Il y a plusieurs présentations possibles de cette formule, selon les goûts de chacun. Voici celle que je préfère:

Si le nombre s'écrit abcde.... et comporte n chiffres, alors la somme des  motifs vaut :
((a+2b)*10^(n-1) + 3c*10^(n-2) + 4d*10^(n-3)+....-(a+2b+3c+4d+...))/9 - le nombre bcde...

Pour le nombre 123456789, la somme demandée vaut 44200536.

 #8 - 16-09-2016 14:05:25

enigmatus
Expert de Prise2Tete
Enigmes résolues : 0
Messages : 561

Mathématiques pour les nuls 28 (Somme des motifs 'dun nombre)

Autre façon de calculer, par exemple avec 1203 et 123456789

Code:

  1 × 1111 = + 1111
  2 ×  222 = +  444
  3 ×   00 = +    0
  4 ×    3 = +   12
             - 1203
     Total =    364

  1 × 111111111 = + 111111111
  2 ×  22222222 = +  44444444
  3 ×   3333333 = +   9999999
  4 ×    444444 = +   1777776
  5 ×     55555 = +    277775
  6 ×      6666 = +     39996
  7 ×       777 = +      5439
  8 ×        88 = +       704
  9 ×         9 = +        81
                  - 123456789
          Total =    44200536

Voici le script python :

Code:

import sys
N=sys.argv[1]

n=len(N)
m=s=0
print('N=%s'%N)
for l in range(1,n):
   for k in range(n-l+1):
      m+=1
      s+=int(N[k:k+l])
      print("%8d %*s"%(m,n,N[k:k+l]))
print('%6s = %*d'%('Total',n,s))
print('')

s=0
print('N=%s'%N)
for k in range(n):
   repet=N[k]*(n-k)
   ds=(k+1)*int(repet)
   s+=ds
   print('%3d x %*s = + %*d'%(k+1,n,repet,n,ds))
s-=int(N)
print('%*s- %*s'%(n+9,'',n,N))
print('%*s = %*d'%(n+6,'Total',n+2,s))

Édité :
Regroupement des 2 méthodes de calcul dans le même script.

 #9 - 16-09-2016 18:34:36

Ebichu
Expert de Prise2Tete
Enigmes résolues : 49
Messages : 888

Mathématiques pour les nuls 28 (Somme des motifs du'n nombre)

Si on note c1, c2,... cn les chiffres du nombre N, j'obtiens la formule :
[TeX]\left(\sum_{k=1}^n k.c_k.\frac{10^{n+1-k}-1}{9}\right)-N[/TeX]
Ce qui permet d'obtenir rapidement la réponse (44 200 536) avec un tableur.

 #10 - 17-09-2016 10:44:42

geolle
Visiteur

Mathématiques pour les nuls 2 8(Somme des motifs d'un nombre)

Bonjour suite logique : 1-2, 3-5, 5-4, 6-3, 9...?
un-deux, trois-cinq, cinq-quatre, six-trois, Neuf-?wink

 #11 - 17-09-2016 19:17:39

shadock
Elite de Prise2Tete
Enigmes résolues : 39
Messages : 3334

Mathématiques pour les nuls 28 (Somme des motif sd'un nombre)

Bon alors on a tous le même résultat mais pas la même représentation de la formule. La mienne est un peu compliquée à vrai dire et je ne sais pas quelle tête elle aurait pour des nombres de plus de dix chiffres.

Merci à Enigmatus pour ses jolis programmes ! big_smile


"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline

 #12 - 18-09-2016 19:15:34

masab
Expert de Prise2Tete
Enigmes résolues : 44
Messages : 971

mathématiques pour les nuls 28 (domme des motifs d'un nombre)

La somme des motifs de 123456789 est 44200536 .

On appelle motif une sous-chaîne de "123456789".
Posons
ch = "123456789"
ch1 = "12345678"
ch2 = "23456789"

On a la formule de récurrence entre ENSEMBLES :

motifs (ch) = {ch1, ch2} union motifs(ch1) union motifs(ch2)

En prenant des chaînes, on distingue ainsi "3" et "03",
alors que 3 = 03 en tant que nombres !

 

Réponse rapide

Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Sécurité

Répondez (numériquement) à la petite énigme suivante : 

Un berger a 40 moutons, ils meurent tous sauf 18, combien en reste-t-il ?

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete