- Nem indul és mi a baja a gépemnek topik
- Pc hiba segítség kérés.
- 3D nyomtatás
- Milyen házat vegyek?
- Melyik tápegységet vegyem?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Házimozi belépő szinten
- Milyen széket vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Új hozzászólás Aktív témák
-
válasz
Dave-11 #1830 üzenetére
Az srand() inicializalja a randomgeneratort, ezt csak egyszer kell megcsinalni, praktikusan a program elejen. Ez altalaban nem tul bonyolult kod es elmondhato rola, hogy ha ugyanazzal a szammal inicializalod, akkor utana pontosan ugyanazokat a "veletlen" szamokat fogod kapni, ezert nepszeru megoldas, hogy a jelenlegi idovel inicializaljak, valahogy igy: srand( time() );
A rand() meg ezek utan egyszeruen visszaad egy veletlenszamot (ami a 0 - RAND_MAX intervallumba esik).
Ha intervallumot akarsz (mondjuk X es X+Y koze), akkor az egyszeru, ertheto es naiv megoldas az, hogy a rand altal visszaadott szamnak az Y-nal valo osztasanak a maradekat veszed es hozzaadod X-et. Konkretan a te peldadban (1-50, ahol X = 1 es Y = 49):
int random_number = rand() % 49 + 1;Es akkor most egy kicsit kenytelen vagyok arrol szolni, hogy valojaban miert istentelen nagy szivas ez az egesz veletlenszam-temakor: a fenti peldaban, ha Y nem ketto valamelyik egesz szamu hatvanya (1, 2, 4, 8, 16 stb), akkor a veletlen szamaid eloszlasat megnezve fel fog tunni, hogy nem azonos esellyel kapod a szamokat, hanem lesz egy hatar es az alattiak valamivel nagyobb valoszinuseggel fordulnak elo. A miert megmagyarazasat az olvasora bizom
A masik problema meg a kiszamithatosag: a Firefoxban (illetve akkor meg Mozillanak hivtak) volt egy olyan biztonsagi hiba, hogy a fenti modon inicializalta a randomgeneratort amikor titkositashoz generalt veletlenszamokat. Csakhogy - a fentiek miatt - a tamadonak eleg volt azt kitalalnia, hogy milyen idot mutatott a gep oraja, amikor legeneralta a titkositashoz szukseges szamokat, marpedig ha egy titkositott kapcsolatot 12:54-kor kezd a bongeszo, akkor jo esellyel a gep oraja is 12:54-et fog mutatni, vagy akornyeken valamit - es mivel a time() felbontasa csak masodperces, ezert nem is kellett olyan tul sok szamot vegigprobalni ahhoz, hogy fel lehessen torni a titkositast.
Szoval a veletlenszamgeneralas nehez problema, ahol komolyan erre van szukseg, ott valami plusz hardverrel generaljak, ami valami kellokeppen veletlenszeru fizikai folyamaton alapszik.
szerk: Latom, en irtam a legtobb ideig, de legalabb latszatja is van
-
kispx
addikt
válasz
Dave-11 #1830 üzenetére
srand(); inicializálja a randomszámgenerátort. Mindig a legelső szám generálása előtt kell ezt megtenni.
"srand(12);" Konstanssal nem illik inicializálni, mert minden egyes futás során ugyanazokat a számokat fogja előállítani. Helyette olyan módszert kell választani, ami futásról futásra változik, pl idő:
srand ( time(NULL) );rand(), egy véletlen számot fog visszaadni 0 és RAND_MAX között.
Ha kisebb értéktartományon szeretnénk véletlen számot generálni akkor, akkor egy X számmal kell a maradékát képezni, pl
rand() % X ez [0; X-1] tartományban képez egy véletlen számot
Szerk.: látom túl sokáig írtam a hszt
-
Karma
félisten
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Battlefield 6
- BestBuy topik
- Autós topik
- Tőzsde és gazdaság
- Nem indul és mi a baja a gépemnek topik
- Autós topik látogatók beszélgetős, offolós topikja
- Brogyi: CTEK akkumulátor töltő és másolatai
- Pc hiba segítség kérés.
- 3D nyomtatás
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- IPHONE 16 PRO MAX 256 GB Fehér titán Kártyafüggetlen
- 200 ezerrel ár alatt! A széria királya! A legmaxosabb 5080! Asus rog astral !
- ESZMÉLETLEN JÓ ÁRON MINDEN VAN! Amit csak szeretnél írd meg, szinte biztos hogy van! GARIS ÚJ cuccok
- AMILYEN GAMER PC-t AKARSZ AZT ÉN ÁR ALATT ÖSSZERAKOM NEKED! TELEVAGYOK KOMPONENSEKKEL! ÍRJ BÁTRAN!
- AMILYEN GAMER PC-t AKARSZ AZT ÉN ÁR ALATT ÖSSZERAKOM NEKED! TELEVAGYOK KOMPONENSEKKEL! ÍRJ BÁTRAN!
- 120 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 (ELKELT)
- HIBÁTLAN iPhone 14 256GB Blue 1ÉV GARANCIA -Kártyafüggetlen, MS3682, 100% Akkumulátor
- Készpénzes / Utalásos Videokártya és Hardver felvásárlás! Személyesen vagy Postával!
- LG 35WN75C-B - 35" Ívelt VA - 3440x1440 - 100Hz 5ms - USB Type-C 60W - AMD FreeSync - HDR 10
- Eredeti DELL 240W töltők (LA240PM160)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest