L'esercizio consiste nel scrivere una funzione che generi numeri interi casuali con minimo e massimo (compresi) fissati da due parametri
Ecco come ho risolto io in C:
Purtroppo però questo algoritmo ritorna quasi sempre gli stessi numeri con periodicitàregolare quindi dopo un po' non sembra per niente un' estrazione casuale. Come posso fare per migliorarlo?
Ecco come ho risolto io in C:
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int Random(int min, int max);
int Random(int min, int max)
{
int valore, diff;
diff = max-min;
if (diff != 0)
return (abs(min + (rand()*time(NULL))%(diff+1))%6)+1;
else
return min;
}
int main()
{
int min;
int max;
int casuale;
printf("Inserisci due numeri interi separati dallo spazio\n");
scanf("%d",&min);
scanf("%d",&max);
casuale = Random(min, max);
printf("Il numero generato è\': %d\n",casuale);
system("pause");
return 0;
}
Purtroppo però questo algoritmo ritorna quasi sempre gli stessi numeri con periodicitàregolare quindi dopo un po' non sembra per niente un' estrazione casuale. Come posso fare per migliorarlo?