如何计算连续翻转的头或尾?

时间:2016-02-16 15:29:41

标签: javascript arrays

我的代码已经随机翻转了一个"硬币"然后100次告诉人头被翻转多少次,尾巴被翻转。现在我试图弄清楚如何列出头部和/或尾部连续翻转多少次而没有其他变化例如:Heads,Heads,Heads。这是我的代码:

var NUM_FLIPS = 100;

function start() {
  var flips = flipCoins();
  printArray(flips);
  countHeadsAndTails(flips);
}

function flipCoins() {
  var flips = [];
  for (var i = 0; i < NUM_FLIPS; i++) {
    if (Randomizer.nextBoolean()) {
      flips.push("Heads");
    } else {
      flips.push("Tails");
    }
  }
  return flips;
}

function printArray(arr) {
  for (var i = 0; i < arr.length; i++) {
    println(i + ": " + arr[i]);
  }
}

function countHeadsAndTails(flips) {
  var headcount = 0;
  var tailcount = 0;
  for (var i = 0; i < flips.length; i++) {
    if (flips[i] == "Heads") {
      headcount++;
    } else {
      tailcount++;
    }
  }

  println("Total Heads: " + headcount);
  println("Total Tails: " + tailcount);
}

1 个答案:

答案 0 :(得分:0)

在这种情况下我要做的是使用两个新变量:一个布尔变量来检测你是否计算一行中的头(真)或一行中的尾(假)和一个无符号整数来计算连续翻转的数量。您可以将刚刚在flipCoins()函数中翻转的布尔值与我在本回答中提到的布尔值进行比较;如果它们相同,则递增整数计数,如果它们不同,则将其重置为零。