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

Click For 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:
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
22
Views
5K
  • · Replies 10 ·
Replies
10
Views
3K
Replies
11
Views
2K
Replies
19
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
9K