Bonjour,
Je voudrais faire un algorithme qui compte combien de fois on utilise un numéro pour l'écriture des nombre de 0 à 1000, par exemple le 7 est utilisé une fois dans 517 et deux fois dans 177 ..
Une idée pour commencer ?![]()
Bonjour,
Je voudrais faire un algorithme qui compte combien de fois on utilise un numéro pour l'écriture des nombre de 0 à 1000, par exemple le 7 est utilisé une fois dans 517 et deux fois dans 177 ..
Une idée pour commencer ?![]()
ca ne serait pas une somme des C(n,i)*9^(n-i)?
Edit: ah... non. Dans ce cas on compterai aussi les nombres commencant par 0. Mais ca doit être possible quand meme d'avoir une formule directe.![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
bah yen a 2.
- La bête est d'écrire le nombre dans une chaîne, et de compter
- La seconde est la même chose, mais en numérique :
Centaine = Nombre/100
Dizaine = (Nombre - Centaine*100)/10
Unite = (Nombre - Centaine*100 - Dizaine*10)
et là on a 3 chiffres/compteurs à comparer/incrémenter
1 occurrence de 7 dans un nombre a 3 chiffres:
7-- = 9*9 possibilités = 81
-7- = 9*9 possibilités = 81
--7 = 9*9 possibilités = 81
2 occurrences de 7 dans un nombre a 3 chiffres:
77- = 9 possibilités
-77 = 9 possibilités
7-7 = 9 possibilités
3 occurrences de 7 dans un nombre a 3 chiffres:
777 = 1 possibilité
Total occurrences de 7 dans un nombre a 3 chiffres:
1*(81+81+81) + 2*(9+9+9) + 3*(1) = 300
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
euh.. Je ne crois pas, d'après son exemple, qu'il parlait des possibilités statistiques, mais de la réalité de l'écriture dans un chiffre donné..
"possibilités statistiques" ?
J'ai juste fait un dénombrement. Sauf erreur, tous les cas sont comptés:
0 occurrence de 7 dans un nombre a 3 chiffres: 1 * 9^3 = 729
1 occurrence de 7 dans un nombre a 3 chiffres: 3 * 9^2 = 243
2 occurrences de 7 dans un nombre a 3 chiffres: 3 * 9^1 = 27
3 occurrences de 7 dans un nombre a 3 chiffres: 1 * 9^0 = 1
Total: 729+243+27+1 = 1000 ... yes![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
1 occurrence de 7 dans un nombre a 3 chiffres:
7-- = 9*9 possibilités = 81
-7- = 9*9 possibilités = 81
--7 = 9*9 possibilités = 81 <---- 517
2 occurrences de 7 dans un nombre a 3 chiffres:
77- = 9 possibilités
-77 = 9 possibilités <---- 177
7-7 = 9 possibilités
3 occurrences de 7 dans un nombre a 3 chiffres:
777 = 1 possibilitéEnvoyé par Elaich
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
faudrait avoir des précisions de la part du PO mais on ne parle pas de la même chose :
tu parles bien de possibilités et d'occurence, moi je parle du nombre de fois où le chiffre est utilisé dans l'écriture d'un nombre donné..
Je propose la formule ci-jointe. A vérifier bien sûr (pour le zéro par exemple).
Je suis bien d' accord avec toi.
On peut determiner ce nombre de la maniere suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 nombre<-177 occurence<-0 chiffre<-7 repeter si nombre mod 10 =chiffre alors occurence<-ocurence+1 finsi nombre<-nombre div 10 jusqu' à nombre=0 //il ya occurence de chiffre dans nombre
Moi j'ai compris la même chose que PseudoCode, le PO a demandé "combien de fois on utilise un numéro pour l'écriture des nombres de 0 à 1000 ?" pas "comment compter le nombre de 7 dans l'écriture d'un nombre ?". Bien sûr il est possible qu'il se soit mal exprimé.
--
Jedaï
Ah les matheux![]()
![]()
pseudocode, phryte, Jedai :![]()
Voilà qui devrait résoudre les deux problèmes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 def NbreDeFois1(x,n): if n<10: if n==x: return 1 else: return 0 else: return NbreDeFois1(x,n/10)+NbreDeFois1(x,n%10) def NbreDeFois2(x,n): s=0 for i in range(0,n+1): s+=NbreDeFois1(x,i) return s def main(): print NbreDeFois1(7,771) print NbreDeFois2(7,1000) if __name__ == '__main__': main()
Ce qu'on trouve est plus important que ce qu'on cherche.
Maths de base pour les nuls (et les autres...)
C'est sur que ce probleme là est plus facile. La version iterative de l'algo de Zavonen :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 static int digitcount(int digit, int number) { int count=0; while(number!=0) { if (number%10==digit) count++; number/=10; } return count; } public static void main(String[] args) { int count = digitcount(7,771); System.out.println(count); }
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Bonsoir;
merci pour les 2 propositions mais je comprend pas trop le "C"j'aimerai seulement avoir l'algorithme
..
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Nombre:=771 Chiffre:=7 Compteur:=0 TantQue ( Nombre != 0 ) Si ( (Nombre modulo 10) == Chiffre ) Alors Compteur:=Compteur+1 Nombre:=Nombre/10 Fint TantQue Afficher Compteur
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Partager