识别Java中的两个随机序列

时间:2018-10-25 02:01:24

标签: java

我正在编写一个掷硬币的程序,然后输出结果是正面(H)还是反面(T):

import java.util.Random;

    public class coin {
        public static void main (String [] arg) {
            Random r = new Random(); 
            int flip = r.nextInt(2);
            if (flip == 1) {
                System.out.print("H");
            } else {
                System.out.print("T");
            }
        }
    }

接下来,我希望程序继续翻转硬币,直到它连续翻转3个头为止。

因此对于实例,我希望它输出以下内容,该内容在确定3个头之后停止:

H T T H T H T H H H

我在解决如何使Java继续掷硬币方面遇到问题。我试图实现一个for循环,该循环使我可以将硬币翻转固定的次数,但是我希望该程序能够计算出硬币自身翻转了多少次。我怀疑应该使用while循环,但是我似乎无法弄清楚如何实现。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

使用计数器跟踪翻转了多少个磁头,并循环直到翻转了3个磁头:

Random r = new Random();
int counter = 0;
while(counter <3) 
{
    int flip = r.nextInt(2);
    if (flip == 1) {
        System.out.print("H");
        counter++;
    } else {
        System.out.print("T");
        counter = 0;
    }
}

答案 1 :(得分:2)

类似这样:

int headsInRow=0;
while(headsInRow<3){

  int flip=doFlip();
  if(heads)headsInRow++;
  else headsInRow=0;
}

ofc这是一个伪代码,但您应该了解一下。