我正在處理一個我有點困惑的問題。這個問題說,想象你在二戰期間是英國空軍的將軍。你有100架飛機離開捍衛英國。隨着每架飛機的飛行,每架飛機都有50%的機會被德軍的防空炮擊落,所以每次飛行任務都會損失大約一半的飛機。你必須編寫一個程序,估計每次任務後有多少架飛機能夠存活下來,以及在你的所有飛機被擊落之前可以運行多少次任務。
RandomGenerator - 丟失50%的飛機模擬
我的程序不工作,我不知道它有什麼問題,所以我猜英格蘭有麻煩。我試圖用兩個while循環來解決這個問題。只要你有飛機離開,他們就會在另一個任務中發送。內部while循環模擬實際任務。在while循環存在之後,飛機總數現在是倖存的飛機。
import acm.program.*;
import acm.util.*;
public class MissionPlanes extends ConsoleProgram{
public void run(){
int planes = 100; /* total number of planes */
int suvPlanes = 0; /* surviving planes */
int mission = 0; /* total number of missions */
int planeCounter = 0; /* keeps track of the planes flying over the anti plane gun */
while (planes > 0){
while(planeCounter < planes){
planeCounter++;
if(rgen.nextBoolean()){ /* I've tried rgen.nextBoolean() with paramaters and with no paramaters */
suvPlanes += 1;
}
}
planes = suvPlanes;
mission++;
println("The total number of surviving planes you have is " + planes + "after" + missoin + "missions");
}
}
private RandomGenerator rgen = RandomGenerator.getInstance();
}
請詳細說明'這行不通'。它以什麼方式不起作用? – Patashu
'nextBoolean'是否帶有任何參數? – Blender
@Patashu沒有任何反應。它不會在屏幕上打印任何內容。我相信我所做的一切都是正確的。 –