IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
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ý
Tvůrce
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.