Random generates same number in java
Posted
by
user1613360
on Stack Overflow
See other posts from Stack Overflow
or by user1613360
Published on 2014-06-08T09:15:58Z
Indexed on
2014/06/08
9:24 UTC
Read the original article
Hit count: 213
This is my java code.
import java.io.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
class search
{
private int numelem;
private int[] input=new int[100];
public void setNumofelem()
{
System.out.println("Enter the total numebr of elements");
Scanner yz=new Scanner(System.in);
numelem=yz.nextInt();
}
public void randomnumber() throws Exception
{
int max=500,min=1,n=numelem;
Random rand = new Random();
for (int j=0;j < n;j++)
{
input[j]=rand.nextInt(max)+1;
}
}
public void printinput()
{
int b=numelem,t=0;
while(true)
if(b!=0)
{
System.out.print(" "+input[t]);
b--;
t++;
}
else
break;
}
}
public class mycode
{
public static void main(String args[]) throws Exception
{
search a=new search();
a.setNumofelem();
a.randomnumber();
a.printinput();
}
}
Now the function randomnumber() just returns the same number.The function executes perfectly if I execute it as a separate java program but fails miserably if I call it using an object.I have also tried the following variations but nothing works everything return the same number.
Variation 1:
public void randomnumber() throws Exception
{
int max=500,min=1,n=numelem;
Random rand = new Random();
for (int j=0;j < n;j++)
{
TimeUnit.SECONDS.sleep(1);
input[j]=rand.nextInt(max)+1;
}
}
Variation 2:
public void randomnumber() throws Exception
{
int max=500,min=1,n=numelem;
Random rand = new Random();
for (int j=0;j < n;j++)
{
rand.setSeed(System.nanoTime());
input[j]=rand.nextInt(max)+1;
}
}
Variation 3:
public void randomnumber() throws Exception
{
int max=500,min=1,n=numelem;
Random rand = new Random();
for (int j=0;j < n;j++)
{
TimeUnit.SECONDS.sleep(1);
rand.setSeed(System.nanoTime());
input[j]=rand.nextInt(max)+1;
}
}
Sample input/Output:
Enter the number of elements:
5
23 23 23 23 23 23
© Stack Overflow or respective owner