Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 Re : Programmation » Caractère plus fréquent » 22-01-2020 00:53:26

en fait, j'ai pas l'essayer  et je voulais pas mtn car j'ai pas encore fais des cours avec index et count... j'ai déclaré ca auparavant que je  vais voir la 3 eme versions.
pour le moment j'ai vu que les 2 premières versions :)

#2 Re : Programmation » Caractère plus fréquent » 20-01-2020 19:04:20

génial, Manipulation totale de chaînes de caractères.
merci aussi pour vos conseils

#3 Re : Programmation » Caractère plus fréquent » 17-01-2020 22:32:36

bonsoir,

wow si je dis occurrences [ i] contiendra la lettre c'est a dire que je comprends rien, le problème c'est que j'ai mal exprimé la preuve dans  l’instruction" return maxi, alphabet[ i]" qui contiendra la lettre et j'ai dis ceci : "je dois l'indexer a partir de la variable alphabet"
pour ma touche: maintenant je comprends que la condition if occurrences[ i] == maxi: est suffisante;
car souvent dans les exercices que j'ai fais, j'ai mais dans ma tète: après chaque if aura des instruction de remplacer ou d'ajouter  ou afficher mais c'est pas le cas ici, alors ici, la condition "if" c'est une condition et en même temps résultat qui nous donne le nombre d'occurrences de la lettre la plus fréquente et la première dans l'ordre alphabétique.
la prochaine fois je vais éviter le maximum de fautes car ce que j'ai fais c'est trop ;)

merci infiniment mr yoshi a chaque réponse de vous elle m'apprend beaucoup de choses :) :)

#4 Re : Programmation » Caractère plus fréquent » 17-01-2020 01:44:33

bonsoir,


Encore une fois désole pour les fautes d'orthographe j'essaye d’améliorer mon français pendant 2 ans :)
pour bien explique ce que j'essaye de vous dire hier:
j'ai bien compris les 2 versions (la troisième pas maintenant, je vais la voir un autre jour), mais moi juste je voulais ajouter ma touche sur votre code comme ça je confirmerai que j'ai bien compris pratiquement et ce que je fais :

for i in range(26):
        if occurrences[i]==maxi:        
            maxi=occurrences[i]
            break        
    return maxi,alphabet[i]

la je sais que j'ai 26 lettres dans la variable alphabet et la boucle commence par occurrences [0] jusqu’à  25 donc elle va boucler 26 fois
en gros la je suis sure que maxi contiendra la première lettre qui a plus nombre d’occurrences et l'index de occurrences [ i] celle la lettre mais pour l’afficher je dois l'indexer a partir de la variable alphabet  donc alphabet[ i]
j'ai posé la question est que c dangereux de faire ça si il y a un cas ou la chaîne contiendra "je sais pas je pose une question"... 
sinon je ne  fais pas ma touche je laisse votre code tranquille
ah oui, vous avez complètement raison, au début j'ai eu ce problème j'arrive pas a trouvé l'idée de  - 97 pourtant je la connais dans l’exercice qui demande de transformer toutes les lettres majuscules non accentuées d'une chaîne en lettres minuscules
merci encore mr yoshi  :) :) :)

#5 Re : Programmation » Caractère plus fréquent » 16-01-2020 00:58:16

merci encore j'ai bien compris :) , par contre  j'ai fais ca ( je voulais mettre ma petite touche lol) :
     

if occurance[i] == maxi:
     maxi = occurance[i] # la je sais que la boucle commence par le premier élément dans la liste donc automatiquement si c le cas alors je suis sur que maxi c'est la première dans l'ordre alphabétique
- je vois que break est nécessaire nn ?
- return maxi, alphabet[i]
c pas dangereux ce que j'ai fais, et aussi pour éviter de créer une autre variable (lettre_plus_ fréquent)?

#6 Re : Programmation » Caractère plus fréquent » 04-01-2020 21:06:07

oui, vous avez raison illogique et inutiles, le problème ce que je suis débutant et je ne réfléchis pas comme la machine.
merci bq mr yoshi vous donnez les réponses en détail

#7 Re : Programmation » Caractère plus fréquent » 04-01-2020 16:13:36

bonjour

J'ai donc perdu mon temps (waste my time)
nn j'essaye de comprendre la premiére version et la tester et puis je passe a les autres, c juste répondu a vos questions
Regarde


c'est à dire exactement la même chose que ce que contient la variable la variable chaine

