【编程解答】空城的曹冲发动称象平均摸多少张牌?
yoka韩旭吧
全部回复
仅看楼主
level 9
smwlover 楼主
刚才见有吧友问此问题,便随手编了一个程序验证。一般来讲,由于牌的平均点数为7,所以大家估计称象大概摸2张牌。那么是不是这样呢?
程序如下,使用java语言:
public class CaoChong{
public static void main(String[] args){
int times=0, total=0;
for(int i=0;i<1000;i++){
int cards=0, sum=0;
while(sum<13){
int thisCard=(int) (Math.random()*13+1);
sum+=thisCard;
cards+=1;
}
System.out.println("共摸"+cards+"张牌。");
total+=cards;
times+=1;
}
System.out.println("共摸"+times+"次,"+total+"张牌。");
double avg=((double)(total))/times;
System.out.println("平均摸"+avg+"张牌。");
}
}
程序中1000为实验的次数。
运行几次的结果如下:
2.475 2.464 2.369 2.453 2.371 2.440 2.408.......
由此可见,曹冲称象摸牌的平均值大概为2.4张牌左右。
2013年04月01日 09点04分 1
level 7
给大神跪了
2013年04月01日 10点04分 2
level 13
跪了……
2013年04月01日 10点04分 3
level 12
拿matlab跑了个十万次的。ans = 2.4312
2013年04月01日 10点04分 6
level 12
2013年04月01日 10点04分 7
照这种算法,如果第一张抽了K,后三张都是A,就会算成1张而不是3张
2013年08月28日 01点08分
回复 Pallashadow :初版曹冲与现在的曹冲有区别
2013年09月01日 06点09分
level 7
无牌不能发动啊…
2013年04月01日 10点04分 8
无牌当然能,要不然二技能怎么看
2013年04月01日 10点04分
回复 五月Fy :无牌如何进行展示这个动作…这是一个无效动作了吧
2013年04月01日 10点04分
回复 HylaCrucis :没说至少一张。没牌你就展示个空的看呗。
2013年04月01日 11点04分
level 13
(1+1/13)^12
2013年04月01日 11点04分 9
这个好像就是理论值了,另外,补充一个,当你现有手牌点数为X(X<13)时,你的期望摸牌张数是(1+1/13)^(12-X)
2013年04月01日 11点04分
回复 HylaCrucis :明显那个13也要减X。。。
2013年04月01日 11点04分
回复 Paracel_007 :不用减…如果默认你摸到每一种点数的概率都是1/13的话,这就是一个常数
2013年04月01日 11点04分
回复 HylaCrucis :对,我弄错问题了- -
2013年04月01日 11点04分
level 9
好顶赞。
2013年04月01日 11点04分 10
level 1
2和Q要多两张,算理论值的时候要考虑这点,不过对大量统计所出的结果影响不大
2013年04月01日 11点04分 11
空城时尚且只有2.4张,还是明牌,这技能明显偏弱
2013年04月01日 11点04分
这个值明显是在牌堆无限的假设下计算的,如果考虑实际的三国杀牌堆,问题显然要复杂很多。。。
2013年04月01日 11点04分
回复 苍蓝之枪 :还有在第一次洗牌后,由于场上的武器装备坐骑们,手牌屯法导致的对应的牌(桃,闪)张数概率下降…总之如果是完整模型实在是不会…
2013年04月01日 11点04分
还有同点数牌最多只能有3张,这个没有考虑进去
2013年04月01日 12点04分
level 10
果然像曹冲这类神童,还是得让天才来设计
2013年04月01日 13点04分 12
level 1
一个只有第一次负伤后可以抓平均2张牌还特别容易被针对的武将,出来是卖秀用的?
2013年04月01日 15点04分 13
女生一般数学不好嘛,这么凶干嘛
2013年04月02日 07点04分
@红魔7天使之翼 不要理会这些评价,韩神说过“首先评价强度的都得死”。曹冲的设计思路还不错,希望好好修改,能带给我们一个更好的曹冲~
2013年04月02日 08点04分
回复 嗳汗 :嗯嗯,我尽力了,不过能力有限,期待韩神能帮我想想
2013年04月02日 08点04分
@红魔7天使之翼 加油吧~这个技能的确有一定的修改难度
2013年04月02日 09点04分
level 13
神人啊
2013年04月02日 06点04分 14
level 12
大神
2013年04月02日 07点04分 15
level 8
曹冲,曹洗,曹刷,草涮,曹泼 曹流,我的iq就这上限了
2013年04月02日 09点04分 16
level 1
很不幸,1楼和7楼的代码是错的,如果四张牌是KAAA,这种算法会算成1张而不是3张。
2013年08月28日 01点08分 18
你挖坟了[冷]
2013年08月28日 02点08分
说一句,貌似那个时候的曹冲还不是现在这样,而是摸一张之后检验全部手牌的点数和,不大于13就继续摸
2013年08月28日 03点08分
注意发帖时间。我们编程用的曹冲是修改之前的版本。
2013年08月28日 06点08分
1