Exercice python lycée
Fermé
Yamine_1411
Messages postés
12
Date d'inscription
mercredi 30 décembre 2020
Statut
Membre
Dernière intervention
1 janvier 2021
-
Modifié le 30 déc. 2020 à 14:48
jee pee Messages postés 40978 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 mars 2025 - 1 janv. 2021 à 20:14
jee pee Messages postés 40978 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 mars 2025 - 1 janv. 2021 à 20:14
3 réponses
Utilisateur anonyme
30 déc. 2020 à 18:22
30 déc. 2020 à 18:22
Bonsoir
CCM, comme tous les sites de code qui se respectent disposent d'un outils pour mettre en forme le code (et donc conserver l'indentation), voir le texte et le lien (à lire attentivement) que jee pee a ajouté à la fin de ton message en le corrigeant.
Pour ton problème, selon ton énoncé M est un entier, tu ne peux donc ni récupérer sa longueur, ni l'indicer.
CCM, comme tous les sites de code qui se respectent disposent d'un outils pour mettre en forme le code (et donc conserver l'indentation), voir le texte et le lien (à lire attentivement) que jee pee a ajouté à la fin de ton message en le corrigeant.
Pour ton problème, selon ton énoncé M est un entier, tu ne peux donc ni récupérer sa longueur, ni l'indicer.
Utilisateur anonyme
30 déc. 2020 à 19:05
30 déc. 2020 à 19:05
j'avais juste inversé N et M
Oui c'était le premier point et comme jee pee, je ne suis pas sûr de comprendre l'énoncé.
Sa question est pertinente, pour voir si nous comprenons comme toi.
Si ton prof t'as donné des précisions ou un jeu de données de correction (valeurs d'entrées et résultat associé) se serait bien de nous les communiquer.
jee pee
Messages postés
40978
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 mars 2025
9 572
>
Utilisateur anonyme
30 déc. 2020 à 19:39
30 déc. 2020 à 19:39
Heureusement que je n'ai pas encore cherché à écrire le programme, moi je donnerais comme réponse 7.
Utilisateur anonyme
>
jee pee
Messages postés
40978
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 mars 2025
30 déc. 2020 à 20:36
30 déc. 2020 à 20:36
mdr
Yamine_1411
Messages postés
12
Date d'inscription
mercredi 30 décembre 2020
Statut
Membre
Dernière intervention
1 janvier 2021
30 déc. 2020 à 20:49
30 déc. 2020 à 20:49
jee pee
Messages postés
40978
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 mars 2025
9 572
30 déc. 2020 à 20:55
30 déc. 2020 à 20:55
Dans le fond je vais pouvoir l'écrire mon code ;-)
Yamine un indice : j'avais bien senti qu'il fallait trier la liste en entrée.
Yamine un indice : j'avais bien senti qu'il fallait trier la liste en entrée.
Yamine_1411
Messages postés
12
Date d'inscription
mercredi 30 décembre 2020
Statut
Membre
Dernière intervention
1 janvier 2021
>
jee pee
Messages postés
40978
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 mars 2025
30 déc. 2020 à 20:58
30 déc. 2020 à 20:58
Trier en ordre croissant ? (j'y ai pensé mais je me suis dis que ça ne servais à rien)
Mon raisonnement : Je veux tester pour chaque valeur de N combien d'amis sont compris dans son temps de séjour M et trouver quelle est le nombre maximum d'amis qu'elle peut voir
Mon raisonnement : Je veux tester pour chaque valeur de N combien d'amis sont compris dans son temps de séjour M et trouver quelle est le nombre maximum d'amis qu'elle peut voir
jee pee
Messages postés
40978
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 mars 2025
9 572
>
Yamine_1411
Messages postés
12
Date d'inscription
mercredi 30 décembre 2020
Statut
Membre
Dernière intervention
1 janvier 2021
Modifié le 30 déc. 2020 à 22:54
Modifié le 30 déc. 2020 à 22:54
oui aussi, en triant je voulais faire une boucle moins longue en sortant sans explorer toute la liste.
en fait c'est l'initialisation de ton compteur amis qui est mal positionnée, il cumule toutes les boucles
en fait c'est l'initialisation de ton compteur amis qui est mal positionnée, il cumule toutes les boucles
Yamine_1411
Messages postés
12
Date d'inscription
mercredi 30 décembre 2020
Statut
Membre
Dernière intervention
1 janvier 2021
>
jee pee
Messages postés
40978
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 mars 2025
Modifié le 31 déc. 2020 à 11:06
Modifié le 31 déc. 2020 à 11:06
Ok, j'avais essayé de rajouter une variable amismax qui stockerai du coup la valeur amis du tour de la boucle où il serait le plus haut , ce n'est pas la bonne solution ?
Je t'avoue que je suis un peu confus (je n'ai pas beaucoup d'experience en python je debute),la solution est à ma portée tu penses ?
Ou plutôt est-ce que je suis loin du bon résultat ?
Je t'avoue que je suis un peu confus (je n'ai pas beaucoup d'experience en python je debute),la solution est à ma portée tu penses ?
Ou plutôt est-ce que je suis loin du bon résultat ?
jee pee
Messages postés
40978
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 mars 2025
9 572
>
Yamine_1411
Messages postés
12
Date d'inscription
mercredi 30 décembre 2020
Statut
Membre
Dernière intervention
1 janvier 2021
31 déc. 2020 à 14:37
31 déc. 2020 à 14:37
Tu es à une marche du bon résultat.
L’écriture d'un programme c'est une idée d'un processus (la tienne tient la route). Après cela ne fonctionne pas du premier coup, on attend une étincelle d'intelligence, ou le lendemain, ou on s'attelle à un travail de fond, le debug. Je suis toujours surpris dans les codes que l'on nous donne sur le forum de ne pas voir de print() pour comprendre ce qui se passe. On doit parfois en mettre après chaque ligne, pour voir où le programme passe et ce que contient chaque variable touchée.
Voilà ton code, qui pour l'exemple donné retourne 15. En une seule modification, mineure sur la forme, majeure sur la logique, il donne le 3 attendu. J'ai rajouté un print pour que tu t'interroges sur l'évolution des compteurs.
L’écriture d'un programme c'est une idée d'un processus (la tienne tient la route). Après cela ne fonctionne pas du premier coup, on attend une étincelle d'intelligence, ou le lendemain, ou on s'attelle à un travail de fond, le debug. Je suis toujours surpris dans les codes que l'on nous donne sur le forum de ne pas voir de print() pour comprendre ce qui se passe. On doit parfois en mettre après chaque ligne, pour voir où le programme passe et ce que contient chaque variable touchée.
Voilà ton code, qui pour l'exemple donné retourne 15. En une seule modification, mineure sur la forme, majeure sur la logique, il donne le 3 attendu. J'ai rajouté un print pour que tu t'interroges sur l'évolution des compteurs.
def manhathanMaboul(M,N): amismax=0 amis=0 for i in range (len(N)): for k in range (len(N)): if N[i]<=N[k]<=(N[i]+M): amis=amis+1 print(i,k,N[i],N[k],N[i]+M,"compteurs", amis, amismax) if amis>amismax: amismax=amis print("Résultat",M,N," = ",amismax) return amismax manhathanMaboul(5, [3,11,1,7,6,12])
Modifié le 30 déc. 2020 à 18:38
On dirait que la réalisation ne respecte déjà pas l'énoncé, intervertissant M et N.
Franchement j'ai peu d'idée sur la solution ;-)
Après Yamine, pour que tout le monde soit d'accord sur l'énoncé, et sa solution, quelles réponses apporterais-tu à ces paramètres passés :
30 déc. 2020 à 18:41
Modifié le 30 déc. 2020 à 18:51
Modifié le 30 déc. 2020 à 18:36