per generare numeri casuali in C di solito si usa la funzione rand().
Prima di tutto devi includere la libreria di utilità standard
#include <stdlib.h>
Da questo momento in poi puoi utilizzare la bellissima funzione
rand()
che genera numeri casuali interi da 0 a RAND_MAX (che è molto alto).
Ora, poniamo chetu voglia simulare un dado, per cui ti servono numeri da uno a sei, ebbene la procedura standard è questa:
roll= rand()%6+1;
con questa istruzione generi numeri casuali da 1 a 6 abbastanza equiprobabili, se invece usi valori molto alti a destra del modulo, questa considerazione non è più valida.
Un'altro problema non indifferente è che i numeri casuali sono sempre gli stessi ad ogni esecuzione del programma, perché l'algoritmo con cui vengono generati è deterministico.
Pertanto occorre introdurre ogni volta un "seme" diverso, il quale sarà l'unico vero elemento casuale nel programma.
La funzione che permette di "inseminare" rand() è
srand(int)
La scelta dell'intero può essere fatta in molti modi, ma molto spesso si usa
#include <time.h>
srand(time(NULL));
Il secondo del giorno in cui il programma viene lanciato dovrebbe essere abbastanza casuale.
ricapitolando, ecco un programma che lancia un dado ad ogni pressione del tasto invio
codice:#include <stdio.h> #include <time.h> #include <stdlib.h> int main (){ int count=0; srand(time(NULL)); while (count <1000){ printf ("%d",rand()%6+1); getchar(); } exit(1); }

Rispondi quotando