我想知道是否有辦法總結我通過回圈獲得的概率結果?所以我可以知道有多少成功點擊,給定 x 次嘗試。現在我只得到一串 1 或 0 條陳述句(1 表示成功命中,0 表示失敗),不太實用。它看起來像這樣:
public class doGry {
public static void main(String[] args ) {
for (int i = 0; i < 50; i ) {
// chance to hit (h) = 35% (ma - md)
// 8% < h < 90%
double ma = 20;
double md = 10;
double probability;
System.out.println("probability of success " (probability = 35 (ma - md)));
double probab2 = probability / 100;
double r = Math.random();
int roll;
if (r <= probab2) roll = 1;
else roll = 0;
System.out.println(roll);
}
}
}
uj5u.com熱心網友回復:
很少有變數可以在 for 回圈之外初始化,因為您沒有修改它的值,所以不需要一次又一次地初始化它。
使用變數count,用于跟蹤成功命中。對于每次成功命中,將其值增加 1。
public class doGry {
public static void main(String[] args ) {
double ma = 20;
double md = 10;
double probability = 35 (ma - md);
double probab2 = probability / 100;
int count = 0;
for (int i = 0; i < 50; i ) {
System.out.println("probability of success " probability);
double r = Math.random();
if (r <= probab2)
{
System.out.println("1");
count ;
}
else
System.out.println("0");
}
System.out.println("Succesful hits " count);
}
}
uj5u.com熱心網友回復:
您所要做的就是添加一個變數來跟蹤發生了多少成功的擲骰子,然后使用像這樣的雙精度將其除以擲骰子的總數
public class doGry
{
public static void main(String[] args )
{
int total = 0;
for (int i = 0; i < 50; i )
{
// chance to hit (h) = 35% (ma - md)
// 8% < h < 90%
double ma = 20.0;
double md = 10.0;
double probability;
System.out.println("probability of success " (probability = 35 (ma - md)));
double probab2 = probability / 100;
double r = Math.random();
int roll;
if (r <= probab2) {roll = 1; total ;}
else roll = 0;
System.out.println(roll);
}
System.out.println("total: " total/50.0);
}
}
請注意,在最后的 System.out.println 陳述句中,總數被除以 50.0(而不是 50),因為 .0 表示您需要雙除法而不是整數除法,后者會丟棄任何剩余的十進制值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/362163.html
上一篇:有沒有更簡單/通用的方法來實作這個switch陳述句?
下一篇:確定陣列中的最大數字
