Szerző Téma: Random szám generátor,ugyanaz a szám  (Megtekintve 1135 alkalommal)

Random szám generátor,ugyanaz a szám
« Dátum: 2014. szeptember 23. - 21:00:21 »
0 Show voters
Hali!
Van egy random szám generátorom ami 6 számjegyet generál véletlenül,és olyat akarnák bele csinálni,hogy véletlenül ne hogy kétszer generálja le ugyanazt a számot,mert nem akarom hogy össze buggoljon. Azt hallottam hogy while ciklussal kéne megoldani valahogy,vagy hogy ? Aki segít annak elõre is köszi.
Ez generálja a számot:
 

stock randomEx(min, max)
{   
    //Credits to y_less   
    new rand = random(max-min)+min;   
    return rand;
}
« Utoljára szerkesztve: 2014. szeptember 23. - 21:28:21 írta Flash »

Nem elérhető rayle

  • 174
    • Profil megtekintése
Random szám generátor,ugyanaz a szám
« Válasz #1 Dátum: 2014. szeptember 23. - 21:03:46 »
0 Show voters
Tehát olyat szeretnél hogy egymás után ne lehessen kétszer ugyanaz a szám?
 
new elozoszam;
stock randomEx(min, max)
{   
    //Credits to y_less   
    new rand;
    do
    {
        rand = random(max-min)+min;   
    }
    while(rand == elozoszam);
    elozoszam = rand;
    return rand;
}

Nem elérhető krisk

  • 2380
    • Profil megtekintése
Random szám generátor,ugyanaz a szám
« Válasz #2 Dátum: 2014. szeptember 23. - 21:30:16 »
+1 Show voters
Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.

Random szám generátor,ugyanaz a szám
« Válasz #3 Dátum: 2014. szeptember 23. - 22:30:58 »
0 Show voters
Idézetet írta: rayle date=1411499026\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic
Tehát olyat szeretnél hogy egymás után ne lehessen kétszer ugyanaz a szám?
 
new elozoszam;
stock randomEx(min, max)
{   
    //Credits to y_less   
    new rand;
    do
    {
        rand = random(max-min)+min;   
    }
    while(rand == elozoszam);
    elozoszam = rand;
    return rand;
}

 

Úgy szeretném,hogy például generál egy számot ami \"123456\",és azt szeretném, hogy ugyanezt a számot ne generálja le,tehát nem úgy szeretném hogy egymás mellet két ugyanolyan karaktert ne generáljon,hanem ezt,hogy teljesen ugyanazt a számot ne generáljon.

Nem elérhető M1A1

Random szám generátor,ugyanaz a szám
« Válasz #4 Dátum: 2014. szeptember 24. - 17:14:10 »
0 Show voters
Idézetet írta: krisk date=1411500616\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic
Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.
 

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Random szám generátor,ugyanaz a szám
« Válasz #5 Dátum: 2014. szeptember 24. - 18:25:13 »
+1 Show voters
new elozoszam; // mód teteje
stock randomEx(min, max)
{   
    //Credits to y_less   
    new msz, rand;
    do
    {
        rand = random(max-min)+min;   
        msz= rand;
    } while(msz == elozoszam);
    elozoszam = msz;
    return rand;
}

 
Szerintem mûködni fog, egymás után nem generálja ugyanazt a számot. Kicsit bonyolultabb, ha azt szeretnéd, hogy többet soha ne legyen ugyanaz a szám.
Edit: Javítottam.



Idézetet írta: M1A1 date=1411571650\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic


Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.
 

[/quote]
Ennek nem volt sok értelme, csak HSZ hunterkedés. Egyszer valaki leírta, szerintem elég érthetõen.
« Utoljára szerkesztve: 2014. szeptember 24. - 18:27:38 írta BackUP »

Random szám generátor,ugyanaz a szám
« Válasz #6 Dátum: 2014. szeptember 24. - 19:07:40 »
0 Show voters
Idézetet írta: BackUP date=1411575913\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic

new elozoszam; // mód teteje
stock randomEx(min, max)
{   
    //Credits to y_less   
    new msz, rand;
    do
    {
        rand = random(max-min)+min;   
        msz= rand;
    } while(msz == elozoszam);
    elozoszam = msz;
    return rand;
}

 
Szerintem mûködni fog, egymás után nem generálja ugyanazt a számot. Kicsit bonyolultabb, ha azt szeretnéd, hogy többet soha ne legyen ugyanaz a szám.
Edit: Javítottam.




 

Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.
 

[/quote]
Ennek nem volt sok értelme, csak HSZ hunterkedés. Egyszer valaki leírta, szerintem elég érthetõen.
 

[/quote]
Köszi,akkor jól tudtam hogy \'while\' -al kell megoldani. :D Egyenlõre átrakom \'megoldva\' csak mert ezt úgy tudom rendesen letesztelni,ha véletlen tényleg le generál egy olyan számot ami már létezik,szóval egyenlõre köszi. :) BackUP ha tudok akkor adok + t.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal