Générer nombre aléatoire limité

Fermé
sarrasin512 Messages postés 1 Date d'inscription mardi 2 décembre 2008 Statut Membre Dernière intervention 3 décembre 2008 - 3 déc. 2008 à 12:53
 Sims' - 3 déc. 2008 à 14:06
Bonjour,
voila je voudrais générer des nombre aléatoire sur le table de 10 ,ses nombres doive se limité a 1 et 0 mais leurs nombre doit etre égale, se qui ve dire 5 numéro 1 et 5 numéro 0
merci pour touts aide je suis vraiment désespéré

#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define n20
main()
{
int T[10][20];
int i,j;

for(i=0;i<=10;i++)
for(j=0;j<=20;j++)
T[i][j]=0;

srand(time(0));
for(i=0;i<=10;i++)
for(j=0;j<=20;j++)
T[i][j]=rand()%2;


for(i=0;i<=9;i++)
for(j=0;j<=18;j++)
{printf("%6d",T[i][j]);
printf(" ");
}
return 0;
}
voici le code source comme je le modifier ?

1 réponse

Hello,

Voici une vague hypothèse, il faudra éventullement compter le nombre de 1 et de 0 afin de savoir lorsque tu as atteint le quota de l'un ou de l'autre pour une ligne donné.

tu pourrais avoir qqch comme :
srand(time(0)); 
for(i=0;i<=10;i++) 
{
    int countZero = 0 ;
    int countUn = 0 ;

    for(j=0;j<=20;j++)
    {
        int randNumber = rand()%2;

        if (countZero == 5) //quota des 1 est atteint on met plus que des 0
        {
            T[i][j] = 1 ;
        }
        else
        {
            if (countUn == 5) //quota des 0 est atteint on met plus que des 1
            {
                T[i][j] = 0 ;
            }
            else
            {
                T[i][j] = randNumber ; //aucun quota n'est atteint on met le resultat du rand.

                //on compte le nombre de 1 ou de 0 utilié.
                if (randNumber==0)
                    countZero++;
                else
                    countUn++;
            }
        }
    }
}


voilà, je ne sais pas si ça répond à 100% à ta question ou si s'est la meilleur manière de faire, ça doit fonctionner... à Tester...
0