Hirdetés
- IFA 2025: Ott üti az S25 Edge-et a Tecno Slim, ahol fáj neki
- IFA 2025: 300 wattos mobilakkut villantott a Sharge
- IFA 2025: Csúcskategóriás funkciókat kínál az EarFun új fül- és fejhallgatója
- Műholdas kapcsolatra is képes a Huawei MatePad Mini
- IFA 2025: NXTPaper kijelzős Ultra telefon és gyerekóra a TCL-nél
- iPhone topik
- Samsung Galaxy A52s 5G - jó S-tehetség
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- IFA 2025: Ott üti az S25 Edge-et a Tecno Slim, ahol fáj neki
- Motorola Edge 40 - jó bőr
- Samsung Galaxy S23 Ultra - non plus ultra
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Okosóra és okoskiegészítő topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
Új hozzászólás Aktív témák
-
Chipi333
csendes tag
válasz
shinodas #3206 üzenetére
Az srand( time(NULL) ) beállítja a random fv kezdeti értékét az aktuális időre. A rand() pedig generál egy véletlenszámot (ami nem annyira véletlen). A %9 azért kell hogy 0-8 intervallumra és ne az int telje értékkészletére generáljon.
Az srand( time(NULL) ) azért kell mert a rand fv egyébként teljesen determinisztikus, szóval azonos kezdeti értékről indítva mindig ugyanazt a sorozatot generálná. Ezért általában az idő alapján szokás indítani, mert az jó eséllyel minden futtatáskor más lesz.Szerk.: De sokakat megmozgatott ez a téma
-
Karma
félisten
válasz
shinodas #3206 üzenetére
Az egész mögött egy pszeudo-véletlenszám generátor van, ami egy kezdőérték (seed) alapján generál számokat. (Nem valódi véletlenszámok, de ez most mindegy.)
A srand függvény szolgál ennek a seed értéknek a beállítására. A time(NULL) függvény az aktuális rendszeridőt adja vissza egy egész szám formájában (1970. január 1. óta eltelt másodpercek száma); ha ezt adod meg seednek, gyakorlatilag minden másodpercben más véletlenszámokat kapsz.
Azonos seed mellett meg ugyanazok a számsorozat jönne ki a rand() hívogatása során.
A rand() egyébként ez a seed meg a belső algoritmusa alapján egy 0 és RAND_MAX (legalább 32767, maximum MAX_INT, környezetfüggő) közötti egész számot ad vissza. Ha ennek veszed a kilences maradékát, 0 és 8 közötti számokat kapsz.
Szerk.: Eh, lassú voltam.
-
Jester01
veterán
válasz
shinodas #3206 üzenetére
A srand inicializálja a véletlenszám generátort valami kiinduló érték alapján. Azonos kiindulási értékből mindig azonos sorozat lesz (debuggoláshoz jó például). Hogy mindig más legyen, az aktuális idő van megadva.
A rand() az visszaad egy egész számot a [0, RAND_MAX] intervallumból. A % az nyilván a maradékképzés, tehát végül is a [0, 8] intervallumban fogsz számokat kapni.
-
shinodas
tag
srand(time(NULL));
x=rand()%9;Egy programban használok egy ilyen random szám generálást, de ezt csak úgy neten találtam. Elmondanátok, hogyan működik ez pontosan?
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Megreformálja az otthoni AI-t a Framework Desktop
- Milyen videókártyát?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Autós topik
- Kerékpárosok, bringások ide!
- Allegro vélemények - tapasztalatok
- Xbox tulajok OFF topicja
- iPhone topik
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Linux Mint
- További aktív témák...
- Mobiltelefon, konzol és TV felvásárlás gyorsan, biztonságosan!
- BESZÁMÍTÁS! Asus ROG STRIX G17 G713IM 17 notebook - R7 4800H 16GB DDR4 512GB SSD RTX 3060 6GB WIN10
- Eladó szép állapotban levő Asus VivoBook 17 S712F / 12 hó jótállással
- GYÖNYÖRŰ iPhone 11 Pro Max 64GB Midnight Green -1 ÉV GARANCIA -Kártyafüggetlen, MS3253,100% Akkumulá
- Bomba ár! HP EliteBook Folio 1040 G1 - i5-G4 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest