如何使用math.random的百分比权重

时间:2015-01-21 23:08:29

标签: java math random percentage

做家庭作业,老实说甚至不确定如何去做。任何帮助表示赞赏。谢谢!

分配: 一个醉酒的人离开酒吧,回家散步。据观察,他平均有60%的时间前进,30%的时间后退,10%的时间内摆动(没有向前或向后的动作)。

他的家离酒吧50英尺(步数)。写一个名为“PS1P2”的程序,显示他在醉酒走路的典型夜晚的动作。您的代码应该打印一系列“前进”,“后退”和“摆动”字样 对应他的动作。

提示:您可以使用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

弄清楚了!不希望这看起来像你们正在为我做功课,只是需要一个地方开始。感谢那些做出回答/帮助的人!

1 个答案:

答案 0 :(得分:3)

Math.random不会自动为你解决这个问题...

在软件工程中,通常在编码开始之前有一个计划阶段。所以,让我们计划吧!

我建议你在纸上考虑这个问题。假装你有一个100面骰子,你要反复滚动它,并用这个值来弄清楚那个人做了什么,对吧?我建议你弄清楚如何做到这一点,然后先把它写在纸上。逐步计算出来(没有双关语)

然后,一旦你完成了这一点,就会意识到调用Math.random基本上就像滚动骰子一样(没有查找代码,我相信调用Math.random(100)会返回1-100之间的随机数,或者类似的东西.JavaDoc / Google将能够帮助您正确调用它。其余的由你来编码。