我已经有代码随机抛出"硬币"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(( 函数中翻转的布尔值与我之前在此答案中提到的布尔值进行比较;如果它们相同,则递增整数计数,如果它们不同,则将其重置为零。