C# ellenőrzük , hogy azonos számok ne szerepeljenek?
Feladat egy része:
Töltsön fel egy 10 elemű listát 1 és 100 közé eső véletlen számokkal (ez kész)
Ellenőrize , hogy azonos számok ne szerepeljenek a listába. Ezt hogy tudom megcsinálni?
Valószinű mielőtt a listához adod azelőtt kell az ellenörzés.
List<int> l = new List<int>();
Random rnd = new Random();
while (l.Count < 10)
{
int szam = rnd.Next(0, 100);
if (!l.Contains(szam))
{
l.Add(szam);
}
}
Itt a while ciklus addig megy amíg 10 különböző szám nem lesz a listába
1) Fogsz egy 100 elemű tömböt és feltöltöd 1-től 100-ig növekvő sorrendben.
2) Összekevered a tömb elemeit.
3) Az első tíz elemét átmásolod listába.
Ha az lenne a feladat, hogy "Töltsön fel egy 10 elemű listát 1 és 100 közé eső különböző véletlen számokkal", akkor jó lenne az előző 3 megoldás (eltekintve attól, hogy a #2-es 0-tól 99-ig generál)... valószínűleg erre is gondolt a feladat kitalálója, de nem ezt írta.
A feladat alapján csak simán fel kell tölteni véletlen számokkal, amik között lehet egyenlő is... utána lévő mondta picit fura nyelvtanilag... több gond is van vele, de a legnagyobb, hogy mi az, hogy "ellenőrizze, hogy ne szerepeljenek"? úgy lenne helyes, hogy "ellenőrizze, hogy szerepel-e". (A "listába" pedig "listában")
Nem vagyok nyelvész, de a programozáshoz azért kene valami precizitás...
Egyébként pedig az első megoldás a legszimpatikusabb, bár azt valamiért lepontozták. Keverésnél túl nagynak tűnik az overhead 10/100 esetén. 50/100-ra jó lenne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!