Générer nombre aléatoire limité

sarrasin512 Messages postés 1 Statut Membre -  
 Sims' -
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 ?
Configuration: Windows XP
Firefox 3.0.4

1 réponse

  1. Sims'
     
    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