I am currently learning java, I know Python just fine, but I can't seem to make my java problem work the same way as my python program. Here is the python program:

我目前正在学习java,我知道Python很好,但我似乎无法让我的java问题与我的python程序一样工作。这是python程序:

import random as rand
successes = 0
for x in range (1000):
    stake = 100
    bets = 0
    while stake >0 and stake <200:
        play = rand.randint(0,1)
        bets +=1
        if play == 0:
            stake = stake -1
        else:
            stake = stake + 1
    if stake == 200:
        successes +=1
    print ('stake = ', stake, 'bets made =', bets)
print (successes/1000)
print(bets/1000)

when I run it I get something like this:

当我运行它时我得到这样的东西:

stake =  0 bets made = 19832
stake =  200 bets made = 5240
stake =  200 bets made = 3156
stake =  0 bets made = 10338
stake =  200 bets made = 11198
stake =  0 bets made = 6150
stake =  200 bets made = 10934
stake =  200 bets made = 11368
stake =  0 bets made = 8724
stake =  0 bets made = 17158
stake =  200 bets made = 6158
stake =  200 bets made = 7690
stake =  200 bets made = 2170
stake =  200 bets made = 12268
stake =  0 bets made = 15878
stake =  200 bets made = 16486
stake =  0 bets made = 6396
0.518
6.396

Now here is what I did for my java program I was told to use Math.random() and Math.Round() and I think that may be where I'm running into a problem I have no idea where to put Math.Round()

现在这里是我为我的java程序做的事情我被告知要使用Math.random()和Math.Round(),我想这可能是我遇到问题的地方我不知道在哪里放Math.Round ()

public class Gambler {
    public static void main(String[] args){
       double successes = 0;
       for (int i = 0; i <1000;i++){
           double stake = 100;
           double bets = 0;
           while(stake>0 && stake <200){
               bets++;
               if (Math.random()<0.5) stake ++;
               else stake --;
           if (stake==200) successes++;

           System.out.println("stake = "+ stake + " bets made = " + bets);

           }
       System.out.println("average successes = " + successes/1000);
       System.out.println("average bets = " + bets/1000);
       }
    }
    }

When I run this one I get this

当我运行这个时,我得到了这个

stake = 196.0 bets made = 10290.0
stake = 197.0 bets made = 10291.0
stake = 198.0 bets made = 10292.0
stake = 197.0 bets made = 10293.0
stake = 196.0 bets made = 10294.0
stake = 197.0 bets made = 10295.0
stake = 198.0 bets made = 10296.0
stake = 197.0 bets made = 10297.0
stake = 198.0 bets made = 10298.0
stake = 197.0 bets made = 10299.0
stake = 196.0 bets made = 10300.0
stake = 195.0 bets made = 10301.0
stake = 196.0 bets made = 10302.0
stake = 197.0 bets made = 10303.0
stake = 196.0 bets made = 10304.0
stake = 197.0 bets made = 10305.0
stake = 196.0 bets made = 10306.0
stake = 197.0 bets made = 10307.0
stake = 198.0 bets made = 10308.0
stake = 199.0 bets made = 10309.0
stake = 200.0 bets made = 10310.0
average successes = 0.512
average bets = 10.31

2 个解决方案

#1


2

In python if stake == 200: is outside of the while loop, in java it's inside, similarly your outputs in java are inside the for loop when they are outside it in python. I believe this is closer to your python code.

在python中,如果stake == 200:在while循环之外,在java里面,类似于java中的输出在python中位于for循环之外。我相信这更接近你的python代码。

public class Gambler {
    public static void main(String[] args){
       double successes = 0;
       double bets = 0;
       for (int i = 0; i <1000;i++){
           double stake = 100;
           bets = 0; // initialize outside of for loop
           while(stake>0 && stake <200){
               bets++;
               if (Math.random()<0.5) stake ++;
               else stake --;
           }
           if (stake==200) successes++;

           System.out.println("stake = "+ stake + " bets made = " + bets);
       }    
       System.out.println("average successes = " + successes/1000);
       System.out.println("average bets = " + bets/1000);
    }
}

更多相关文章

  1. 检测Python程序的执行效率
  2. 第一个简单的flask程序(有问题,求大神帮忙解决)
  3. 怎样用Python3 写一个爬图片的程序?
  4. 使用python编写udp协议的ping程序
  5. 第一次写完整的Python GUI程序
  6. 简单的车牌识别预处理小程序
  7. 踏出第一步——安装并跑通python程序
  8. 轮询Web服务的最佳方式(例如,对于Twitter应用程序)
  9. 大神程序员对python的理解与运用

随机推荐

  1. Android开发中使用CRC校验
  2. Android开源代码解读の地图照片应用Panor
  3. 如何让按钮共享android中对话框宽度的一
  4. Android 字符串资源
  5. 多个dex文件定义了Landroid/支持/v13/app
  6. 在app引擎端点的启动时执行代码
  7. android:WALLPAPER_CHANGED不适用于三星Ga
  8. Android NFC 近场通讯开发全解
  9. 通过不在android游标中工作的顺序
  10. Android全屏模式,沉浸模式。粘性沉浸模式