Fréquence d'apparition france ioi
Résolu
Ak_j
Messages postés
18
Date d'inscription
dimanche 24 avril 2022
Statut
Membre
Dernière intervention
23 juin 2022
-
21 juin 2022 à 02:51
Phil_1857 Messages postés 1710 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 3 juin 2023 - 23 juin 2022 à 09:56
Phil_1857 Messages postés 1710 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 3 juin 2023 - 23 juin 2022 à 09:56
A voir également:
- Analyse de fréquence france ioi
- Fréquence du processeur - Guide
- Nous limitons la frequence de certaines actions instagram ✓ - Forum Instagram
- Frequence programme national ✓ - Forum Messagerie
- Analyse et reparation du lecteur c ✓ - Forum Windows 10
- Indicatif telephone france - Guide
7 réponses
Phil_1857
Messages postés
1710
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
3 juin 2023
164
21 juin 2022 à 08:40
21 juin 2022 à 08:40
Bonjour,
Pour compter le nb d'apparitions d'une lettre donnée, tu peux utiliser la méthode count():
Pour compter le nb d'apparitions d'une lettre donnée, tu peux utiliser la méthode count():
f = texte.count('a')
Phil_1857
Messages postés
1710
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
3 juin 2023
164
Modifié le 21 juin 2022 à 13:26
Modifié le 21 juin 2022 à 13:26
Qu'entends-tu, en fait, par:
divisé par le nombre total de lettres du texte (et pas le nombre total de caractères).
C'est ça que tu veux ? (à la louche ...) :
divisé par le nombre total de lettres du texte (et pas le nombre total de caractères).
C'est ça que tu veux ? (à la louche ...) :
import string texte = 'Le francais est une langue romane, de la famille des langues indo-europeennes.' texte = texte.lower() L, C = [], [] for lettre in texte: if(lettre not in string.punctuation and lettre not in string.whitespace and lettre not in L): L.append(lettre) C.append(texte.count(lettre)) for k in range(len(L)): print(L[k], C[k]/len(L))
Ak_j
Messages postés
18
Date d'inscription
dimanche 24 avril 2022
Statut
Membre
Dernière intervention
23 juin 2022
21 juin 2022 à 18:38
21 juin 2022 à 18:38
Ok, je vais utiliser count , pour moi le nombre total de lettres, ce seraient simplement les lettres de l'alphabet sans compter les ponctuations ou autre par contre tu pourrais m'expliquer ton code à partie de la ligne 5 s'il te plaît je n'ai pas tout compris.
Phil_1857
Messages postés
1710
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
3 juin 2023
164
21 juin 2022 à 21:29
21 juin 2022 à 21:29
Bonsoir
ligne 7 : boucle sur chaque caractère du texte
ligne 8 : si le caractère n'est ni un signe de ponctuation, ni un espace et s'il n'est pas déjà dans la liste L :
ligne 9 : on ajoute ce caractère dans L
ligne 10 : on ajoute le nombre d'apparitions de ce caractère dans C
ligne 12 : boucle sur la liste L:
on affiche le caractère et sa quantité divisée par la longueur de L (donc du nb total de lettres, sans les ponctuations puisqu'on les a évitées ligne 8)
ligne 7 : boucle sur chaque caractère du texte
ligne 8 : si le caractère n'est ni un signe de ponctuation, ni un espace et s'il n'est pas déjà dans la liste L :
ligne 9 : on ajoute ce caractère dans L
ligne 10 : on ajoute le nombre d'apparitions de ce caractère dans C
ligne 12 : boucle sur la liste L:
on affiche le caractère et sa quantité divisée par la longueur de L (donc du nb total de lettres, sans les ponctuations puisqu'on les a évitées ligne 8)
Whismeril
Messages postés
18416
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
1 juin 2023
893
22 juin 2022 à 08:22
22 juin 2022 à 08:22
Bonjour Phil.
Je pense que ton code est trop optimisé.
Il s'agit d'un exercice France ioi et Ak_j nous présente un code sans listes, ni méthodes de la classe string.
Donc il n'en est pas encore au niveau de ton code.
Je ne sais pas comment marche France ioi, mais si moi j'étais prof, que je donnais cet exercice à Ak_j aujourd'hui et qu'il me fournisse ta réponse, je lui compterais faux. Parce que d'une part, le code nous pourrait pas être de lui et d'autre part le but est qu'il appréhende l'algo de base.
Je pense que ton code est trop optimisé.
Il s'agit d'un exercice France ioi et Ak_j nous présente un code sans listes, ni méthodes de la classe string.
Donc il n'en est pas encore au niveau de ton code.
Je ne sais pas comment marche France ioi, mais si moi j'étais prof, que je donnais cet exercice à Ak_j aujourd'hui et qu'il me fournisse ta réponse, je lui compterais faux. Parce que d'une part, le code nous pourrait pas être de lui et d'autre part le but est qu'il appréhende l'algo de base.
Phil_1857
Messages postés
1710
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
3 juin 2023
164
>
Whismeril
Messages postés
18416
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
1 juin 2023
22 juin 2022 à 11:08
22 juin 2022 à 11:08
Bonjour Whismeril,
Ah ok, c'est à cause de l'emploi du module string
après, pour éviter certains caractères, il suffit de créer une liste, par exemple avec espace, virgule, point, tiret
et de tester si le caractère courant n'y est pas ...
Ah ok, c'est à cause de l'emploi du module string
après, pour éviter certains caractères, il suffit de créer une liste, par exemple avec espace, virgule, point, tiret
et de tester si le caractère courant n'y est pas ...
Whismeril
Messages postés
18416
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
1 juin 2023
893
>
Phil_1857
Messages postés
1710
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
3 juin 2023
22 juin 2022 à 11:30
22 juin 2022 à 11:30
Oui bien sûr, mais dans le code présenté, y'a pas de liste, il ne les a peut-être pas encore vues.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Whismeril
Messages postés
18416
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
1 juin 2023
893
22 juin 2022 à 08:37
22 juin 2022 à 08:37
Ak_j que tu n'ais pas encore le niveau de Phil n'est pas grave, ça viendra et je ne l'ai pas non plus ;)
En reprenant le code que tu as posté dans ta question.
Pour comprendre ce qui se passe, il faut ajouter des print de debuggoage (que tu enlèveras du code final si tu veux).
Ensuite, tu analyses ce qui s'affiche et si tu ne comprends pas reviens ici en décrivant ce qui s'affiche et ce que tu en comprends.
En reprenant le code que tu as posté dans ta question.
Pour comprendre ce qui se passe, il faut ajouter des print de debuggoage (que tu enlèveras du code final si tu veux).
total_lettre = nombre_total_lettre(texte) print("nombre de lettres:", total_lettre) for lettre in texte : print("caractère :'",lettre,"'") if 'A'<= lettre <='Z': print("ce caractère est une lettre") apparition_lettre = nombre_apparition_lettre(lettre,texte) print("nombre d'apparitions :", apparition_lettre) frequence = apparition_lettre/total_lettre print(frequence)
Ensuite, tu analyses ce qui s'affiche et si tu ne comprends pas reviens ici en décrivant ce qui s'affiche et ce que tu en comprends.
Ak_j
Messages postés
18
Date d'inscription
dimanche 24 avril 2022
Statut
Membre
Dernière intervention
23 juin 2022
23 juin 2022 à 01:01
23 juin 2022 à 01:01
Whismeril ne martyrise pas trop Phil_1857, il m'aide plusieurs fois puis j'ai pu trouver et en plus j'ai compris tout seul merci beaucoup :)
Phil_1857
Messages postés
1710
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
3 juin 2023
164
23 juin 2022 à 09:56
23 juin 2022 à 09:56
Hello,
Je ne me sens pas martyrisé :-)
Toute remarque est bonne à prendre ....
Je ne me sens pas martyrisé :-)
Toute remarque est bonne à prendre ....
Whismeril
Messages postés
18416
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
1 juin 2023
893
23 juin 2022 à 07:46
23 juin 2022 à 07:46
Bonjour
je n'espère pas l'avoir martyrisé, d'autant que je connais ses qualités indéniables.
Mais parfois, nous avons tous le défaut de proposer une solution qui nous semble évidente mais n'est pas encore connue du demandeur.
Même à titre personnel, je ne compte plus le nombre de fois où face à un exercice de Maths de mes enfants, ma première question était "tu connais la règle de 3? Non toujours pas... Bon va falloir réfléchir autrement"....
Parce que c'est là tout le sujet, quand on maitrise l'outil qui fait le truc facilement, on en oublie presque d'où vient cet outil et comment faire sans.
Ton programme était quasiment bon, la seule erreur était de ne sélectionner que des majuscules, donc seul le "L" était pris en compte.
C'est pourquoi, il m'a semblé plus instructif pour toi de voir afficher ce qui se passe.
D'abord tu as pu mener ta propre réflexion et on retient mieux ce que l'on a compris par soi même et d'autre part de voir qu'en informatique un "a" n'est pas un "A".
PS Imagine le fou rire le jour où mon ainé est rentré à la maison en me disant "ça y est j'ai appris la règle de 3, ça va être plus facile pour toi de m'expliquer les exercices que je ne comprends pas"
je n'espère pas l'avoir martyrisé, d'autant que je connais ses qualités indéniables.
Mais parfois, nous avons tous le défaut de proposer une solution qui nous semble évidente mais n'est pas encore connue du demandeur.
Même à titre personnel, je ne compte plus le nombre de fois où face à un exercice de Maths de mes enfants, ma première question était "tu connais la règle de 3? Non toujours pas... Bon va falloir réfléchir autrement"....
Parce que c'est là tout le sujet, quand on maitrise l'outil qui fait le truc facilement, on en oublie presque d'où vient cet outil et comment faire sans.
Ton programme était quasiment bon, la seule erreur était de ne sélectionner que des majuscules, donc seul le "L" était pris en compte.
C'est pourquoi, il m'a semblé plus instructif pour toi de voir afficher ce qui se passe.
D'abord tu as pu mener ta propre réflexion et on retient mieux ce que l'on a compris par soi même et d'autre part de voir qu'en informatique un "a" n'est pas un "A".
PS Imagine le fou rire le jour où mon ainé est rentré à la maison en me disant "ça y est j'ai appris la règle de 3, ça va être plus facile pour toi de m'expliquer les exercices que je ne comprends pas"