【发布时间】:2015-01-21 23:08:29
【问题描述】:
正在做家庭作业,老实说,甚至不知道如何去做。任何帮助表示赞赏。谢谢!
任务: 一个醉酒的人离开酒吧,步行回家。据观察,他平均有 60% 的时间向前走,30% 的时间向后走,10% 的时间摇摆不定(没有向前或向后移动)。
他的家距离酒吧 50 英尺(台阶)。编写一个名为“PS1P2”的程序,显示他在典型的夜晚醉酒步行回家时的动作。您的代码应该打印一系列“Forward”、“Backward”和“Wobble”字样 对应他的动作。
提示:您可以使用 Math.random() 生成的值来确定人的行为 在每个步骤中。
这是我目前的代码:
public static void main(String[] args) {
double currentPos = 0;
int houseDist = 50;
int stepCounter = 0;
double i;
while(currentPos < houseDist){
i = Math.random();
if(i <= 0.6){
System.out.println("Forward");
currentPos++;
stepCounter++;
}
if(i <= 0.9){
System.out.println("Backward");
currentPos--;
stepCounter++;
}
else
System.out.println("Wobble");
}
System.out.println("Total steps: " + stepCounter);
System.out.println("The house has been reached!");
}//end main
想通了!不想让这看起来像是你们在为我做作业,只是需要从某个地方开始。感谢那些回答/帮助的人!
【问题讨论】:
-
您确实需要尝试回答自己,否则这会被视为“给我看代码!”问题。你有任何工作代码吗?
-
提示:
Math.random()的结果在 [0,1) 范围内。如果Math.random()的结果是均匀分布的,那么结果在[0,0.1)范围内的概率是……? -
在您发布的代码中,如果您使用
else if,则无需检查i > 0.6。 -
谢谢你。我已经改了
-
@Pancakes 如果没有第二个
else之前的else,它将无法正常工作if:else if (i <= 0.9)。如果您已经完成了第一个子句(else的用途),那么您不想输入第二个if子句。
标签: java math random percentage