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

MATLAB Discussion :

Permuter 2 chiffres entre eux


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut Permuter 2 chiffres entre eux
    Bonjour,

    Donc la j'ai un deuxième problème : le but est en fait de permuter 2 chiffres dans toute la grille. Par exemple tous les 2 deviennent des 7 et inversement: donc pour ce cas mon code est celui-ci : il y a une erreur c'est sur puisque rien ne se passe or je ne comprend pas pourquoi mais je suis là pour apprendre et pour trouver de l'aide donc voilà


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    a=[7 2 8 4 6 5 3 9 1;4 3 1 9 8 7 5 2 6;6 5 9 1 2 3 4 8 7;1 8 5 2 7 4 6 3 9;9 6 2 3 5 8 1 7 4;3 4 7 6 9 1 8 5 2;5 7 6 8 4 2 9 1 3;2 1 4 5 3 9 7 6 8;8 9 3 7 1 6 2 4 5]
    x=randi(9,1,1);
    y=randi(9,1,1);
    x~=y
     aux=x;
     x=y;
     y=aux;
    donc x et y doivent être différent mais sont compris entre 1 et 9 et doivent être choisi aléatoirement.


  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    As-tu fait un peu d'algorithmique avant de te lancer dans la programmation ?

    Parce que là ....ça va être difficile.

    Je vais t'expliquer ce que fait ton programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    x~=y %affiche 1 si x est égal à y, 0 sinon
     aux=x; %mets x dans aux
     x=y; %mets y dans x
     y=aux; %mets aux dans y
    Donc oui tu as intervertit x et y, et tu le fais même s'ils sont égaux (ce qui ne fera pas grand-chose ceci dit)

    Tu n'as pas fait intervenir a nulle part.

    Ce qui serait vraiment bien, avant même de coder, c'est de décrire l'algorithme.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Ben je sais pas programmer j'essaie mais sans plus. Ben l'algo je te l'ai décrit : le but est en fait de permuter 2 chiffres dans toute la grille. Par exemple tous les 2 deviennent des 7 et inversement

    J'ai eu des cours d'algorithme mais je les ai pas en tête et même ça ne m'aide pas à permuter deux chiffres

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Ce n'est pas un algo c'est un énoncé.

    Oui je sais comment faire, mais l'objectif c'est que toi tu comprennes la démarche à suivre par que je fasse ton exercice.

    Permuter 2 chiffres tu l'as fait.
    Faudrait juste penser à faire intervenir ton tableau a dans tout ça, non ?
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Ben oui mais comment je ne vois pas là. C'est sand oute simple mais la comme ça je ne vois pas. C'est vrai que le but est que je le fasse par moi même mais si je demande de l'aide sur ce site, ce n'est pas pour rien. C'est que j'ai vraiment du mal à programmer c'est tout ... Donc comment faire intervenir a ?

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Une idée d'"algorithme" :

    1. Trouver tous les indices dans A tels que A(ix,jx) = x
    2. Trouver tous les indices dans A tels que A(iy,jy) = y
    3. Pour tous les couples (ix,jx) A(ix,jx) = y
    4. Pour tous les couples (iy,jy) A(iy,jy) = x

    Maintenant MATLAB te permet de te débrouiller sans être obligé de faire des doubles boucles mais je te conseille quand même de commencer par faire la méthode lourde, et voir ensuite pour la vectorisation.
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Ba oui mais le ix matlab le comprend pas ...

  8. #8
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    c'est-à-dire ?

    Tu as du code, un message d'erreur ?

    Un exemple simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    A=[1 2 3;2 1 3;1 1 2];
    %Trouver les couples (ix,jx) pour lesquels A(ix,jx)=1
    ix=[];
    jx=[];
    for lig = 1:size(A,1)
       for col = 1:size(A,2)
          if A(lig,col) == 1
             ix(end+1) = lig;
             jx(end+1) = col;
          end
       end
    end

    Je vais être violente mais si tu ne connais pas ne serait-ce que les bases, je ne vois pas comment tu vas pouvoir programmer un sudoku
    Règles du Forum

    Adepte de la maïeutique

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Et bien le petit programme que tu m'as montré, je n'ai jamais vraiment utilisé size et tout ... Je t'explique : quand on a des TP sur matlab, tout est guidé on suit on fait nos petits programmes mais ça c'est au début de l'année. Je ne peux pas me souvenir de toutes les fonctions surtout que ce n'est pas le plus important dans mon année. Mais je dois faire ce programme et j'essaie de le faire et c'est pourquoi je sollicite de l'aide car excuse-moi si j'ai du mal.

  10. #10
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Euh...Tu dois avoir des cours non ?
    Si mes exemples ne t'apprennent rien, là ça va vraiment être difficile.

    Et sinon l'aide de MATLAB est TRES complète et TRES bien faite donc il faut l'utiliser au maximum.
    Règles du Forum

    Adepte de la maïeutique

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    oui je l'ai déjà lu mais ça ne m'aide en rien à faire pour permuter 2 chiffres ou alors inverser deux lignes ou deux colonnes de même secteur...

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Salut,

    As-tu au moins essayé de comprendre le code que t'a donné Caro-Line? Si oui, as-tu compris ce qu'elle a fait? Si tu ne l'as pas compris, à quel endroit bloques-tu?

    par exemple tu disais ne pas connaître la fonction size : tu auras l'explication dans le help de MATLAB :

    On ne va pas te donner la réponse directe à ton éxo, ça je pense que tu l'as compris, donc si tu veux avancer, il va falloir fournir un minimum d'effort, au moins nous dire ce que tu ne comprends pas...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    oui j'ai compris merci ^^ mais je ne pense pas qu'il me permettre de dire au programme que mon x et mon y soient deux nombres de ma matrices pris aleatoirement. Enfin je ne sais pas

  14. #14
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Pour choisir 2 nombres de façons aléatoires dans ta matrice :
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    merci mais j'ai réussi à trouver par moi même j'y ai mis un certain temps mais c'est bon j'ai trouvé ^^ Par contre maintenant j'ai un autre soucis et je vais donc poster une nouvelle discussion.

Discussions similaires

  1. [EJB]communiquer 2 ejb entre eux
    Par moeeez dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/04/2005, 16h31
  2. 1 Table, Des doublons, ne rertenir que certains d'entre eux
    Par Dragano dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/01/2005, 12h06
  3. Soustraire des éléments de tableau entre eux
    Par syl2095 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/01/2005, 15h29
  4. 2 SELECT Qui ne s'entendent pas très bien entre eux :(
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/08/2004, 16h46
  5. [File Maker Pro] Compatible entre eux ?
    Par dudu05 dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 06/05/2004, 08h42

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