IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Compter de 0 à 1000


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 29
    Points
    29
    Par défaut Compter de 0 à 1000
    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 ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Elaich Voir le message
    Une idée pour commencer ?
    oui et toi ??

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    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.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    oui et toi ??
    Oui mais mon idée est bête !!
    Prenons l'exemple 7 j'ajoute 10 je trouve 17 et comme ça à chaque fois que j'ajoute 10 j'ajoute 1 au compteur pour compter combien de fois on a 7 aux unités .. puis 100 pour les dizaines ..
    et ton idée ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    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

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    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

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    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é..

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    "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

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    "possibilités statistiques" ?

    J'ai juste fait un dénombrement. Sauf erreur, tous les cas sont comptés:

    Citation Envoyé par souviron34 Voir le message
    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é..
    Citation Envoyé par Elaich Voir le message
    par exemple le 7 est utilisé une fois dans 517 et deux fois dans 177 ..

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    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é
    Citation Envoyé par Elaich
    par exemple le 7 est utilisé une fois dans 517 et deux fois dans 177 ..

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    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é..

  12. #12
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Je propose la formule ci-jointe. A vérifier bien sûr (pour le zéro par exemple).
    Images attachées Images attachées  

  13. #13
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    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 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

  14. #14
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    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ï

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    moi je parle du nombre de fois où le chiffre est utilisé dans l'écriture d'un nombre donné..
    Moi aussi c'est ça ce que je voulais ..

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Ah les matheux


    pseudocode, phryte, Jedai :

  17. #17
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    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()

  18. #18
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    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);
    }

  19. #19
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Bonsoir;
    merci pour les 2 propositions mais je comprend pas trop le "C" j'aimerai seulement avoir l'algorithme ..

  20. #20
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Compter le nombre de page d'un report
    Par ToYonos dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/06/2003, 09h36
  2. compter le nombre de record
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/03/2003, 09h53
  3. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25
  4. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo