What is the Solution for Creating a Uniform Random Number Generator in C?

AI Thread Summary
The discussion revolves around generating a sequence of random numbers in the range of [0,9] and assessing their uniformity. The original code provided attempts to count occurrences of each number but fails to function correctly. Key issues identified include the improper resetting of the count variable and a lack of clarity in the program's logic. Suggestions include writing detailed instructions for the intended process and exploring established random number generator algorithms. Resources such as Sedgewick's text and an article on random number generation are recommended for further understanding. The conversation emphasizes the importance of clear coding practices and proper algorithm selection to achieve uniform randomness.
newton1
Messages
151
Reaction score
0
i generate a sequence of random number in [0,9], and i need to know whether the random number is uniform or not, so i should check how many
time of 1 or 2 or 3...had been generated by the generator?
but my program is not work!?

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
FILE*fptr;
char fname[]="SRN.txt";
int i,j,y,a[100];
fptr=fopen(fname,"w");
srand (time(NULL));
for(j=0;j<10;j++)
{
for(y=0,i=0;i<10;i++)
{
a=rand()%10;
if(j==a)y++;
printf("%d",a);
fprintf(fptr,"%d\n",y);
y=0;
}
}
fclose(fptr);
}

and how can i create a uniform ramdom number generator
 
Technology news on Phys.org
I don't think your problem is with C; I'm not entirely sure you know exactly what you're trying to do!

Try writing out in words what you are trying to do. Your goal is to write directions that are detailed enough that someone who has absolutely no idea what you're trying to do can follow the instructions.
 
if y is your random numbe ryou reset it everytime...that will probably be your problem. Actually its problably the problem anyways. There are several books out there for random generators, pick up sedgewick's text. I'm sure you can find a standard random generator formula...www.mathworld.com
 
generate a sequence of random number in [0,9], and i need to know whether the random number is uniform or not, so i should check how many
time of 1 or 2 or 3...had been generated by the generator?
but my program is not work!?

int j;
int k;
int array[10]={0};
printf(" enter size");
scanf("%d", size);
for( i=0; i< size; i++);
{
j=rand( )% 10; /*there is got to be something more*/
array[j]++;
}
 
Thank you very much...
i know my ramdon generator is bad~~
i will find on some place...:smile:
 
This article uses a tiny amount of math but is very clearly written:

http://www.eternallyconfuzzled.com/articles/rand.html
 
Last edited by a moderator:
Thread 'Is this public key encryption?'
I've tried to intuit public key encryption but never quite managed. But this seems to wrap it up in a bow. This seems to be a very elegant way of transmitting a message publicly that only the sender and receiver can decipher. Is this how PKE works? No, it cant be. In the above case, the requester knows the target's "secret" key - because they have his ID, and therefore knows his birthdate.
Back
Top