WebHU - Programozási kérdések és válaszok

Hogyan kell helyesen vetni a srand()-t [másolat]

Nekem ezek a kódrészletek vannak:

char letrarand()
{
    time_t t;
    srand(time(NULL));                                                  
    char randomletter = 'A' + (rand() % 26);
    return randomletter;
}

char criameses()
{
    int contador = 0;
    for (contador = 0; contador < 31;++ contador) 
        {
            *(pjaneiro + contador) = letrarand();
        }

Ahol a pjaneiro egy 31 elemű tömbre mutató mutató. Elméletileg ez működik, és a tömb minden eleméhez egy véletlenszerű betűt rendelne, de mint kiderült, mindig ugyanazt a betűt rendeli hozzá.

A legjobb tippem arra vonatkozóan, hogy ez miért történik, az az, hogy a time() függvények csak másodpercig pontosak, így a véletlenszám-generátor magja mindig ugyanaz, mivel a számítógépem kevesebb mint egy másodperc alatt végrehajtja a kódot. Van valami mód arra, hogy jobban bevegyem a véletlenszám-generátort?

02.01.2017

  • Csak egyszer vetni. Nem minden alkalommal, amikor véletlen számra van szüksége. 02.01.2017
  • srand() – miért hívja csak egyszer? 02.01.2017
  • az, hogy a time() függvény csak másodpercig pontos, így a véletlenszám generátor magja mindig ugyanaz --› nem egészen. Általában az time() a másodpercek egész számát adja vissza, de vannak olyanok is, amelyek a double értéket a másodperc töredékére adják vissza. A srand(unsigned int seed); a nagyobb pontosságú időeredményt csökkentett pontosságra (másodpercre) alakítja át, ha átadja a unsigned seed-nek. IAC, nem ez az elsődleges probléma, az srand() egyszeri hívása (mint a main() esetében) megoldja a kezdeti aggodalmait. 02.01.2017

Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..