【发布时间】:2017-11-19 19:19:16
【问题描述】:
我有以下任务要解决:我从 1 到 100 连续有 100 扇门。我把10个人一个接一个地送进了一排门。门最初是打开的。 第一个人每 5 扇门打开一次;; 5、10、15、20...100 第二个人每 10 扇门打开一次; 10, 20, 30 40, 100 第三个人每 15 扇门打开一次; 15,30 45... 100 这种模式一直持续到最后一个人打开门 nr:50 和 100(第 50 扇门)。
每个人都通过后哪些门会关闭?它应该输出特定的门数,(例如,5,70,75,96,100)。
我已经用下面显示的代码解决了 Java 中的问题。我现在正试图在 R 中解决它,但是我遇到了 for 循环的问题,我没有得到正确的答案(我必须使用 for 循环语句)。任何人有一些建议如何解决它?
enter code here
int personer = 10;
boolean[] doorOpen = new boolean [100];
int startPosition;
for(int start = 5; start < 51; start +=5) {
for(int i = start-1; i < doorOpen.length; i = i + start) {
if ( doorOpen [i] == false ) {
doorOpen[i] = true;
//System.out.println("endret d¯r nr: " + (i+1) + " -------- " +" D¯r lukket : " + doorOpen[i] );
} else {
doorOpen[i] = false;
//System.out.println("endret d¯r nr: " + (i+1) + " -------- " +" D¯r lukket : " + doorOpen[i] );
}
}
System.out.println();
}
for (int i = 0; i < doorOpen.length; i++) {
if(doorOpen[i] == true) {
System.out.print((i+1) + " ");
}
}
} // main slutt
我的 R 代码开头如下:
enter code here
door_game <- function(total_doors=100,passes=10) {
doors <- rep(FALSE,total_doors)
for ....
return (which(doors==true))
door_game()
【问题讨论】:
-
"但是我的 for 循环有问题" => 到底是什么问题?
-
我不知道如何创建它。我只知道如果它用一扇门跳跃时如何创建它。在这种情况下,它是 5。我在 R 方面的经验有限。