如何计算连续翻转的正面或反面



我已经有代码随机抛出"硬币"100次,然后告诉正面翻转和反面翻转了多少次。现在我正在尝试弄清楚如何列出连续翻转头部和/或反面的次数,而无需其他变体,例如:正面,正面,正面。这是我的代码:

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);
}
在这种情况下,

我要做的是使用两个新变量:一个布尔变量来检测你是计算一行中的正面(真(还是一行中的反面(假(,以及一个无符号整数来计算连续翻转的次数。 您可以将刚刚在 flipCoins(( 函数中翻转的布尔值与我之前在此答案中提到的布尔值进行比较;如果它们相同,则递增整数计数,如果它们不同,则将其重置为零。

最新更新