Avatar
Maros2470
Člen
Avatar
Maros2470:

Dobrý den. Můžete mi poradit jak zamezit tomu, aby se mi v poli náhodných čísel (v poli jich je pět), nevygenerovaly stejná čísla, aby každé číslo bylo jiné?

 
Odpovědět 13.2.2015 8:31
Avatar
simon.steiner:

Kontroluj si to pomocí cyklu pro každé číslo:

http://www.itnetwork.cz/dev-lighter/508
 
Nahoru Odpovědět 13.2.2015 10:05
Avatar
Odpovídá na Maros2470
simon.steiner:

Zapoměl jsem dát odpovědět tak tady to je ještě jednou ať o tom víš:

Random generator = new Random();
int[] pole = new int[5];
int vygenerovaneCislo;
int dosazujiDoIndexuCislo = 0;

for (int i = 0; i < pole.Length; i++)
{
    do
    {
        vygenerovaneCislo = generator.Next(0, 11);
    } while (pole[i] == vygenerovaneCislo);
    pole[dosazujiDoIndexuCislo] = vygenerovaneCislo;
    dosazujiDoIndexuCislo++;
}
 
Nahoru Odpovědět 13.2.2015 10:08
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na simon.steiner
Jan Vargovský:

Todle moc dobře fungovat nebude :)

Random generator = new Random();
List<int> pole = new List<int>();
int cislo;
for (int i = 0; i < 5; i++)
{
    do
        cislo = generator.Next(0, 11);
    while (pole.Contains(cislo));
    pole.Add(cislo);
}

nebo je pro tebe možná hezčí tohle

Random generator = new Random();
List<int> pole = new List<int>();
int cislo;
do
{
    cislo = generator.Next(0, 11);
    if (!pole.Contains(cislo))
        pole.Add(cislo);
}
while (pole.Count < 5);
Editováno 13.2.2015 10:58
 
Nahoru Odpovědět 13.2.2015 10:54
Avatar
Maros2470
Člen
Avatar
Maros2470:

Díky za rady. Pomohlo mmi to.

 
Nahoru Odpovědět 13.2.2015 14:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.