1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : mars 2012
    Messages : 13
    Points : 11
    Points
    11

    Par défaut Fichier sous forme de fonction ou non

    Bonjour,

    Voici ci-dessous le même code mis sous forme de fonction ou non. Le problème est que je n'obtiens pas le même résultat quand je l'exécute alors que c'est le même code. Dans un cas (en tapant exec loto.sci) je trouve e autour de 35900 et dans l'autre cas (en tapant loto2(100000)) je trouve e autour de 16500. Le "bon" résultat est celui qui tourne autour de 35900. Mais je ne comprends pas pourquoi la fonction loto2 ne me donne pas le bon résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    e=0;
        for k=1:100000
            j=1:49;
            m=0;
            for l=1:5
                x=floor((50-l)*rand()+l);
                y=j(l);
                j(l)=j(x);
                j(x)=y;
                for p=1:l
                   if abs(j(p)-j(l))==1
                    m=m+1;
                   end
                end
            end
            if m>=1
                e=e+1;
            end
        end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function [e]=loto2(s)
     
        e=0;
        for k=1:s
            j=1:49;
            m=0;
            for l=1:5
                x=floor((50-l)*rand()+l);
                y=j(l);
                j(l)=j(x);
                j(x)=y;
                for p=1:l
                   if abs(j(p)-j(l))==1
                    m=m+1;
                   end
                end
            end
            if m>=1
                e=e+1;
            end
        end
     
     
    endfunction
    Merci beaucoup.

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    juin 2012
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2012
    Messages : 211
    Points : 270
    Points
    270

    Par défaut

    Bonjour,

    Il faut entrer en console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s=100000; e=loto2(s); disp(e)
    en ayant fait au moins une fois avant:

Discussions similaires

  1. Réponses: 33
    Dernier message: 03/09/2009, 17h16
  2. Réponses: 12
    Dernier message: 23/09/2008, 18h09
  3. supprimer des fichiers sous dos en fonction de leur date
    Par nikoko dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/04/2008, 16h37
  4. Liste déroulante sous forme de fonction
    Par Mikke dans le forum PHP & MySQL
    Réponses: 26
    Dernier message: 29/02/2008, 11h20
  5. récupérer un fichier sous forme de String
    Par AnneB dans le forum Langage
    Réponses: 2
    Dernier message: 25/08/2007, 20h46

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