简而言之,我有这门课的教科书实验作业,目前我正在做一个关于物体的模块。这个实验让我使用随机数生成器,但由于自动评分,它需要可重复性。它通过设置2来实现这一点,但是我似乎不能得到实验室想要的东西,即使我的程序在正常情况下完全按照它应该的方式运行。以下是说明和我的代码:
写一个程序,模拟抛硬币来做决定。输入是需要多少决策,输出要么是正面,要么是反面。假设输入是一个大于0的值。
例如:如果输入为3,则输出为:
tails
heads
heads对于自动评分所需的可重复性,请将值2设定为程序种子。在实际程序中,您将使用当前时间设定种子。在这种情况下,每个程序的输出将是不同的,这是所需的,但不能自动评分。
注意:学生们经常犯的一个错误是在每次调用rand.nextInt()之前创建一个随机数实例。但是种子设定应该只在程序开始时执行一次,之后rand.nextInt()可以被调用任意次。
您的程序必须定义并调用以下返回“head”或"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 coinFlipVal = "tails";
if (rand.nextInt(2) == 0) {
coinFlipVal = "heads";
}
return coinFlipVal;
}
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
Random randGen = new Random(2); // Unique seed
int iDecisions = key.nextInt();
for (int i = 0; i < iDecisions; i++) {
System.out.println(HeadsOrTails(randGen));
}
}
}这完全符合它的假设,即无论我想要多少次迭代,它都会产生一组随机的头部或尾部结果,但不是按照程序查找的顺序。我使用了if语句,将其设置为1而不是0,对尾部使用else if语句,并将coinFlipVal声明为"",等等。我只是不知道如何获得他们正在寻找的东西。对于我所忽略的任何帮助,我都非常感谢。下面是提交结果(给出了程序期望从输出中得到的结果):
1:比较输出0/2输出不同。请看下面的高亮部分。输入:
3您的输出
tails
heads
tails预期输出
tails
heads
heads2:单元测试2/2 HeadsOrTails()输入1
您的输出:
HeadsOrTails() with input 1 correctly returned:
tails3:单元测试0/3 HeadsOrTails()输入5
您的输出:
HeadsOrTails() with input 5 incorrectly returned:
tails
heads
tails
heads
heads4:单元测试0/3 HeadsOrTails()输入10
您的输出:
HeadsOrTails() with input 10 incorrectly returned:
tails
heads
tails
heads
heads
tails
tails
heads
tails
tails发布于 2019-11-21 00:10:47
我得到了和你一样的答案,得到了10/10,唯一的区别是我在if后面添加了一个else语句;
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;
}https://stackoverflow.com/questions/55152584
复制相似问题