Hi

I have searched this site for help with this and used an example of a lottery numbers program.

However, I need to modify it slightly but can't seem to get it right.

I would like to be able to generate random numbers between 0 and 100 (maybe negative oness as well). The code below just generates 7 numbers between 0 and 6 and I can't see where I need to adjust the code. If anyone could help me with this, I would be really grateful, even just an explaination so I can work it out myself would be great as I just can't see where it is saying only use those low 0 - 6 digits! :rolleyes:

``````// random number generator

import java.lang.Math;
// setting up array with random numbers 26 july 2005

public class myRandomNodes {
public static void main(String[] args)
{
new ranNumbers (7);
}
}

class myRanNumbers {
private int[] numbers;

public myRanNumbers (int n )
{
numbers = new int[n];

// initialise numbers
int i = 0;

while (i < n ) {
//int r = (int) (Math.random() * n);
//       create a random integer between 1 and 100 inclusive
int r = (int) Math.floor(Math.random() * 100);

if (add (numbers, i, r)) {
++i;
}
}

show_all (numbers);
}

private boolean add (int [] list, int size, int val)
{
for (int i = 0; i < size; i++ ){
if (list[i] == val) {
return false;
}
}
list[size] = val;

return true;
}

private void show_all (int[] list)
{
for (int i = 0; i < list.length; i++ ) {
//System.out.print(list[i] + " ");
System.out.println("rounded number between 0 and 100 is ");

}
System.out.println();
}
}
``````

1) use code tags
2) follow the Sun coding standards, which you can get from Sun.

Doing both will make your code a lot easier to read and debug, as it stands I'm not even going to try.

Use the Random Class. It's more random than Math.random();

``````import java.util.*;

public class RandomClassTest
{
public static void main(String[] args)
{
Random randNumGenerator = new Random();

int[] x = new int;
for (int i=0; i<x.length; i++)
{
x[i] = (randNumGenerator.nextInt(100)+1);
}
}
}``````

## All 5 Replies

1) use code tags
2) follow the Sun coding standards, which you can get from Sun.

Doing both will make your code a lot easier to read and debug, as it stands I'm not even going to try.

``````// random number generator

import java.lang.Math;

public class myRandomNodes
{
public static void main(String[] args)
{
new ranNumbers (7);
}
}

class myRanNumbers
{
private int[] numbers;

public myRanNumbers (int n )
{
numbers = new int[n];

// initialise numbers
int i = 0;

while (i < n )
{
int r = (int) Math.floor(Math.random() * 100);
{
++i;
}
}

show_all (numbers);
}

private boolean add (int [] list, int size, int val)
{
for (int i = 0; i < size; i++ )
{
if (list[i] == val)
{
return false;
}
}
list[size] = val;

return true;
}

private void show_all (int[] list)
{
for (int i = 0; i < list.length; i++ )
{
System.out.print(list[i] + " ");
}
System.out.println();
}
}``````

Hope it makes it a bit easier to read - sorry about the unformatting before :-|

Use the Random Class. It's more random than Math.random();

``````import java.util.*;

public class RandomClassTest
{
public static void main(String[] args)
{
Random randNumGenerator = new Random();

int[] x = new int;
for (int i=0; i<x.length; i++)
{
x[i] = (randNumGenerator.nextInt(100)+1);
}
}
}``````

Be sure to add 1 if you want to reach 100.

Hi everyone,

Use the Random Class. It's more random than Math.random();

``````import java.util.*;

public class RandomClassTest
{
public static void main(String[] args)
{
Random randNumGenerator = new Random();

int[] x = new int;
for (int i=0; i<x.length; i++)
{
x[i] = (randNumGenerator.nextInt(100)+1);
}
}
}``````

Be sure to add 1 if you want to reach 100.

Could not have said it better myself

Richard West

Hi

Thanks very much for the response - appreciate it. :mrgreen:

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.