Randomizálás ismétlődés nélkül?
Figyelt kérdés
Üdv. Egy kis segítséget kérnék. Van egy táblázatom(16mezőm), amit randomizálva feltöltök 1 és 15 közé eső számokkal. Csak ugye ismétlődés tapasztalható, és nem szeretném, hogy két szám többször szerepeljen. Shuffle-t próbáltam, de ugye az listet ad vissza és nekem az nem jó. Előre is köszi.2015. ápr. 13. 17:15
1/5 anonim válasza:
ciklus 1..N
a=random index
b=random index
megcseréled
ciklus vége
Amúgy mi nem jó a listában? Nem tudod a táblázatot listából feltölteni?
2/5 anonim válasza:
for(i = 0;i < 15;i++) a[i] = i+1;
for(i = 0;i < 15;i++)
{
j = rand() % (15-i);
b[i] = a[j];
for(;j < 15-i;j++) a[j] = a[j+1];
}
Ez például pont azt csinálná.
3/5 anonim válasza:
Addig generálsz elemet, míg egy halmaz fel nem lesz töltve 16 elemmel. Mivel a halmazban csak egyszer szerepelhetnek az értékek, pont azt fogod kapni, amire szükséged van.
4/5 anonim válasza:
A list elemeit be lehet tenni a táblázatba. A kettős ciklusban a 4*i+j-edik elemet kell berakni az (i,j) helyre.
5/5 anonim válasza:
Erre találták ki a halmazt. Az minden elemet csak egyszer tárol. Szóval:
//C# kód
HashSet<int> s = new HashSet<int>();
Random r = new Random();
while (s.Count() < 16) {
s.Add(r.Next(1, 15));
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!