Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to do a random-and-unique generator?

I already wrote a random generator which take arguments a and b, where a is minimun and b is maximum value, like this randomGenerator(int a, int b)

What I want to do next is: Using a loop, then generate unique number from a to b. Example:

I want to have 8 unique numbers,
int a = 1;
int b = 10;
int value;

If I do the loop, there is a high % that same number will appear more than once. Any idea how to do it?

My own way is:

while(int i <= 8){
  randomGenerator(a,b);
  // if value is not in array, then insert into array
}

I am stuck at the comment part. Is there any way to check if a variable is exists in an array?

Edit, based on nailxx's answer, what I understand is:

  • take the list from a to b (if follow my example, 1 - 10)

  • "shuffle" it

  • take the first 8 items. Is that what you mean?

In java world, is there a "shuffle" function or I need to create my own?

like image 709
javaLearner.java Avatar asked Jan 22 '23 02:01

javaLearner.java


1 Answers

Take a list with elements sequentially distributed from a to b, shuffle it and return element with subsequent index on each request.

like image 172
nkrkv Avatar answered Jan 30 '23 02:01

nkrkv