Linguaggio C: Generazione di numeri casuali

//--- generaNumeriCasuali.c ---
/*
Le funzioni utilizzate per la generazione di numeri casuali sono  srand(...) e rand(). 
La funzione srand(...) cambia il numero di base (seed/seme) per la generazione  dei numeri pseudo-casuali di rand(), altrimenti rand() genererebbe sempre gli stessi numeri,ad ogni esecuzione del programma.
Per poter fornire a srand un seme sempre diverso viene utilizzata la funzione time(NULL), presente nell’ header file time.h della libreria standard del C, che restituisce il numero di secondi trascorsi tra l'istante attuale e il I Gennaio 1970. 
La funzione rand() genera dei numeri compresi tra 0 e RAND_MAX (32767). Per limitare i numeri generati all'intervallo 1 - 100, viene utilizzata la seguente procedura: 
- il numero generato da rand() viene diviso per il valore della costante MAXRAND (#define MAXRAND 100) e si prende il resto; 
- al resto si somma il valore 1. 	  	

*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <process.h>
#include <ctype.h>
#include <float.h>
#include <math.h>

#define MAX 10
#define MAXRAND 100

int main(int argc, char *argv[])
{
  int n;
  printf("\n\n  Generazione di numeri casuali, compresi tra 1 e 100, senza cambiamento di seme    \n ");
  printf("  (senza l'utilizzo della funzione srand(arg) )   \n\n\t ");
 
 	 for (int i=0; i<MAX;i++)
   	{
  	 n = rand() % MAXRAND +1;   	  	
  	 printf("%d\t", n);
  	}
   //	
  printf("\n\n\n\n  Generazione di numeri casuali, compresi tra 1 e 100, con cambiamento di seme    \n ");
 printf("  (con l'utilizzo della funzione srand(arg))    \n\n");
 
 time_t seconds;
 srand(time(NULL)); 
 seconds = time(NULL);
 printf("\n N. ore / N. secondi a partire da January 1, 1970 = %ld / %ld    \n\n\t",    seconds/3600, seconds);	
 
 for (int i=0; i<MAX;i++)
 	 {
  		 n = rand() % MAXRAND +1;   	
  	 	printf("%d\t", n);
  	}
 printf("\n\n");
 system("PAUSE");
 printf("\n\n  FINE - premere un tasto per continuare \n ");
 getch();
}

Lascia un commento