Algorithme/Code en python
Loulou75
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaiterais implémenter l'algorithme suivant en python :
si i = j alors
retourner (A[i], 1)
sinon
(x, cx) = maj(i, (i + j)/2)
(y, cy) = maj((i + j)/2 + 1, j)
si cx ̸= 0 alors
cx ← cx + occur(x, (i + j)/2 + 1, j)
si cy ̸= 0 alors
cy ← cy + occur(x, i, (i + j)/2)
si cx >(j−i+1)/2 alors
retourner (x, cx)
sinon
si cy >(j−i+1)/2 alors retourner (y,cy)
sinon
retourner (−,0)
Ce qui nous donne :
*
Mais du coup ce que j'ai fais ne marche pas, sa reste bloqué sur cette ligne de code
Je vous remercie d'avance pour votre aide.
Je souhaiterais implémenter l'algorithme suivant en python :
si i = j alors
retourner (A[i], 1)
sinon
(x, cx) = maj(i, (i + j)/2)
(y, cy) = maj((i + j)/2 + 1, j)
si cx ̸= 0 alors
cx ← cx + occur(x, (i + j)/2 + 1, j)
si cy ̸= 0 alors
cy ← cy + occur(x, i, (i + j)/2)
si cx >(j−i+1)/2 alors
retourner (x, cx)
sinon
si cy >(j−i+1)/2 alors retourner (y,cy)
sinon
retourner (−,0)
Ce qui nous donne :
def occur(A,x,i,j):
p=0
for k in range (i,j+1):
if x==A[k]:
p=p+1
return p
def maj(i,j):
if i==j:
return(A[i],1)
else:
(x,cx) = maj(i,(j-i+1) // 2)
(y,cy) = maj(((j-i+1) // 2)+1,j)
if cx!=0:
cx=cx+occur(x,((j-i+1) // 2)+1,j)
if cy!=0:
cy=cy+occur(x,i,(j-i+1) // 2)
if cx>(j-i+1) // 2:
return (x,cx)
else:
if cy>(j-i+1) // 2:
return (y,cy)
else:
return (-1,0)
*
Mais du coup ce que j'ai fais ne marche pas, sa reste bloqué sur cette ligne de code
(x,cx) = maj(i,(j-i+1) // 2)
Je vous remercie d'avance pour votre aide.
Configuration: Macintosh / Safari 11.0.3
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Algorithme/Code en python
- Code ascii - Guide
- Citizen code python - Accueil - Outils
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
bonjour, essayons d'abord de comprendre ton algorithme:
que signifie la ligne suivante, où tu utilises = et pas ←?
comme tu n'expliques pas le contexte, comment pouvons-nous deviner ce que tu essaies de faire?
par ailleurs, "sa reste bloqué", vraiment? peut-être un message d'erreur?
que signifie la ligne suivante, où tu utilises = et pas ←?
(x, cx) = maj(i, (i + j)/2)
comme tu n'expliques pas le contexte, comment pouvons-nous deviner ce que tu essaies de faire?
par ailleurs, "sa reste bloqué", vraiment? peut-être un message d'erreur?
Tu as raison je devrais utiliser "←", c'est bien "=" en python?
Merci pour ton aide.
pourrais-tu également partager ton code complet?