Come utilizzare la funzione Srand in C ++

Come utilizzare la funzione Srand in C ++

In questo articolo, discuteremo di come possiamo usare la funzione Srand () in C ++ durante la scrittura di programmi in Ubuntu 20.04. La funzione srand () è il seme che la funzione rand () utilizza per generare numeri casuali. Entrambe queste funzioni sono definite nell'intestazione di stdlib. Mentre utilizziamo la funzione srand () per impostare il seme nella funzione rand (), è collegato alla funzione rand (). La funzione Srand () prende il valore del seme in un tipo intero non firmato. Il valore del seme è il luogo di partenza per la generazione di numeri casuali della funzione Rand (), ad esempio Srand (5). Nessun valore viene restituito dalla funzione Srand (). Il valore di seme predefinito della funzione Srand è impostato come "1". Quindi, se non chiamiamo la funzione Srand () prima della funzione Rand (), sarà lo stesso che scrivere "Srand (1)".

Comprensione della relazione tra rand () e srand ():

Quando utilizziamo la funzione Rand () nel nostro codice, otteniamo sempre lo stesso numero casuale ogni volta che la compiliamo. Vediamo un esempio in cui capiremo meglio come funziona la funzione RAND senza Srand ().

Usando la funzione Rand () senza la funzione Srand () in Ubuntu 20.04:

Apri il terminale e crea un .file cpp scrivendo ed eseguendo il comando "tocco" con il nome file e l'estensione di .CPP. Quindi, individua e apri il tuo .File CPP. Ora scrivi un codice semplice per generare numeri casuali senza usare la funzione srand ().

Il file deve essere salvato e quindi chiuso. Apri nuovamente il terminale e compila il file con questo comando "G ++" insieme al nome e all'estensione del file. Ciò genererà un output per il tuo file dopo la compilazione, di solito con l'estensione di ".fuori."Ora esegui il file di output scrivendo questo comando"./"Insieme al file di output

Come puoi vedere nell'esempio sopra, la prima e la seconda uscita sono uguali perché non abbiamo usato la funzione srand (). Quindi, anche se ripetiamo il processo più volte, l'output sarà lo stesso perché il valore del seme è per impostazione predefinita impostata su 1.

Vedremo come la funzione Rand () funzionerà con la funzione Srand ().

Funzione rand () con l'uso della funzione srand () in ubuntu 20.04:

Apri il terminale e crea un .file cpp scrivendo ed eseguendo il comando "tocco" con il nome file e l'estensione di .CPP. Quindi, individua e apri il tuo .File CPP. Ora scriveremo un codice per generare numeri casuali e utilizzare la funzione srand () con valori di seme diversi.

Il file deve essere salvato e quindi chiuso. Apri nuovamente il terminale e compila il file con questo comando "G ++" insieme al nome e all'estensione del file. Ciò genererà un output per il tuo file dopo la compilazione, di solito con l'estensione di ".fuori."Ora esegui il file di output scrivendo questo comando"./"Insieme al file di output.

Ora, possiamo vedere che l'uso della funzione srand () con valori di seme diversi fornisce un numero casuale diverso. Quindi, se continuiamo a cambiare il valore del seme che è il parametro della funzione srand (), i numeri casuali saranno sempre diversi l'uno dall'altro. Il valore del seme è impostato come "1" nella prima linea di uscita, quindi il numero casuale generato da questo valore di seme è 1804289383 e quando cambiamo il valore del seme in 5, il numero casuale generato viene ora cambiato in 590011675, quindi questo Il cambiamento è avvenuto a causa della differenza nel valore del seme.

Dopo aver esaminato questo esempio, possiamo concludere che la funzione Rand () senza la funzione Srand () non esegue fino allo standard del programma PRNG (Pseudo Random Number Generator), che genera numeri casuali secondo l'accreditamento del valore del seme, nella lingua C ++. Questo programma include le funzioni Rand () e Srand () per generare numeri casuali nella programmazione C ++. Quindi, dovremmo sempre usare la funzione srand () mentre si utilizza la funzione rand () per generare numeri casuali distinti.

Il numero Srand () con valori di seme diversi continua a cambiare i numeri casuali generati, rendendo così la funzione Rand () più efficiente. Ma dobbiamo continuare a cambiare il valore del seme ogni volta in quanto il valore del seme deve essere dato prima di chiamare la funzione Rand (). Quindi il modo migliore per continuare a farlo è l'utilizzo della funzione Time (0), che dà il tempo esatto in secondi nel numero intero non firmato lo stesso del parametro della funzione Srand (). Quindi, l'output del tempo (0) continuerà sempre a cambiare, e quindi l'output della funzione Rand () continuerà a cambiare ogni secondo.

Usando la funzione Srand () con il tempo (0) come parametro:

Come abbiamo discusso in precedenza che il valore del seme della funzione è impostato come "1", quindi dobbiamo cambiare costantemente il valore del seme e prima che la funzione rand () venga chiamata. Questi punti sono fondamentali per l'efficienza della generazione di funzioni casuali, quindi dobbiamo pensare a tale modo che riduca il processo di pensiero del programmatore e anche la potenza di elaborazione del dispositivo. Questo problema è risolto dalla funzione Time () nel linguaggio C ++, che dà il tempo esatto nel momento in cui si sta eseguendo l'attività nel dispositivo, noto anche come timestamp. Quindi, se aggiungiamo la funzione Time (0) come parametro della funzione Srand (), che è il suo valore di seme, darà il tempo totale in secondi come intero alla funzione Srand () e continuerà a cambiare in ogni tempo che lo usiamo. La funzione Time () è definita nell'intestazione di Ctime, quindi dovremo aggiungerlo nel nostro codice. Ora lo implementeremo sul nostro codice e cercheremo di capire meglio come funziona la funzione Srand () con il tempo () come parametro.

Usando la funzione Srand () con la funzione Time come parametro in Ubuntu 20.04:

Apri il terminale e crea un .file cpp scrivendo ed eseguendo il comando "tocco" con il nome file e l'estensione di .CPP. Quindi, individua e apri il tuo .File CPP. Scriveremo ora un codice per la generazione di numeri casuali e useremo la funzione Time () per fornire diversi valori di seme per numeri distinti generati in modo casuale.

Il file deve essere salvato e quindi chiuso. Apri nuovamente il terminale e compila il file con questo comando "G ++" insieme al nome e all'estensione del file. Ciò genererà un output per il tuo file dopo la compilazione, di solito con l'estensione di ".fuori."Ora esegui il file di output scrivendo questo comando"./"Insieme al file di output

Come possiamo vedere che dopo aver eseguito i file più volte, il numero casuale sta cambiando ad ogni esecuzione, quindi abbiamo raggiunto l'efficienza con questo metodo e continueremo a ottenere valori diversi ogni volta che eseguiamo la funzione Srand () con il tempo ( 0) come parametro.

Conclusione:

In questo articolo, abbiamo imparato la relazione tra la funzione rand () e srand () e come la funzione srand () aiuta la funzione rand () a generare numeri casuali in modo efficiente mediante l'uso del tempo (). Abbiamo implementato tutti gli esempi di questi concetti in Ubuntu e abbiamo dato un'elaborazione dettagliata su come eseguirli su Ubuntu 20.04.