Bonjour à tous
Un petit problème amusant .
On note S(n) la somme des chiffres d'un entier n non nul et M(n) la valeur moyenne des n premiers S(n) .
Par exemple :
S(20)=2+0=2
M(20)=1+2+3+4+5+6+7+8+9+1+2+3+4+5+6+7+8+9+10+2)/20= 5,1 .
Question : Les entiers naturels non nuls sont-ils tous des M(n) ?
Comme toujours on s'amuse et on ne blank que si nécessaire
Imod
salut Imod , que veut dire sont ils tous des M(n) ??
de ce que je comprend M(n)=(1/n) S(k) , k compris entre 1 et n
Bonjour Flight
Tu as compris la définition de M(n) , la question est : pour l'entier 50 ( par exemple ) , existe-t-il un entier n tel que M(n)=50 ?
Imod
pour n =20 on voit bien que M(20)20
j'aurai plutot posé comme question "peut on trouver des n tel que M(n)= n "
Relis bien la question il y a deux entiers différents , on ne demande pas que M(20) soit égal à 20 mais qu'il existe un entier n tel que M(n)=20 .
Imod
donc pour eclaircir les choses ca revient à trouver k tel que
(1/k) S(j) = n , avec j compris entre 1 et k
salut
déjà pour tous les chiffres on a : qui est un entier
et je subodore que les nombres triangulaires T(n) apparaissent très fortement dans les résultats
soit
alors
on cherche donc les points à coordonnées entières du cercle de centre O(45,5 ; 0,5) et d rayon
@carpediem,
Il me semble que ta définition de M(k) n'est correcte que pour k<10
M(10)=1+2+...+8+9+1 et pas 1+2+...+8+9+10
Voici un tableau de n, M(n) pour lesquels M(n) est entier, n<1001.
Si j'ai bon, on peut penser que la réponse à la question posée est oui.
Mais je vais aller plus loin...
1 1
3 2
5 3
7 4
9 5
18 5
21 5
24 5
38 6
58 7
78 8
98 9
298 10
498 11
501 11
537 11
698 12
702 12
707 12
711 12
716 12
898 13
Curiosité:
Je vois passer M(n) à M(n)+1 pour les valeurs suivantes de n:
3, 5, 7, 9,
38, 58, 78, 98,
298, 498, 698, 898,
1998, 3998, 5998, 7998, 9998
29998, 49997....
jusqu'à M(999998)=27
Il est permis de penser que ça va continuer
YAPUKA le démontrer
pour unifier les notations :
s(n) = somme des chiffes de n
est la moyenne demandée
est le n-ième nombre triangulaire et en particulier
sanantonio312 prenons m = 23 = 2 * 10 + 3 donc d = 2 et u = 3
alors
je compte de 0 à 9 entre 0 et 9 puis entre 10 et 19 donc 2 fois = d = 2
puis je compte les dizaines donc de 0 à 2 = 0 + 1 + 2
puis je compte les unités "restantes" de 20 à 23 donc de 0 à 3 = 0 + 1 + 2 + 3
effectivement je "mets" trompé dans le décompte de T(9)
j'espère que notre renard futé (littlefox) viendra nous pondre un script python de derrière les fagots dont il a le secret
mais qu'il nous en donnera aussi une version plus "naïve" donc compréhensible par le pékin moyen que je suis
>salut sanantonio312
je n'ai gardé que le filon 98 *mais il y a de doublons et autres...
*On doit pouvoir en tirer une loi mais je subodore que 100 par exemple doit être très grand.
Bonjour à tous
@Verdurin : quel argument proposes-tu pour justifier que la moyenne n'est pas bornée ?
Imod
LaTeX encore en panne...
Si je reprends les notations de carpediem, dès que p >= 1 et 0 <= r < 10^p.
En particulier, si m = E(log10(n)) est le plus grand entier tel que 10^m <= n, et qu'on pose alors
On remarque que
* n divise t(n) si seulement s'il divise t(n-1 - q) + t(q) - q
* t(n) - t(q) = (n-q) + t(n-q) - s(n-q) ne dépend que de n-q.
* même observation pour la fonction z définie par z(x) = t(x)-x car z(n) - z(q) = t(n-q - 1) = t(n-q) - s(n-q)
* n divise t(n) si et seulement si n divise z(n) = n(M(n)-1)
z(n) = n(M(n)-1) est toujours un entier, alors
ou bien M(n)-1 (et donc M(n)) est entier
ou bien M(n)-1 est le produit l'inverse d'un diviseur de n et d'un autre entier positif
dit autrement, dans le second cas, M(n) = 1 + k/d avec d diviseur de n et k entier
import math
from fractions import Fraction
cache_t = dict()
def t(n):
if n < 0:
return 0
if n in cache_t:
return cache_t[n]
if n < 10:
u = n * (n+1) >> 1
cache_t[n] = u
return u
m = int(math.log10(n))
M = 10**m
u = n - M + 1 + t(n-M) + t(M-1)
cache_t[n] = u
return u
def M(n):
return Fraction(t(n), n)
def valable(n):
return n > 0 and t(n) % n == 0
voici un bout de code en vba qui donne les memes valeur que dpi je suis allé jusqu'a k=2000 les couples obtenus sont : k et c/k
Sub imod()
Dim n As Double
c = 0
w = ""
For k = 1 To 2000
c = 0
For j = 1 To k
s = 0
For a = 1 To Len(CStr(j))
s = s + Val(Mid(CStr(j), a, 1))
Next
c = c + s
Next
If c Mod k = 0 Then
w = w & Chr(10) & k & " " & c / k
End If
Next
MsgBox w 'voir ci dessous
End Sub
J'ai une théorie pour prouver que la recherche est infinie:
1/ on ne garde que les terminaisons 98 (cf ma liste du23 16h10)
2je la prolonge de
21 69998
22 89998
23 199998
24 699998
25 599998
26 799998
27 999998 comme l'a trouvé sanantonio312
Il suffit de confirmer la bonne version pour 28 et la raison sera trouvée
Je viens de vérifier que la bonne réponse est 28--->2 999 998
soit +2 000 000
Je présume donc les suivants:
J'espère qu'un bon programmeur (j'en connais..)..........
Tu progresses bien Dpi et à partir de ton tableau il est facile d'estimer n+2 à partir du quotient et du reste de M modulo 9 . Après il faut justifier
Imod
PS : attention , dans la légende tu as inversé n et M .
Il y a des algorithmes en O(log(n)) pour calculer M(n). Mais je ne suis pas sûr que ça aide à répondre à la question de Imod.
Le lien de l'OEIS donné par Jandri affirme que la réponse est oui, l'ensemble des M(n) est l'ensemble des naturels. Mais ne démontre rien.
Essayons de calculer M(n). Soit la somme des chiffres des nombres de 0 à n-1. avec la définition de carpediem.
On décompose n en ses chiffres:
On a ;
On a ;
On a ;
Et finalement, .
De la on peut construire un algorithme:
def d(n):
s = [(a * (a - 1)) // 2 for a in range(11)]
digits = list(map(int, str(n)))[::-1]
k = len(digits)
pow10k = 10**k
total = 0
while k > 0:
a = digits.pop()
k -= 1
pow10k //= 10
n -= a * pow10k
total += s[10] * a * k * pow10k // 10 + s[a] * pow10k + a * n
return total
def search_int_m():
total, n = 0, 0
while True:
n += 1
total += sum(map(int, str(n)))
if total % n == 0:
print(n, total, total // n)
def get_n(m):
k, a = divmod(m*2, 9)
a += 1
return a*10**k-2
Merci.
Comment expliquer la particularité de 14 ; 23 ; 32 ;41; 50
et cela se reproduit -il pour 59 ;68 ;etc...
14,23,32,...=9x+5 => (k, a) =(2x+1,1)
Rien de particulier sinon qu'on dépasse 9 pour a et donc k est augmenté de 1 et a=1.
Bonjour,
La démonstration de LittleFox se généralise à toute base en notant la la somme des chiffres de écrit en base et .
Pour tout entier il existe un entier tel que .
En effet, on montre que pour on a et cette quantité varie de à quand varie de à .
En base c'est très simple : .
Si la somme commence à 0 au lieu de 1 alors la moyenne est légèrement différente: M'(n) = M(n)*n/(n+1).
Dans ce cas, les n qui donnent M'(n) entiers sont les . Avec les même (a,k) que pour M(n).
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :