看到一个题目,网游装备强化到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左右.