rand() – un generatore di numeri casuali in C ++

rand() – un generatore di numeri casuali in C ++
4.33 (86.67%) 6 voti




генератор случайных чисел

Non è sempre necessario riempire il numerico dimensionale e Due-dimensionale array numeri di serie o valori specifici. forse, Avrete bisogno di riempire gli elementi della matrice con numeri casuali. In C ++, ci sono fynktsii speciale rand() e srand(). Sono in file di bibliotechnom cstdlib, in modo che il loro uso nel programma, è necessario collegare questo file di libreria: #includere <cstdlib> o #includere <stdlib.h> (per i compilatori più anziani). Se usiamo solo la funzione rand() – Riceveremo la stessa “numeri casuali” da zapyska per lanciare. Inserire il codice seguente e compilare il programma più volte. Si prega di notare, che “numeri casuali” ci sarà sempre la stessa.

Il numero casuale viene generato sulla linea 11 e registrato in io-esimo elemento dell'array randomDigits. Nella riga successiva, gli chiedo di dimostrare. Avvio del programma vedrà ogni volta TE Solo durante la notte e lo stesso chisla:

генератор случайных чисел C++, rand c++, srand c++Si scopre, che i numeri sono generati non è del tutto casuale. per ottenere “presente” numero casuale al riavvioX programmi, è necessario applicare la funzione srand() operato rand(). Quindi è necessario passare come una funzione parametrica tempo() con un parametro NULLO: srand(tempo(NULLO)); (parametro o la funzione argomento – è, che è scritto nelle parentesi dopo il nome della funzione. Quando consideriamo l'argomento Le funzioni in C ++, parlare di questo più in dettaglio). così srand() Riceve come parametro di sistema corrente, che sarà diverso per ciascun programma zapuske. Questo funzionerà rand() ogni volta è per generare numeri casuali. per uso tempo() è necessario collegare il file di libreria ctime (time.h per i compilatori più anziani): #includere <ctime> .

provare a correre. fate, ora generato numero diverso a ogni compilazione. Ottengo questo risultato:

rand c++, srand c++, генератор случайных чисел
In primo luogo la compilazione
rand c++, srand c++, генератор случайных чисел
seconda compilation

Tutto sembra bello. Solo c'è un punto: serie di numeri casuali, così generato – da 0 fino 32767. Potrebbe essere necessario compilare una serie di numeri 200 fino 300, da 0.1 fino 1, da -20 fino 20. Questa generazione di numeri casuali è possibile e facile da implementare. Nell'esempio, consideriamo alcuni casi:

Nella prima per il ciclo Essa porta alla generazione di numeri casuali e determinate gamme del loro ingresso negli array corrispondenti. In ogni iterazione del ciclo viene generato da un numero casuale Novye. Forse qualcuno è difficile capire come questo accade. Consideriamo in dettaglio:

rand() % 7rand() Esso genera una serie di ulteriori valutato modulo na 7 tale numero. comprensibilmente, può essere solo Da 0 a 6. Ad esempio generato 50 – il resto della divisione nA 7 è uguale a 1, generato 49 – il resto della divisione nA 7 è uguale a 0.

1 + rand() % 7 – molto simile al caso precedente, solo 0 non vedremo, e qui 7 sarà nell'intervallo. Ad esempio generato 49 – il resto della divisione nA 7 è 0 e l'unità viene aggiunto ad essa, generato 6 – il resto della divisione nA 7 è 6 e ancora unità aggiunto.

200 + rand() % 101 – Ci darà il numero di 200 a 300. Ad esempio generato 100 – il resto della divisione nA 101 è 100 e ha aggiunto 200. Otteniamo il numero di 300. generato 202: 200 + (202 % 101)= 200 + 0 = 200.

rand() % 41 - 20 – dalla – 20 fino 20. Ad esempio generato 1: (1 % 40) – 20 = 1 – 20 = -19; generato 30: 30 – 20 = 10.

0.01 * (rand() % 101) – dalla 0.01 fino 1. Ad esempio generato 55: 0.01* 55 = 0.55.

risultato:

un'altra C ++, srand C ++, un generatore di numeri casuali C ++

per praticare, cercare di risolvere il problema: computer “pensa di” anche dal 1 fino 7, un utente deve indovinare. Se non si riesce – Vedere le nostre soluzioni di variante:

Kompiliruem:
rand c++, srand c++, генератор случайных чисел C++

problemi con rand() articolo ha compiti: Array in C ++. Prendete un po 'di tempo e guarda il video (autore: Markov Denis). с Casuale 20′

Per sostenere il nostro sito – cliccare sul salvadanaio e scegliere qualsiasi modo conveniente.

Newsletter nuove lezioni sulla programmazione:

42 pensieri su "rand() – un generatore di numeri casuali in C ++

    1. e). cappio, B). poelementno, dal pezzo, in). una dopo l'altra…

  1. Ragazzi la mia domanda è come implementare questo programma con una serie di lunghezza indeterminata? Circa indovinare la password, a venire con un computer.

  2. int main()
    {

    per(;;) {

    int number_user(0);

    cout <> number_user;
    cout << endl;

    per(int a = 0; un < 7; a ++) {

    int più [7] {};

    srand(tempo(NULLO));
    ma [un] = 1 + rand() % 7;

    Se(ma[un] == number_user) {

    cout << "Great!!!" << endl;
    cout < ” << number_user << " = " << ma[un] << " <- il numero di computer!!!" << endl;
    rompere;
    } altro {

    cout << "Sorry, il numero di computer = " << ma[un] << endl;
    cout << "Try again!" << endl;
    rompere;
    }
    }
    }
    ritorno 0;
    }

    Ha fatto l'ultimo compito in modo tale, Grazie a dei materiali e buon sito degli autori! Essa aiuta a padroneggiare C ++)

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>