炉石传说:秘法学家和奥秘各带几张性价比最高? 秘法学家和奥秘各带几张性价比最高?伙伴们,来看下吧! 秘法学家和奥想组套蓝龙德却没有橙武,想着不带也不是不可以,就想着带4费6甲那张试下,可是卡位蛮紧张的;以前玩冰法的时候就老纠结带几个秘法学家带几个奥秘这个问题,后来好像又出了好几张类似的,像4费6甲,战吼萨带424抽元素等等;如果奥秘带多了,那么提前抽到奥秘的概率也增加了,不是简单的叠加,算起来又没那个能力,干脆写代码模拟下。 模拟思路 为了简便我把这种A卡抽B卡的用代号A和B代替。 1:先模拟30张牌按顺序排列,里面放几张A和B进去; 2:整体洗一次牌; 3:随机先后手,先手看前3张牌,如果发现有B,就把它和剩下牌库里面的随机一张卡牌互换,后手同理看4张; 4:模拟抽牌,如果抽到B,B的剩余数量减1,如果抽到A且B有剩余,就把牌库的第一张B拿出来,记数+1;模拟n次,最后统计平均每张A抽到了几张B,把这个作为A成功特效的期望值也就是性价比; 程序还是很快的,我把n设成100万也就是几秒的事,数字也很稳定每次都不会有大的出入,我把结果放出来给大家参考下; A1B1 = 0.561 说明:表示卡组配置1张A卡(比如秘法学家)和1张B卡(比如奥秘),最后平均每张A卡成功发动特效的次数: A1B2 = 0.707 A1B3 = 0.780 A1B4 = 0.824 A2B2 = 0.643 A2B3 = 0.742 A2B4 = 0.798 A2B5 = 0.835 A2B6 = 0.861 ...... A1B29=0.971 最后来个夸张的,除了1张A,卡库里面塞29张B,理论上这是期望值最高的了,大家可以自行判断。 根据反馈我觉得不大对,A2B2显得特别低,我检查了下原来我代码之前ALt+z撤销的时候有地方误操作了,重新编辑了; 另外以上是基于A卡的期望,适合A卡纯赚特效比如4费6甲,B卡裸出不亏的情况,但是实际上A1B4这种配置,虽然A卡特效高但B卡对我来说可能显得多了; 换个思路,假设A卡和B卡对我来说差别不大裸出差不多,如果不为特效我AB都不想带,那么我可能要考虑的不只是A卡的成本,而是A+B了,总共我花了几个卡位来赚特效,那么数据如下: A1B1 = 0.28 A1B2 = 0.236 A1B3 = 0.195 A1B4 = 0.165 A1B5 = 0.142 A1B6 = 0.125 A2B1 = 0.248 A2B2 = 0.321 A2B3 = 0.297 A2B4 = 0.266 A2B5 = 0.239 A2B6 = 0.215 那么这种情况下反而A2B2表现突出了! 代码:小编是一个代码都不懂,所以一个空格都不敢删,编辑不好多多见谅。 public class HS { public static void main(String[] args) { ArrayList list = new ArrayList(); for (int i = 0; i < 30; i++) { list.add("foo"); } int a=1; int b=29; for(int i=0;ilist.set(i, "A"); } for(int i=a;ilist.set(i, "B"); } int total=0; int max=1000000; for(int i=0;itotal = total+getCard(list, a, b); } System.out.println((double)total/max/a); } private static int getCard(ArrayList list, int a, int b) { Collections.shuffle(list); //System.out.println(list); int offensive=Math.random()<0.5?3:4; if(offensive==3) { //System.out.println("先手"); } else { //System.out.println("后手"); } for(int i=0;iString card=list.get(i); if("B".equals(card)) { Random random = new Random(); int n = random.nextInt(30-offensive)+offensive; String temp = list.get(n); list.set(n, "B"); list.set(i, temp); } } //System.out.println(list); int size=30; int get=0; int remain=b; int i=0; for(;iString card = list.get(i); if("foo".equals(card)) { //System.out.print(" foo:"+(i+1)); } else if("B".equals(card)) { remain=remain-1; //System.out.println(" B:"+(i+1)); } else if("A".equals(card)) { if(remain>0) { for(int ii=i;iiif("B".equals(list.get(ii))) { list.remove(ii); size=size-1; break; } } //System.out.println(" A+B:"+(i+1)); remain=remain-1; get=get+1; } } } for(int i1=0;i1list.add("B"); } //System.out.println("\n"+list); //System.out.println("get:"+get); return get; } ;i1++)>;ii++>;i++)>;i++)>;i++)>+b;i++)>;i++)>秘各带几张性价比最高?
PS:这不是你要的结果?请在左上搜索栏中输入关键词搜索 |