Diskuze: Pole náhodných čísel

C# .NET .NET (C# a Visual Basic) Pole náhodných čísel American English version English version

Aktivity (1)
Avatar
Maros2470
Člen
Avatar
Maros2470:13.2.2015 8:31

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:13.2.2015 10:05

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:13.2.2015 10:08

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ý:13.2.2015 10:54

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:13.2.2015 14:49

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.