Generating Randoms but a few minor errors
up vote
2
down vote
favorite
I did look at the threads pertaining to randoms and implemented them into this assignment but I have 2 questions.
1) I need my program to generate random numbers (and print them) and count the iterations. I have counting the iterations down but I don't know why the random numbers don't print out. Does it have something to do with my guess = 0? Here's an example if I'm not clear.
Example:
Enter a number: 13
85
89
73
94
13
This took 5 tries
2) I have no clue why my program always ends up stuck at one number for the answer. The program immediately ends after entering the number 86.
import java.util.*;
public class FeelingLucky {
public static void main (String args) {
Scanner sc = new Scanner (System.in);
int tries = 0;
int guess = 0;
Random random = new Random(1);
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
java
|
show 2 more comments
up vote
2
down vote
favorite
I did look at the threads pertaining to randoms and implemented them into this assignment but I have 2 questions.
1) I need my program to generate random numbers (and print them) and count the iterations. I have counting the iterations down but I don't know why the random numbers don't print out. Does it have something to do with my guess = 0? Here's an example if I'm not clear.
Example:
Enter a number: 13
85
89
73
94
13
This took 5 tries
2) I have no clue why my program always ends up stuck at one number for the answer. The program immediately ends after entering the number 86.
import java.util.*;
public class FeelingLucky {
public static void main (String args) {
Scanner sc = new Scanner (System.in);
int tries = 0;
int guess = 0;
Random random = new Random(1);
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
java
Since you seed your Random with (1), you always get the same sequence of numbers. You need to print out the numers to print them. ie System.out.println("the random number is: " + num);
– matt
Nov 21 at 14:15
your description is confusing, is the program guessing the number entered by user or is the user guessing the number generated by the program?
– Milo Bem
Nov 21 at 14:23
@matt It just ends up with the same result even if I print them.
– Marcos Z.
Nov 21 at 14:28
if the user is supposed to guess the number than your program works correctly. The reason it always "stops" at 86 is because 86 is the number generated. You guess the number - the program ends. Why it always generates this number is expained in the other comments and answers
– Milo Bem
Nov 21 at 14:28
@MiloBem Oh my bad. The user is supposed to be guessing the number generated by the program and it prints out a bunch of random numbers till it reaches the result.
– Marcos Z.
Nov 21 at 14:29
|
show 2 more comments
up vote
2
down vote
favorite
up vote
2
down vote
favorite
I did look at the threads pertaining to randoms and implemented them into this assignment but I have 2 questions.
1) I need my program to generate random numbers (and print them) and count the iterations. I have counting the iterations down but I don't know why the random numbers don't print out. Does it have something to do with my guess = 0? Here's an example if I'm not clear.
Example:
Enter a number: 13
85
89
73
94
13
This took 5 tries
2) I have no clue why my program always ends up stuck at one number for the answer. The program immediately ends after entering the number 86.
import java.util.*;
public class FeelingLucky {
public static void main (String args) {
Scanner sc = new Scanner (System.in);
int tries = 0;
int guess = 0;
Random random = new Random(1);
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
java
I did look at the threads pertaining to randoms and implemented them into this assignment but I have 2 questions.
1) I need my program to generate random numbers (and print them) and count the iterations. I have counting the iterations down but I don't know why the random numbers don't print out. Does it have something to do with my guess = 0? Here's an example if I'm not clear.
Example:
Enter a number: 13
85
89
73
94
13
This took 5 tries
2) I have no clue why my program always ends up stuck at one number for the answer. The program immediately ends after entering the number 86.
import java.util.*;
public class FeelingLucky {
public static void main (String args) {
Scanner sc = new Scanner (System.in);
int tries = 0;
int guess = 0;
Random random = new Random(1);
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
java
java
edited Nov 21 at 14:43
Milo Bem
753318
753318
asked Nov 21 at 14:11
Marcos Z.
112
112
Since you seed your Random with (1), you always get the same sequence of numbers. You need to print out the numers to print them. ie System.out.println("the random number is: " + num);
– matt
Nov 21 at 14:15
your description is confusing, is the program guessing the number entered by user or is the user guessing the number generated by the program?
– Milo Bem
Nov 21 at 14:23
@matt It just ends up with the same result even if I print them.
– Marcos Z.
Nov 21 at 14:28
if the user is supposed to guess the number than your program works correctly. The reason it always "stops" at 86 is because 86 is the number generated. You guess the number - the program ends. Why it always generates this number is expained in the other comments and answers
– Milo Bem
Nov 21 at 14:28
@MiloBem Oh my bad. The user is supposed to be guessing the number generated by the program and it prints out a bunch of random numbers till it reaches the result.
– Marcos Z.
Nov 21 at 14:29
|
show 2 more comments
Since you seed your Random with (1), you always get the same sequence of numbers. You need to print out the numers to print them. ie System.out.println("the random number is: " + num);
– matt
Nov 21 at 14:15
your description is confusing, is the program guessing the number entered by user or is the user guessing the number generated by the program?
– Milo Bem
Nov 21 at 14:23
@matt It just ends up with the same result even if I print them.
– Marcos Z.
Nov 21 at 14:28
if the user is supposed to guess the number than your program works correctly. The reason it always "stops" at 86 is because 86 is the number generated. You guess the number - the program ends. Why it always generates this number is expained in the other comments and answers
– Milo Bem
Nov 21 at 14:28
@MiloBem Oh my bad. The user is supposed to be guessing the number generated by the program and it prints out a bunch of random numbers till it reaches the result.
– Marcos Z.
Nov 21 at 14:29
Since you seed your Random with (1), you always get the same sequence of numbers. You need to print out the numers to print them. ie System.out.println("the random number is: " + num);
– matt
Nov 21 at 14:15
Since you seed your Random with (1), you always get the same sequence of numbers. You need to print out the numers to print them. ie System.out.println("the random number is: " + num);
– matt
Nov 21 at 14:15
your description is confusing, is the program guessing the number entered by user or is the user guessing the number generated by the program?
– Milo Bem
Nov 21 at 14:23
your description is confusing, is the program guessing the number entered by user or is the user guessing the number generated by the program?
– Milo Bem
Nov 21 at 14:23
@matt It just ends up with the same result even if I print them.
– Marcos Z.
Nov 21 at 14:28
@matt It just ends up with the same result even if I print them.
– Marcos Z.
Nov 21 at 14:28
if the user is supposed to guess the number than your program works correctly. The reason it always "stops" at 86 is because 86 is the number generated. You guess the number - the program ends. Why it always generates this number is expained in the other comments and answers
– Milo Bem
Nov 21 at 14:28
if the user is supposed to guess the number than your program works correctly. The reason it always "stops" at 86 is because 86 is the number generated. You guess the number - the program ends. Why it always generates this number is expained in the other comments and answers
– Milo Bem
Nov 21 at 14:28
@MiloBem Oh my bad. The user is supposed to be guessing the number generated by the program and it prints out a bunch of random numbers till it reaches the result.
– Marcos Z.
Nov 21 at 14:29
@MiloBem Oh my bad. The user is supposed to be guessing the number generated by the program and it prints out a bunch of random numbers till it reaches the result.
– Marcos Z.
Nov 21 at 14:29
|
show 2 more comments
3 Answers
3
active
oldest
votes
up vote
3
down vote
Random(1)
uses seed in constructor which is always the same. Use just Random()
- no parameter constructor.
import java.util.*;
public class FeelingLucky {
public static void main(String args) {
Scanner sc = new Scanner(System.in);
int tries = 0;
int guess = 0;
Random random = new Random(); // No seed
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
See Java random always returns the same number when I set the seed?
Well the thing is this is a school assignment and I have no say in the matter because the professor wants it to have a seed value of 1. Thanks anyways though.
– Marcos Z.
Nov 21 at 14:25
Seed is actually a way of getting same number sequence each time (kind of initial setup for Random) so it's not an issue but by design.
– Akceptor
Nov 21 at 14:28
add a comment |
up vote
0
down vote
You've called nextInt()
on the Random
object only once, so you've only generated the one random number. Inside your loop you call nextInt()
on the scanner, which is reading from System.in, so your program is halting and waiting for the user to input a number again each time around the loop.
If you want the user to enter a single number once, and then Random to keep generating numbers until they match, you'd need to swap which one is called inside the loop. To print the random numbers being generated, you'd need to add a print statement inside the loop that prints that current number.
add a comment |
up vote
0
down vote
while (guess != num) {
num = random.nextInt(100) + 1;
guess = sc.nextInt();
System.out.printf("you guessed: %d the number was %d%n",guess, num);
tries++;
}
This one will print out each time, and guess a new random number each time.
add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
Random(1)
uses seed in constructor which is always the same. Use just Random()
- no parameter constructor.
import java.util.*;
public class FeelingLucky {
public static void main(String args) {
Scanner sc = new Scanner(System.in);
int tries = 0;
int guess = 0;
Random random = new Random(); // No seed
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
See Java random always returns the same number when I set the seed?
Well the thing is this is a school assignment and I have no say in the matter because the professor wants it to have a seed value of 1. Thanks anyways though.
– Marcos Z.
Nov 21 at 14:25
Seed is actually a way of getting same number sequence each time (kind of initial setup for Random) so it's not an issue but by design.
– Akceptor
Nov 21 at 14:28
add a comment |
up vote
3
down vote
Random(1)
uses seed in constructor which is always the same. Use just Random()
- no parameter constructor.
import java.util.*;
public class FeelingLucky {
public static void main(String args) {
Scanner sc = new Scanner(System.in);
int tries = 0;
int guess = 0;
Random random = new Random(); // No seed
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
See Java random always returns the same number when I set the seed?
Well the thing is this is a school assignment and I have no say in the matter because the professor wants it to have a seed value of 1. Thanks anyways though.
– Marcos Z.
Nov 21 at 14:25
Seed is actually a way of getting same number sequence each time (kind of initial setup for Random) so it's not an issue but by design.
– Akceptor
Nov 21 at 14:28
add a comment |
up vote
3
down vote
up vote
3
down vote
Random(1)
uses seed in constructor which is always the same. Use just Random()
- no parameter constructor.
import java.util.*;
public class FeelingLucky {
public static void main(String args) {
Scanner sc = new Scanner(System.in);
int tries = 0;
int guess = 0;
Random random = new Random(); // No seed
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
See Java random always returns the same number when I set the seed?
Random(1)
uses seed in constructor which is always the same. Use just Random()
- no parameter constructor.
import java.util.*;
public class FeelingLucky {
public static void main(String args) {
Scanner sc = new Scanner(System.in);
int tries = 0;
int guess = 0;
Random random = new Random(); // No seed
int num = random.nextInt(100) + 1;
System.out.print("Pick a number between 1 and 100:");
while (guess != num) {
guess = sc.nextInt();
tries++;
}
System.out.println("It took " + tries + " tries to match");
sc.close();
}
}
See Java random always returns the same number when I set the seed?
edited Nov 21 at 14:24
secret super star
83813
83813
answered Nov 21 at 14:18
Akceptor
9541321
9541321
Well the thing is this is a school assignment and I have no say in the matter because the professor wants it to have a seed value of 1. Thanks anyways though.
– Marcos Z.
Nov 21 at 14:25
Seed is actually a way of getting same number sequence each time (kind of initial setup for Random) so it's not an issue but by design.
– Akceptor
Nov 21 at 14:28
add a comment |
Well the thing is this is a school assignment and I have no say in the matter because the professor wants it to have a seed value of 1. Thanks anyways though.
– Marcos Z.
Nov 21 at 14:25
Seed is actually a way of getting same number sequence each time (kind of initial setup for Random) so it's not an issue but by design.
– Akceptor
Nov 21 at 14:28
Well the thing is this is a school assignment and I have no say in the matter because the professor wants it to have a seed value of 1. Thanks anyways though.
– Marcos Z.
Nov 21 at 14:25
Well the thing is this is a school assignment and I have no say in the matter because the professor wants it to have a seed value of 1. Thanks anyways though.
– Marcos Z.
Nov 21 at 14:25
Seed is actually a way of getting same number sequence each time (kind of initial setup for Random) so it's not an issue but by design.
– Akceptor
Nov 21 at 14:28
Seed is actually a way of getting same number sequence each time (kind of initial setup for Random) so it's not an issue but by design.
– Akceptor
Nov 21 at 14:28
add a comment |
up vote
0
down vote
You've called nextInt()
on the Random
object only once, so you've only generated the one random number. Inside your loop you call nextInt()
on the scanner, which is reading from System.in, so your program is halting and waiting for the user to input a number again each time around the loop.
If you want the user to enter a single number once, and then Random to keep generating numbers until they match, you'd need to swap which one is called inside the loop. To print the random numbers being generated, you'd need to add a print statement inside the loop that prints that current number.
add a comment |
up vote
0
down vote
You've called nextInt()
on the Random
object only once, so you've only generated the one random number. Inside your loop you call nextInt()
on the scanner, which is reading from System.in, so your program is halting and waiting for the user to input a number again each time around the loop.
If you want the user to enter a single number once, and then Random to keep generating numbers until they match, you'd need to swap which one is called inside the loop. To print the random numbers being generated, you'd need to add a print statement inside the loop that prints that current number.
add a comment |
up vote
0
down vote
up vote
0
down vote
You've called nextInt()
on the Random
object only once, so you've only generated the one random number. Inside your loop you call nextInt()
on the scanner, which is reading from System.in, so your program is halting and waiting for the user to input a number again each time around the loop.
If you want the user to enter a single number once, and then Random to keep generating numbers until they match, you'd need to swap which one is called inside the loop. To print the random numbers being generated, you'd need to add a print statement inside the loop that prints that current number.
You've called nextInt()
on the Random
object only once, so you've only generated the one random number. Inside your loop you call nextInt()
on the scanner, which is reading from System.in, so your program is halting and waiting for the user to input a number again each time around the loop.
If you want the user to enter a single number once, and then Random to keep generating numbers until they match, you'd need to swap which one is called inside the loop. To print the random numbers being generated, you'd need to add a print statement inside the loop that prints that current number.
answered Nov 21 at 14:19
tdimmig
360420
360420
add a comment |
add a comment |
up vote
0
down vote
while (guess != num) {
num = random.nextInt(100) + 1;
guess = sc.nextInt();
System.out.printf("you guessed: %d the number was %d%n",guess, num);
tries++;
}
This one will print out each time, and guess a new random number each time.
add a comment |
up vote
0
down vote
while (guess != num) {
num = random.nextInt(100) + 1;
guess = sc.nextInt();
System.out.printf("you guessed: %d the number was %d%n",guess, num);
tries++;
}
This one will print out each time, and guess a new random number each time.
add a comment |
up vote
0
down vote
up vote
0
down vote
while (guess != num) {
num = random.nextInt(100) + 1;
guess = sc.nextInt();
System.out.printf("you guessed: %d the number was %d%n",guess, num);
tries++;
}
This one will print out each time, and guess a new random number each time.
while (guess != num) {
num = random.nextInt(100) + 1;
guess = sc.nextInt();
System.out.printf("you guessed: %d the number was %d%n",guess, num);
tries++;
}
This one will print out each time, and guess a new random number each time.
answered Nov 21 at 14:48
matt
4,2281923
4,2281923
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53413963%2fgenerating-randoms-but-a-few-minor-errors%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Since you seed your Random with (1), you always get the same sequence of numbers. You need to print out the numers to print them. ie System.out.println("the random number is: " + num);
– matt
Nov 21 at 14:15
your description is confusing, is the program guessing the number entered by user or is the user guessing the number generated by the program?
– Milo Bem
Nov 21 at 14:23
@matt It just ends up with the same result even if I print them.
– Marcos Z.
Nov 21 at 14:28
if the user is supposed to guess the number than your program works correctly. The reason it always "stops" at 86 is because 86 is the number generated. You guess the number - the program ends. Why it always generates this number is expained in the other comments and answers
– Milo Bem
Nov 21 at 14:28
@MiloBem Oh my bad. The user is supposed to be guessing the number generated by the program and it prints out a bunch of random numbers till it reaches the result.
– Marcos Z.
Nov 21 at 14:29