Forums Register Login

How a generate a Random number and trim it to one or two digits.

+Pie Number of slices to send: Send


The base class has a method called getRandomNumber() which will return some random integer
value. I need to use this method to generate a random integer value in such a way that I get values between 1 to 15. Also , I need to fill the array ‘array’ with random numbers from 1 to 15 without repeating any of the numbers. Currently , I have no idea how to do that. All I know a For loop is required here , also an IF block so I can make sure I am entering numbers from 1 to 15. Hints please.
2
+Pie Number of slices to send: Send

will give you a random number between 1 and 15.
You just need to keep repeating this until you have all the numbers between 1 and 15.
However, as the numbers are random that could theoretically never happen.

A better way is to add the numbers 1 to 15 to a List, use Collections.shuffle to shuffle the list and then generate an array from that list.
1
+Pie Number of slices to send: Send
 

Stuart A. Burkett wrote:
will give you a random number between 1 and 15.


@Bobby: And possibly an even better way is:unless, of course, you're obliged to use the methods provided.

Winston

[Edit] Corrected after Rob's spot-on post.
2
+Pie Number of slices to send: Send
 

Stuart A. Burkett wrote:
will give you a random number between 1 and 15.


getRandomNumber() % 14 will give you a number between 0 and 13 (inclusive), so (getRandomNumber() % 14) + 1 will give you a number between 1 and 14, not 15.
(1 cow) 2
+Pie Number of slices to send: Send
If the requirement is to have an array with all values between 1 and 15 but in any random order, why not just fill the array in sequence and then shuffle the array?
+Pie Number of slices to send: Send
 

Rob Spoor wrote:getRandomNumber() % 14 will give you a number between 0 and 13 (inclusive), so (getRandomNumber() % 14) + 1 will give you a number between 1 and 14, not 15.


I refer you to Fred's signature
+Pie Number of slices to send: Send
Rob is correct, as long as the left operand for the remainder operator is not negative.
+Pie Number of slices to send: Send
 

Stuart A. Burkett wrote:

Rob Spoor wrote:getRandomNumber() % 14 will give you a number between 0 and 13 (inclusive), so (getRandomNumber() % 14) + 1 will give you a number between 1 and 14, not 15.


I refer you to Fred's signature


I have been known to change my .sig on occasion. but currently, it says this:

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

 
+Pie Number of slices to send: Send
thank you all. You helped me a lot.
Can you shoot lasers out of your eyes? Don't look at this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 1007 times.
Similar Threads
Random Number Chooser programming exercise
Need definitions of nextInt(), abs() and some other questions
Powerball program for school, Need to to run program 8 times.
Tips for improving my code
Getting return value using Callable and Future
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 19, 2024 03:10:17.