X-Git-Url: https://hackdaworld.org/gitweb/?p=physik%2Fnlsop.git;a=blobdiff_plain;f=random.c;h=30a7fab1fe9efd98b9d43c5a35d364d9c48b8a14;hp=6690531bc9ec919390e7bc72c603d81a1fb3e0fc;hb=1b52e1f79e06531f0a98dc7e7c9fb514c10456bd;hpb=264bf3c7bedec970fe59fcd076b65fc47a8b621b diff --git a/random.c b/random.c index 6690531..30a7fab 100644 --- a/random.c +++ b/random.c @@ -73,3 +73,18 @@ u32 get_rand_lgp(u32 max,double a,double b) return((u32)(1.0*max*(-1.0*b+sqrt(b*b+2*a*((b+a/2)*get_rand(URAND_MAX)/((long long unsigned int)URAND_MAX+1))))/a)); } +u32 get_rand_reject(u32 max_x,u32 max_y,u32 *graph) +{ + u32 x,y; + unsigned char ok; + + ok=0; + while(!ok) + { + x=get_rand(max_x); + y=get_rand(max_y); + if(y<=graph[x]) ok=1; + } + + return x; +}