Szerző Téma: getRandomNumber() v2.0  (Megtekintve 2347 alkalommal)

Nem elérhető krisk

  • 2380
    • Profil megtekintése
getRandomNumber() v2.0
« Dátum: 2015. Augusztus 23. - 21:11:53 »
+8 Show voters
Nem tudom, miért kaptam warnt, sajnos az első próbálkozásom volt, nem vagyok én egy pro scripter és ahogyan megnéztem, volt vele egy kis probléma, mert valóban a kockát levertem az asztalról mikor eldobtam a kockát, de azt hittem, hogy nem lesz ezzel baj, DE hát sajnos warnt kaptam miatta. :\'(
Hát de mindegy, szóval nem értem, hogy miért nem volt a posztomnak értelme, mikor egy teljesne működő script volt, csak nem csinálta azt, amit kellett volna!!! Na de ezt mostan javítani fogom:
Szóval ez a második próbálkozásom, remélem hogy ezér tnem fogok warnt kapni! Úgy döntöttem, hogy a sokkal felsőbbrendűbb kockadobásos módszer helyett egy ilyen matematikai hülyeséggel próbálkozok ami úgy se érdekel senkit, de hát mindegy, ha nem akarok megint warnt kapni ettől a remek közösségtől, akkor ez van. :@
Na mindegy, ez egy lineáris kongrugencia generátor, aminek az értékei a glibc-ből vannak szedve. A seed valami nehezen replikálható legyen, a tesztfüggvényben gettime() van. A szám 0 és RAND_MAX között lesz, használd a % operátort ha egy intervallumot akarsz. A számok nem kriptográfiailag biztosak meg mittudomén meg a többi hülyeség amit el kéne mondanom de NEM FOGOM inkább nézzetek utána!!!! Na szóval a lényeg hogy ezért nem kapok warnt????????? ReméleM!!!!!!!!!!!!!!!!!!!!!
Implementáció:
 

#define RAND_MAX 0x7fffffff
new gNext;
getRandomNumber_test()
{
printf(\"Veletlen szam 0 es 50 kozott:\");
for( new i = 0; i<5000; i++ )
{
printf(\"%i: %i\\t\", i, getRandomNumber(gettime()) % 50 );
}
return 1;
}
getRandomNumber(seed)
{
if( gNext == 0 )
{
    gNext = seed;
}
return gNext = (gNext * 1103515245 + 12345) & RAND_MAX;
}
« Utoljára szerkesztve: 2015. Augusztus 24. - 02:23:13 írta Reynolds »

Nem elérhető EnterR

  • Globális moderátor
  • 4223
  • dawg
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #1 Dátum: 2015. Augusztus 23. - 21:16:26 »
+1 Show voters
Fogalmam sincs, hogy mi ez de elég meggyőző.

Nem elérhető anGeL

  • Adminisztrátor
  • 2158
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #2 Dátum: 2015. Augusztus 23. - 21:17:52 »
+1 Show voters
Eléggé meggyőző és eléggé szígyó. Hasznos kis script!  :shurg:

Nem elérhető krisk

  • 2380
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #3 Dátum: 2015. Augusztus 23. - 21:20:56 »
+1 Show voters
Idézetet írta: anGeL date=1440357472\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"57397\" data-ipsquote-contentclass=\"forums_Topic
Eléggé meggyőző és eléggé szígyó. Hasznos kis script!  :shurg:
 
Van egy jobb verzióm is, ha nem érted, hogy mit csinál, ez sokkal egyszterűb bés könnyebb megérteni:
 

#define RAND_MAX 2147483647
getRandomNumber(seed)
{
    #pragma unused seed
    return random(RAND_MAX);
}
« Utoljára szerkesztve: 2015. Augusztus 23. - 21:24:32 írta Reynolds »

Nem elérhető AnthonyGates

  • 546
  • AnthonyGates
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #4 Dátum: 2015. Augusztus 23. - 21:36:45 »
+1 Show voters
Fajin! Nagyon hasznos. Régóta kerestem

getRandomNumber() v2.0
« Válasz #5 Dátum: 2015. Augusztus 24. - 12:05:24 »
+3 Show voters
Szép munka, bár értelme az a 0 felé konvergál.
Ennek a \"kis kódnak\" max annyi lehet az értelme, hogy nem kell változóba tárolni a számot. Ja és még szerintem lassítja is a folyamatot.

Nem elérhető krisk

  • 2380
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #6 Dátum: 2015. Augusztus 24. - 20:46:22 »
0 Show voters
Annyi az értelme, hogy jobb, mint az alap pawn-ba beépített random(), mert lehet seedelni.
Amúgy nyilván drágább folyamat, mint a sima alap random(), mert nem pluginban van írva. Ettől függetlenül szerintem nem akkora probléma, az algoritmus O(n) [lineáris] idő alatt fut és kb. 1300 művelet kerül 1 ms-be az én gépemen. Nem hiszem, hogy egy lineáris algoritmusnál és egy olyan ritkán használt függvénynél, mint a random(), pont a futásidővel kéne bajlódni.

Nem elérhető Benceee

  • 4785
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #7 Dátum: 2015. Augusztus 25. - 10:34:17 »
+3 Show voters
Kerrsk, nem megy neked ez a beilleszkedés, hagyd a fenébe. Inkább kérdőjelezd a csapat integritását, ahhoz értesz.

Nem elérhető grove4l

  • 1545
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #8 Dátum: 2015. Augusztus 25. - 11:08:42 »
+1 Show voters
Magyarosítás várható?

Nem elérhető b1s

  • 2212
  • Faszidegbénulás
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #9 Dátum: 2015. Augusztus 25. - 11:51:35 »
+2 Show voters
Idézetet írta: Benceee date=1440491657\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"57397\" data-ipsquote-contentclass=\"forums_Topic
Kerrsk, nem megy neked ez a beilleszkedés, hagyd a fenébe. Inkább kérdőjelezd a csapat integritását, ahhoz értesz.
 
erre sajnos minuszt kell adjak ! tisztelni kell a be illeszkedni probalni vagyo tagok probalkozasait!

Magyarosítás várható?
 
[/quote]hatarozott igen a valasz

getRandomNumber() v2.0
« Válasz #10 Dátum: 2015. Augusztus 25. - 12:05:57 »
+1 Show voters
Ez nyereményjátékokra is jó!

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
getRandomNumber() v2.0
« Válasz #11 Dátum: 2015. Szeptember 17. - 23:23:05 »
0 Show voters
Te atya úr isten mik mennek itt az elmúlt időkben amióta nem nézem a fórumot?  :D  :D  :D  :D  :D
Mellesleg a kód tetszik, nem igazán vágtam pontosan, hogy működik a random, de ez felkeltette az érdeklődésem, tehát irány googlezni.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal