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

Python Discussion :

Besoin d'aide pour mon TIPE de maths


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Prépa scientifique MP (Maths Spé)
    Inscrit en
    Septembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Prépa scientifique MP (Maths Spé)

    Informations forums :
    Inscription : Septembre 2023
    Messages : 2
    Par défaut Besoin d'aide pour mon TIPE de maths
    Bonjour à tous,

    Je suis en train de coder une tentative d'approche de résolution pour le jeu du démineur (oui, c'est mon sujet de tipe), cependant, j'ai des bases assez bancales en Python. En effet, mon soucis est que j'ai une liste composée de plusieurs sous listes, j'essaie de trouver les sous listes égales et je supprime l'une d'elle si elles le sont, c'est à dire, pour avoir au final des sous listes uniques dans ma liste. Or, je n'arrive pas à montrer l'égalité, j'ai mis en pièce jointe mon équivalent de boucle dans une liste simplifiée. Est ce quelqu'un pourrait m'aider ?

    Merci,
    Cordialement,
    Rayan HASNIOU
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Ce qui ne va pas, c'est que la 2ème boucle (y) ne doit démarrer qu'à l'indice qui suit celui de x. Il faut donc que le parcours doit se faire avec les indices, donc avec range.

    du genre (je n'ai pas essayé):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in range(0, len(M)-1):
        for j in range(i+1, len(M)):
            if M[i]==M[j]:
                ...
    Et on ne peut pas effacer un élément de la liste qu'on est en train de décrire. Ou il faut faire le parcours à l'envers.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 836
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par rayh78 Voir le message
    Est ce quelqu'un pourrait m'aider ?
    On ne delete pas une liste sur laquelle on est en train d'itérer. Parce que le delete décale la suite de la liste vers la gauche mais l'itération décale l'itérateur vers la droite => resultat tu perds un élément sur deux.
    Accessoirement je ne vois pas, dans le démineur, l'utilité de deleter des éléments. Au démineur tu as des cases cachées et des cases découvertes. Il te suffit de mettre un flag pour chaque case. Même comparer des listes je vois pas le but...

    Et les codes on les poste dans le forum ce qui permet de les copier/coller (là ça va que le truc fait 3 lignes).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Candidat au Club
    Homme Profil pro
    Prépa scientifique MP (Maths Spé)
    Inscrit en
    Septembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Prépa scientifique MP (Maths Spé)

    Informations forums :
    Inscription : Septembre 2023
    Messages : 2
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Accessoirement je ne vois pas, dans le démineur, l'utilité de deleter des éléments. Au démineur tu as des cases cachées et des cases découvertes. Il te suffit de mettre un flag pour chaque case. Même comparer des listes je vois pas le but...
    Malheureusement, je fais mon code juste avec mes simples connaissances d'info depuis ma MPSI (maths sup), alors mon niveau est pas fou. Le but de mon code au global, c'est étudier une grille de démineur et d'attaquer de différentes manières la grille pour trouver toutes les cases qui ne sont pas des mines. Alors je choisis naïvement des cases avec différentes approches, cependant il m'arrive de retomber sur la même case choisie (vue que c'est naïf), alors je suis obliger de comparer les différentes coordonnées stockées (qui ne sont pas des mines) et retirer les doublons. Je n'ai pas trouvé une autre manière de faire pour faire cette approche, si tu as des idées pour résoudre ce problème ca m'aiderait beaucoup !

    Merci pour les conseils haha !

    Citation Envoyé par wiztricks Voir le message
    Ceci dit, si M représente un ensemble de cases via leurs coordonnées, on ne va pas les modifier: un tuple serait plus approprié qu'une liste.... et si M est un ensemble autant utiliser un set ce qui évite d'avoir à trier les doublons après...
    Ma grille de démineur de base est une liste, est ce possible de la transformer facilement en set ? J'ai bien compris comment le set fonctionnait, je vois que ca m'aiderait beaucoup !

    Merci pour les conseils !!

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 836
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rayh78 Voir le message
    cependant il m'arrive de retomber sur la même case choisie (vue que c'est naïf), alors je suis obliger de comparer les différentes coordonnées stockées (qui ne sont pas des mines) et retirer les doublons. Je n'ai pas trouvé une autre manière de faire pour faire cette approche, si tu as des idées pour résoudre ce problème ca m'aiderait beaucoup !
    J'ai pas trop compris comment tu choisis tes cases mais au lieu de tirer n cases puis supprimer les cases en double, moi j'aurais tiré n cases et vérifié, au moment du tirage si le tirage de la case "x+1" n'est pas déjà sorti dans les x précédentes (le in est bien pour ça).
    Ca c'est l'algo de base. Python t'offre en plus le set() qui s'occupe lui-même de gérer les doublons...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> import random
    >>> 
    >>> tab=set()
    >>> for i in range(10):
    ...     tab.add((random.randint(1, 7), random.randint(1, 7)))
    ... 
    >>> tab
    {(7, 1), (6, 5), (2, 7), (1, 5), (3, 7), (6, 7), (2, 2), (1, 6), (4, 1)}
    >>>
    Tu peux relancer autant que tu veux, tu n'auras jamais deux couples identiques...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Salut,

    Citation Envoyé par rayh78 Voir le message
    cependant, j'ai des bases assez bancales en Python. En effet, mon soucis est que j'ai une liste composée de plusieurs sous listes, j'essaie de trouver les sous listes égales
    Un peu de recherche sur Internet sortirait ce genre de mini-tuto qui récapitule les différentes façon de...

    Ceci dit, si M représente un ensemble de cases via leurs coordonnées, on ne va pas les modifier: un tuple serait plus approprié qu'une liste.... et si M est un ensemble autant utiliser un set ce qui évite d'avoir à trier les doublons après...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Citation Envoyé par rayh78 Voir le message
    Ma grille de démineur de base est une liste
    Une grille, c'est un truc à deux dimensions non? Donc chaque case (de la grille) se repère par n° ligne x n° colonne que je peux représenter par un tuple et une liste de tuples se transforme facilement en set de tuples... mais si on part avec un set, lui ajouter une case déjà présente ne fera pas de doublon.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Une grille, c'est un truc à deux dimensions non? Donc chaque case (de la grille) se repère par n° ligne x n° colonne que je peux représenter par un tuple et une liste de tuples se transforme facilement en set de tuples... mais si on part avec un set, lui ajouter une case déjà présente ne fera pas de doublon.

    - W
    Les set ne sont pas au programme de cpge.
    Du coup, s'il s'en sert, on va peut-être penser que le programme ne vient pas de lui.

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Les set ne sont pas au programme de cpge.
    Du coup, s'il s'en sert, on va peut-être penser que le programme ne vient pas de lui.
    Il y a ce qu'il faut pour faire avec des listes dans le mini-tutoriel proposé dans ma réponse à la question initiale. Les set ont été suggérés en alternative. Au PO de choisir ce qu'il veut utiliser.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Les set ne sont pas au programme de cpge.
    Du coup, s'il s'en sert, on va peut-être penser que le programme ne vient pas de lui.
    ou alors qu'il a fait des recherches et utiliser la doc pour progresser .....

  11. #11
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par rayh78 Voir le message
    Bonjour à tous,

    Je suis en train de coder une tentative d'approche de résolution pour le jeu du démineur (oui, c'est mon sujet de tipe), cependant, j'ai des bases assez bancales en Python. En effet, mon soucis est que j'ai une liste composée de plusieurs sous listes, j'essaie de trouver les sous listes égales et je supprime l'une d'elle si elles le sont, c'est à dire, pour avoir au final des sous listes uniques dans ma liste. Or, je n'arrive pas à montrer l'égalité, j'ai mis en pièce jointe mon équivalent de boucle dans une liste simplifiée. Est ce quelqu'un pourrait m'aider ?

    Merci,
    Cordialement,
    Rayan HASNIOU
    Je ne comprends pas trop la démarche : tu as des connaissances bancales en Python et tu bases ton TIPE sur un jeu codé en Python ?
    Il y a tellement d'autres sujets possibles. Cela va te faire progresser mais il y a peut-être mieux à faire ?

Discussions similaires

  1. besoin d'aide pour mon programme
    Par pouyoudu17 dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 28/05/2007, 22h18
  2. Besoin d'aide pour mon premier article tex
    Par amel666 dans le forum Erreurs - Avertissements
    Réponses: 2
    Dernier message: 21/02/2007, 13h18
  3. Besoin d'aide pour mon appli
    Par vince351 dans le forum AWT/Swing
    Réponses: 22
    Dernier message: 31/01/2007, 12h26
  4. besoin d'aide pour mon future site
    Par vulquin dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 11/06/2006, 20h33
  5. Besoin d'aide pour mon rpg en javascript
    Par CyberTwister dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/04/2006, 13h26

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