PHP feladatban segítség?
Valaki aki otthon van PHP-ben tudna segíteni egy feladatban?
Szóval létre kell hozni egy tömböt, amiben 20 db 5-35 között, rand() függvénnyel generált szám van, de nem lehet benne 2 ugyanolyan. Hogy lehetne ezt megoldani?
Köszi előre is!
2 megoldást tudsz:
ELSŐ:
Elkezded generálni a 20 számot
Amikor generálsz 1 számot megnézed benne van e már a tömbben, ha igen, akkor újra próbálkozol...
Addig amíg nem lesz 20 számod
MÁSODIK:
Létrehozol egy tömböt 5-35 közötti számokkal feltöltve, összekevered random őket és kiveszed belőle az első 20 számot.
"Miért kerülné ez meg a feladatot? A feladat egy 20 elemű tömb, amiben random,"
Azért kerüli meg, amit le is írtál.
Nyilván nem lesz random az a számhalmaz, amelyet úgy generáltatsz, hogy a generáló függvény határértékeit saját preferenciád szerint változtatod, csak hogy az egyéb munkát megspórold. Értem én a koncepciódat, de a tanárok azt szeretik, ha az adott feladatra adnak adekvát választ a tanulók a megoldásaikkal.
Itt a feladat egy számhalmaz generálása adott intervallumon belül és annak vizsgálata, hogy ne legyen két egyforma érték a halmazban.
Erre nem megoldás az, hogy úgy generáltatok egy halmazt, hogy már ne is kelljen duplikációt kizáró vizsgálatot végeznem.
Ha ez iskolai feladat lenne, akkor a munkádra valószinűleg karót kapnál.
Lineáris időben egyszerűen megoldható a feladat, 2 tömb használatával.
Az egyik tömb legyen X (ebben lesz az eredmény), a másik pedig egy 36 elemű - vagy valójában 31 is elég, egy kis trükközéssel - in_X tömb, ami logikai (bool) változókból áll.
Amikor kisorsolsz egy számot (legyen “a”), megnézed, hogy az in_X[a] értéke hamis-e. Ha hamis, beszúrod az X tömb végére “a”-t, és az in_X[a] értékét igazra állítod. Ha pedig igaz, sorsolsz egy újabb számot.
Mindezt addig, amíg az X tömb elemszáma el nem éri a 20-at.
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!