For reproducibility needed for auto-grading, seed the program with a value of 2. In a real program, you would seed with the current time. In that case, every program's output would be different, which is what is desired but can't be auto-graded.
9.16 LAB: Flip a coin
Write a program that simulates flipping a coin to make decisions. The input is how many decisions are needed, and the output is either heads or tails. Assume the input is a value greater than 0.
Ex: If the input is:
3the output is:
tails heads tailsFor reproducibility needed for auto-grading, seed the program with a value of 2. In a real program, you would seed with the current time. In that case, every program's output would be different, which is what is desired but can't be auto-graded.
Note: A common student mistake is to create an instance of Random before each call to rand.nextInt(). But seeding should only be done once, at the start of the program, after which rand.nextInt() can be called any number of times.
Your program must define and call the following method that randomly picks 0 or 1 and returns "heads" or "tails". Assume the value 0 represents "heads" and 1 represents "tails".
public static String headsOrTails(Random rand)
import java.util.Scanner;
import java.util.Random;
public class LabProgram {
public static String HeadsOrTails(Random rand) {
String coinFlip; // no need to "initialize" as it is definitely assigned just below
if (rand.nextInt(2) == 0)
coinFlip = "heads";
else // Added code
coinFlip = "tails";
return coinFlip;
}
/* Define your method here */
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
Random rand = new Random();
int n = scnr.nextInt();
for(int i=0; i<n; i++){
System.out.println(headsOrTails(rand));
}
}
public static String headsOrTails(Random rand){
if(rand.nextInt(2)==0)
return "heads";
else
return "tails";
}
}
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images