【编程向】学习一点算法和数学

文章目录[隐藏]

有这么一道题:

A 从 1-100 之间选一个数字,B 猜数字,A 告诉 B 大了还是小了。

如果 B 一次就猜中,A 给 B 50 块钱;第两次猜中,给 B 40 块钱;第三次猜中给 B 30 块钱,以此类推,20 块,10 块,0 块,第七次猜中 B 给 A 10 块,第八次猜中 B 给 A 20块,类推下去。

请问:你会和我玩这个游戏吗?

先说答案:先确定玩几局,5 局以内,心情好就玩,心情不好就不玩。5 局以上,玩!!

答案解析:这道题的 B 期望值是 2.0 元。每玩一局的期望是赚到 2 块钱,5 局大概小赚那么几块钱。

过程解析

知识架构

  1. 概率学
  2. 积分
  3. 算法-二分法
  4. 归纳学

概率学

1-100 随机挑一个数,

猜一次就猜中的概率是:1%。

猜第二次猜中的概率是:2%。

第一次猜 x ,第二次猜 y

第一次猜后各种情况概率:

  • 猜中 1%
  • 大了 (100-x)/100,猜中概率 1/(100-x)
  • 小了 (x-1)/100,猜中概率 1/(x-1)

总的猜中率: P = 1% + ((100-x)/100 1/(100-x)) + ((x-1)/100 1/(x-1)) = 3%

如果 x 是边界值,那么需要去掉一个加项,猜中率变为 2%。

猜第三次猜中的概率是 4%,总的猜中率是 7%。

概率计算可参考猜两次的过程,计算方式类似。

猜第四次猜中的概率是 8%,总的猜中率是 15%。

猜第五次猜中的概率是 16%,总的猜中率是 31%。

猜第六次猜中的概率是 32%,总的猜中率是 63%。

猜第七次猜中的概率是 37%(100%-1%-2%-4%-8%-16%-32%),总的猜中率是 100%。

收益期望值是:

50x1% + 40x2% + 30x4% + 20x8% + 10x16% + 0 + -10x37% = 2.0

这里差点把我自己给绕进去……

按照科学的办法是这样的,科学期望值是 2 块钱。

反思

这,出的题怎么还赔钱了呢?

问题出在哪儿呢?

哦哦哦,我们把猜第六次猜中的赔率去掉,把第六次猜中改为“给我10元”,第七次猜中改为“给我20元”。

这样一个改动,嗯,收益的期望值立马变成了 -4.9 元。

嗯,完美,玩这个游戏的时候无论当 A 还是 B 都有了解决方案。

实际上,这个游戏玩起来,一点没有意思。

选数的时候 A 可以无限作弊,无论 B 说啥数字,都说没猜中。

实际是 A 没有固定这个选的数字,无论 B 说啥数字,给归到大范围区间去,永远的拖到第 7 次猜中。

B 也可以放水,他可以从 1 开始,然后逐一的加 1 报数,极限的情况是第 100 次才猜中。A 当然也可以反制,无论 B 说啥数字都直接告诉他猜中了。

版权声明:
作者:xinyu2ru
链接:https://www.rxx0.com/software/bian-cheng-xiang-xue-xi-yi-dian-suan-fa-he-shu-xue.html
来源:RUBLOG-分享我的生活
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>