- Magisk
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Okosóra és okoskiegészítő topik
- Apple iPhone Air - almacsutka
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Google Pixel topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Vége a dalnak: nincs több Samsung harmonikamobil
- Samsung Galaxy S23 Ultra - non plus ultra
- Honor Magic6 Pro - kör közepén számok
Ú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.
Ú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!
- Revolut
- Chieftec-Prohardver nyereményjáték
- RETRO beárazás (mobil, PC, konzol)
- Magisk
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- EAFC 26
- Kész rémálom lesz Linuxot használni jövőre az USA egyes államaiban
- Diablo IV
- Allegro vélemények - tapasztalatok
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- További aktív témák...
- Nintendo Switch Lite kiegészítőkkel eladó
- Megbízható FullHD Gamer PC
- iPhone 16 Pro Max 156GB Fekete Titán - 27% ÁFA (0397)
- Gamer PC Intel Core I5 9400F/16GB DDR4/Nvidia 1050 4 GB/256 GB NVME/ 500 GB HDD 6 hó garancia
- Dell G15 5515 15.6" FHD IPS Ryzen 5 5600H RTX 3050 16GB 512GB NVMe magyar vbill gar
- Részletfizetés. BankMentes. Kamatmentes. Új noblechairs EPIC műbőr FEKETE - FEKETE. 3 év garancia!
- 5G Lenovo ThinkPad P14s Gen 3 Intel Core i7-1280P Nvidia T550 32GB 1000GB 1 év teljeskörű garancia
- Dell Latitude 7400 2 in 1 360 touch, i7 8665U, 16GB, 512GB, jó akku, számla, 6 hó gar
- Apple Watch Series 10 46mm Jet Black használt karcmentes 100% akku garancia 2026.10.26.-ig
- LENOVO TABLET 10 (N4100),10.1",WUXGA, 2-IN-1 TABLET,Ceruza,LTE kártya,8GB DDR4,128GB SSD,WIN11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



