Kezdőoldal » Számítástechnika » Programozás » Randomizálás ismétlődés nélkül?

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:
100%

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?

2015. ápr. 13. 17:18
Hasznos számodra ez a válasz?
 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á.

2015. ápr. 13. 18:15
Hasznos számodra ez a válasz?
 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.
2015. ápr. 13. 19:34
Hasznos számodra ez a válasz?
 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.
2015. ápr. 13. 20:20
Hasznos számodra ez a válasz?
 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));

}

2015. ápr. 13. 22:21
Hasznos számodra ez a válasz?

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!