Probleme de programation C++

Bonjour a tous...
Je suis nouveau en programation , j'ai kan meme les bases...
Je voudrais réaliser un jeu de mémory (but : découvrir des paires parmis des cartes retournées)
Mon problème est que pour ce faire, j'aurai besoin de placer les nombre de 1 à 35 de manière aléatoire dans un tableau, sans qu'il se répètent, et faut qu'ils y soient tous.
Je n'ai pas trouvé ma réponse dans la partie C++ du site (peut etre pas su la trouver) ... si vous pouviez m'aider ou me conseiller,
Merci d'avance.

7 réponses

  1. Hou la la, je ne me suis pas bien relu. J'ai fait une autre faute :

    (double)rand() / (double)RAND_MAX *(b-a) te renvoie un nb aléatoire entre A et b-a. (avant j'avais écrit "entre a et b-a")
    0
    1. excuse, j'ai fait une erreur de frappe

      assert(b>a) et non asser(b>a)
      0
      1. Salut

        #include<iostream>
        #include<cstdlib> // pour avoir la constante RAND_MAX
        #include<cassert>
        using namespace std;

        int main()
        {
        const double a=2;
        const double b=7;

        asser(b>a);

        for(int i=0;i<20;i++) cout<<(double)rand() / (double)RAND_MAX *(b-a)+a<<endl;
        return 0;
        }

        explications : quand tu fais rand(), tu obtiens un ENTIER entre 0 et RAND_MAX. Donc quand tu fais rand()/RAND_MAX tu effectues une division entre 2 ENTIERS donc tu obtiens 0. C'est pourquoi tu dois convertir en double afin d'effectuer une division de DOUBLE.

        Tu ramène ton intervalle [a,b] à [0, b-a].

        (double)rand() / (double)RAND_MAX *(b-a) te renvoie un nb aléatoire entre a et b-a.
        Puis tu rajoute a à ton nombre afin de revenir entre a et b d'où le "+a" à la fin
        0
        1. bonjour a tous;
          je souhaite connaitre comment génèrer un nombre aléatoire dans un intervale donné (entre 2 nombres) en C++ builder 6.
          merci d'avance.
          0
          1. j ai un syteme d equations différentielles couplées de types

            d2(y)/d(t2)= d(x)/dt sin(a)

            d2(x)/d(t2)= - d(y)/dt sin(a)

            avec a qui varie a= y/r

            avec r= contante conue.

            je cheche a résoudre ce probleme numériquement sur c++
            par la méthode de Rung kutta ( ou euler).

            j ai besoin de votre aide car je sui débutant sur le c++
            0
            1. Salut,
              commence déjà par écrire ce que tu as fait et ensuite on t'aidera. Surtout que là, tu ne dis même pas où se trouve ton problème.
              0
          2. bonjour
            J'ai une question pour l'oteur de se message ( à pinpin )
            Quel compilateur utilise tu pour compiler en c++?
            mersi d'avance

            ps tu peux me répondre par mail
            0
            1. Salut!!!
              je travail avec C++ builder 6. C'est pour un projet à l'école.
              0
          3. Bon j'ai pas trop d'idée de génie pour toi, mais j'ai une idée à la con.
            Tu définis un tableau de 1 à 35 , ensuite :
            Tab[1] = 1
            Tab[2] = 2
            Tab[3] = 3
            .....
            Tab[35] = 35

            Ensuite, tu effectuesune boucle de 1 à 35 (pour passer dans chaque case de ton tableau). Tu effectues un Random de 1 à 35 et là tu inverseras le chiffre de ta position actuelle avec celui du Random.
            Exemple algorithmique :
            ================

            Pour i = 1 jusque 35
            position = random(1,35)
            buffer = tab[i]
            tab[i] = tab[position]
            tab[position] = buffer
            i = i+1
            Fin_Pour

            Bon je sais pas si c'est ce que tu voulais, c'est peut etre pas optimale non plus mais ça me plait!!

            :-p

            Yann
            0
            1. Je te remercie beaucoup pour ta solution, c'est bon je suis arrivé à faire mon tableau nikel!!!
              Merci encore et a plus
              0