看到一个题目,网游装备强化到5级平均需要多少次?要知道装备强化如果失败是会降1级的.如果不是降一级而是直接导致装备破坏,那成功概率就不一样了.
自己写的程序如下:
import java.util.Random;
/*这是一个用来测试装备升级成功率的程序
装备从0级强化到5级,不同等级时成功概率依次为:80%,60%,40%,20%,10%.
0级强化到1级成功率有80%,失败仍为0级,1级到2级成功率60%,失败降1级,后面都是成功升1级,失败降1级,程序运行从0级到5级一共强化了多少次(包括失败次数).
重复10000次从0级到5级的强化测试,算出平均升到5级需要多少次强化.
用到了java.util.Math.Random方法.
*/
class Test{
public static void main(String args[]){
int ntimes = 0;
int presentlevel = 0;
int prob[] = {80,60,40,20,10};
Random rnd = new Random();
int irnd;
int total = 0;
int avg = 0;
for(int i = 0; i < 10000;i++){
do{
irnd = rnd.nextInt(100);
if(irnd <= prob[presentlevel]){
presentlevel++;
//System.out.println("irnd is "+irnd+" PL is "+presentlevel);
}else{
if(presentlevel > 0) presentlevel--;
//System.out.println("rnd is "+irnd+" PL is "+presentlevel);
}
ntimes++;
}while(presentlevel < 5);
System.out.println("Tried " + ntimes + "to get level 5.");//这遍用了多少强化次数
total = total + ntimes;
ntimes = 0; //强化次数和等级回0再测
presentlevel = 0;
}
avg =total / 10000;
System.out.println("total is "+total+" avg is "+avg);
//输出总次数和平均数
}
}
这样算出来平均是260次左右,升级不成功直接破坏装备的升级法560左右.
转载于:https://blog.51cto.com/highandfar/1403563