Egy tömb elemeinek kiírása az alábbiak szerint?
Sziasztok!
Van egy programom, ami feltölt egy tömböt 1-90ig, bekér 5 tippet, és megadja hogy mennyi találatunk van. Konkrétan ötös lottó..
Nos, a probléma az lenne, hogy a tömb elemei lehetnek azonosak is. Például lehet benne három 50 is..
Hogyan lehetne azt megoldani hogy a tömbben egy szám csak egyszer forduljon elő? Előre is köszönöm a segítséget!
A legegyszerűbb módszer: Minden randomszámnál ellenőrzöd, hogy benne van-e már a tömbben, és addig pörgeted újra, amíg egyedi számot nem kapsz. A probléma ezzel: 90-ből 5 szám kiválaszásánál még egész okés, de nagyobb mennyiségeknél már rettenetesen megnyújthatja a futási időt (ugye potenciálisan végtelen ciklust okozhat).
A biztosabb megoldás(ok): Ha olyan megoldást akarsz, ami fix idő alatt fut le, érdemes feltölteni egy 90 elemű tömböt 1-től 90-ig sorban, majd ebből választasz ki random számokat:
Veszel egy random számot 1-től 90-ig, az adott helyen lévő tömbelemet kicseréled az első elemmel.
Veszel egy random számot 2-től 90-ig, az adott helyen lévő tömbelemet kicseréled a másodikkal.
És. Így. Tovább.
A tömb sorban való legenerálása garantálja, hogy minden szám egyszer szerepel, az utána minden iterációban eggyel csökkentett intervallum pedig biztosítja, hogy egyiket sem választod ki kétszer.
Picit körülményesebb, DE fix futásidejű.
Tölts fel egy tömböt 1-től 90-ig, ahogy az első mondja, aztán keverd meg őket és mondjuk az első 5 elem legyenek a kisorsolt számok.
A keverésre keress rá hogy hogy kell abban a programnyelvben amiben programozol.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!