comme j'ai  dis hier ce qu'était dans ma tété ce que j'ai voulu sélectionner que les lettres minuscules et (imaginez que la chaîne contiendra ZZZ) et puis je crée une autre boucle (vous faites tout ça dans seule chaîne) pour calculer les lettres qui ont le même ord(i) par exemple ord(a) = 97 et si le résultat contiendra  2 a  alors on obtiendra  97 * 2 = 194, car la liste résultat n'est pas trier pas l'ordre alphabétique... le but :
on assure que si z celui le max car la fonction max renvoie z (s'il existe dans cette chaîne ) donc automatiquement 194 > 122
et après je vais essayer de trouver une solution pour    (comparer si on a deux lettres ont le même nombre d'occurrences) ex: si on a (3 b) et (3 c) alors : 3 * ord(b) < 3 ord(c) la fonction renvoie b je sais que j'ai compliqué les choses mais... ça ce qui m'arrive dans ma tète
pour la chaine  vide c pas un problème je me suis concentré pour les question difficile

- oui merci j'ai bien compris la V1 et je vais voir  la boucle while et puis les 2  V qui restent :) :)

#8 Re : Programmation » Caractère plus fréquent » 03-01-2020 23:39:10

re :)
merci bq mr yoshi
ce que j'ai compris dans votre première réponse  c de remplacer la variable symbole par alphabet
- (je suis étranger )mais la le verbe trier sa fonction est de stocker ou sélectionner  toutes les lettres minuscules dans la liste résultat par
           les tester par la fonction for i in range (len(chaine):
- dans cet exemple oui, résultat contiendra la même chose que chaîne... ce que je voulu faire " calculer l' ORD des lettres comme j'ai expliqué dans ma première réponse" mais j'arrive pas a calculer l'occurance de chaque lettre quand j'ai remplacé symbole par alphabet
aussi (je suis débutant) l'habitude  il vous donne une variable str et il vous demande de calculer son occurrence dans une chaîne
mais la vous me montrez l'instruction - 97 ( montre votre intelligence aussi ) ou bien - ord ('a') si on veut la traduire
moi je connais que - 32 ou + 32 pour faire l'upper ou lower d'une lettre. merci yoshi encore.

#9 Re : Programmation » Caractère plus fréquent » 02-01-2020 22:10:38

def plus_frequent(chaine):
    alpha = 'abcdefghijklmnopqrstuvwxyz'
    resultat = ''
    ch=''
    for i in range(len(chaine)):
        if chaine[i] in alpha:
            resultat += chaine[i]  #j'ai trié toutes lettres minuscules
    for j in  range(len(resultat)):
      if  ord (max(resultat)) <  ord (resultat[j]): # la je veux tester le total des ord  ce que je vois logique car  l'ord des minuscules est entre 97 et 122 donc si la lettre se presente au moins deux fois alors  son ord il est surement plus grande que ord de max(resultat) z par exemple est tjr le max si la chaine  contiet la lettre z mais j'arrive pas afficher ce caractère
          ch = ord (resultat[j])
    print(ch)
print(plus_frequent('loolaaa'))

#10 Re : Programmation » Caractère plus fréquent » 23-12-2019 18:54:19

pardon, listes ok
le problème ce que, comment je peux faire ca car les minuscule réservent les places 97- 122 dans le codes ASCII.
en plus renvoie que les lettre minuscules parmi 256 symboles

#11 Programmation » Caractère plus fréquent » 22-12-2019 22:54:55

zizou47
Réponses : 21

Bonjour,

réalisez une fonction plus Frequent qui recherche dans la chaîne de caractères passée en paramètre quelle est la lettre minuscule non accentuée qui présente le plus grand nombre d'occurrences, et retourne ce caractère. Si le plus grand nombre d'occurrences est commun à plusieurs lettres, c'est la première dans l'ordre alphabétique qui sera renvoyée par la fonction. Par ailleurs, si la chaîne reçue en paramètre est vide, la fonction doit renvoyer une chaine vide

Pour réaliser cet exercice, vous pouvez déclarer une variable alphabet de type chaîne de caractères qui contient toutes les lettres minuscules de l'alphabet et pour chacune d'elles compter le nombre d'occurrences dans la chaîne passée en paramètre..

def plus_Frequent (chaine):
    symbol = [0] * 26  # car il ya 26 minuscules
    for i in chaine:
        symbol [ord(i)] += 1
    return symbol          # retourne tous les nombres d'occurrences

j'arrive pas a finir, sans utiliser la fonction count,counter or list
merci

#13 Re : Échecs et maths » Les Noirs jouent et gagnent : thème de mat classique » 10-07-2019 14:28:10

voila ma solution: 1... D * e4+ 2.f3 (si 2.Rg2 Ch3# et si 2.d*e3  Ff3+ suivi par 3...Ch3#) 2...F*f3+ si 3.Rf2 Ch3# si 3.Rg2 Ch3#
3.T*f3  D*f3+ 4.Rg1  Ch3#
bon élève, non? pas comme la programmation lol
ps : generalement les problemes comme ca ne sont pas bons car ils commencent par un coup echec, je suis d'accord c un sacrifice de dame mais il reste le premier coup echec donc c facile de le trouver "ya pas mieux comme le coup attente

#14 Re : Programmation » doublon, arrangement » 10-07-2019 13:13:17

merci bq mr yoshi, tu sais! je me suis dit je vais créer une variable (compteur) mais toujours il y a une une dans ma tète "le compteur va compter le nombre de doublons, mais pour le nombre de tests elle prend quelle ligne dans le code? donc l'idée  c d'avant la ligne IF
j'ai croisé un problème comme ca( change le placement) mais je sais pas... je pense que c manque d’expérience ^^.
une question : la on est d'accord n_tests = n(n-1) / 2; mais comment tu peux la prouver mathématiquement sans test sur IDE? j'insiste sur /2

#15 Programmation » doublon, arrangement » 09-07-2019 16:24:27

zizou47
Réponses : 4

bonjour : )

def existe_doublon(liste):
res=False
n=len(liste)
for k in range(n-1):
  for j in range(k+1,n):
   if liste[k]==liste[j]:
    res=True
return res
-------------------
Q : Combien y a t'il de test d'égalités entre chaîne de caractères lors de l'appel avec un paramètre liste de longueur n ?
moi je connais le produit cartésien ' (n - 1) * (n - (k+1))  et a mon c un arrangement de A (n) et p = nombre de doublons ?

#17 Re : Programmation » Suite arithmético-géométrique » 08-07-2019 15:40:33

ohh merci yoshi, vous êtes smart, en fait je suis débutant (4 mois de programmation) lol

#18 Re : Programmation » Suite arithmético-géométrique » 08-07-2019 12:48:31

Re
l'exercice a demandé 2 fonctions
j'ai mis n+1 après j'ai essayé u0 sur un IDE online il n'a pas donné toute les valeur de Un
___________
pourquoi tu mis Un = u2 ?

#19 Re : Programmation » Suite arithmético-géométrique » 06-07-2019 16:14:00

yoshi a écrit :

Re,

Je constate que ici https://www.maths-forum.com/superieur/s … 08425.html celui qui a répondu est passé à côté de 3 choses :

Ecrivez une fonction atteint qui admet un unique paramètre M et qui renvoie le rang N

1. (...) une fonction qui admet un unique paramètre M (...)
2. (...) qui renvoie le rang N (...)
3. Laisser écrire : def u_terme (n):
    n étant le rang cherché que doit renvoyer la fonction (cf return n), il n'est pas logique de le passer en paramètre à cette fonction :
     cf def u_terme(n).
    En effet si on connait cette valeur, la question est sans objet et l'exercice n'en est plus un...

Pour ta culture personnelle, sache qu'il est assez mal vu de poser la même question sur des forums différents...
Ce n'est pas toi ?
Ok ! Tu sauras comme ça... ^_^

@+

c moi, merci pour le conseil :)

#20 Programmation » Suite arithmético-géométrique » 05-07-2019 17:17:54

zizou47
Réponses : 9

bonjour, j'ai une questions svp !
1 ) on a :
un+1=3un+1 ; u0 = 0
Question :
Créez une variable u_0 qui a pour valeur u0, puis une variable u_1 qui a pour valeur u1 et enfin une variable u_2 qui a pour valeur u2.

Question  :
Définissez une fonction u_terme qui renvoie la valeur de un.

Question  :
On admet que la suite (un)n∈N est croissante et non majorée. Ecrivez une fonction atteint qui admet un unique paramètre M et qui renvoie le rang N à partir duquel les termes de la suite sont supérieurs à M. (Autrement dit, N est le premier entier tel que uN≥M.)
______
moi j'ai fait :
def uterme(Un):
    u0,u1,u2 = 0,1,4
    for i in range (1,Un+2):
        Un = 3 * Un + 1
    return Un
' pour la 3eme Q'
print(uterme(0))
print(uterme(1))
print(uterme(2))
print(uterme(3))
j'arrive pas a trouver la solution, merci

Pied de page des forums