per la tesi mi trovo a sviluppare un programmino in c/c++ (e per alcune cose vi ho già chiesto....) che in una sua parte presuppone la generazione di numeri casuali...sto usando la funzione rand(), ma googlando ho trovato questo codice:
Codice: Seleziona tutto
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define S1MAX 2147483562
#define S2MAX 2147483398
float Rand(void);
void Srand(void);
long s1,s2;
int main(void)
{
int i;
Srand();
for(i=0;i<256;i++)
printf("%7.2f\n",Rand());
}
void Srand(void)
{
time_t t;
s1=(unsigned)time(&t);
s2=s1*s1;
if(s1<1||s1>S1MAX)
s1=(abs(s1)%S1MAX)+1;
if(s2<1||s2>S2MAX)
s2=(abs(s2)%S2MAX)+1;
}
float Rand()
{
long Z,k;
k=s1/53668;
s1=40014*(s1-k*53668)-k*12211;
if(s1<0)
s1+=S1MAX+1;
k=s2/52774;
s2=40692*(s2-k*52774)-k*3791;
if(s2<0)
s2+=S2MAX+1;
Z=s1-s2;
if(Z<1)
Z+=S1MAX;
return(Z*4.656613E-10);
}
e poi...la parte:
Codice: Seleziona tutto
k=s1/53668;
s1=40014*(s1-k*53668)-k*12211;
grazie mille!!!!