楼主: wwtwxlwjh
跳转到指定楼层
上一主题 下一主题
收起左侧

Google Snapchat跪经

🔗
神罗天征 2016-12-10 05:39:02 | 只看该作者
全局:
oldfish 发表于 2016-12-10 05:28
我只会直接积分的笨方法,相当麻烦......

相当于算一个立方体内被一些平面围成的体积

居然还要积分……我在网上找到了一些资料,好像很复杂,还有什么beta 分布……
回复

使用道具 举报

🔗
stellari 2016-12-10 16:57:54 | 只看该作者
全局:
oldfish 发表于 2016-12-10 05:28
我只会直接积分的笨方法,相当麻烦......

相当于算一个立方体内被一些平面围成的体积

我用积分算的结果也是4/9, 2/9和1/3。但是实际用MATLAB和python模拟的结果都是[7/18, 5/18, 1/3]. 虽然第一个人赢面大的结论没变,但是这可能说明:

1. 我们用的积分的方法有问题
2. MATLAB和python的随机数产生器有问题
3. 我用的模拟程序的实验方法有问题

  1. nExp = 1000000;
  2. x = sort(rand(nExp, 3), 2);
  3. v = repmat([1 2 3], nExp, 1);
  4. t = x./v;
  5. [~, winner] = max(t, [], 2);
  6. for i = 1:3
  7.     fprintf('prob %d: %.3f\n', i, sum(winner == i)/nExp*100)
  8. end
复制代码
prob 1: 38.891
prob 2: 27.753
prob 3: 33.356

补充内容 (2016-12-11 01:17):
抱歉代码确实写错了,请无视
回复

使用道具 举报

🔗
ryc111 2016-12-10 17:59:14 | 只看该作者
全局:
手机码字,昨天算的,用python模拟了一遍和积分了一遍都是4/9,
0<a<b<c<1 所以这个是空间坐标系里面 100 010 001下方的体积,1/6
然后a赢的条件是 2a<b,以及3a<c。两个面切了刚才的三棱锥,积分算出体积2/27。除以1/6就是概率了。
回复

使用道具 举报

🔗
stellari 2016-12-11 01:11:57 | 只看该作者
全局:
ryc111 发表于 2016-12-10 17:59
手机码字,昨天算的,用python模拟了一遍和积分了一遍都是4/9,
0<a<b<c<1 所以这个是空间坐标系里面 1 ...

能否分享一下python模拟的代码呢?多谢。
回复

使用道具 举报

🔗
神罗天征 2016-12-11 03:33:03 | 只看该作者
全局:
stellari 发表于 2016-12-10 16:57
我用积分算的结果也是4/9, 2/9和1/3。但是实际用MATLAB和python模拟的结果都是[7/18, 5/18, 1/3]. 虽然第 ...

请问一下这个积分怎么算的吗?
回复

使用道具 举报

🔗
stellari 2016-12-12 06:40:20 | 只看该作者
全局:
神罗天征 发表于 2016-12-11 03:33
请问一下这个积分怎么算的吗?

记3位选手分别为p1,p2,p3. 令x1, x2, x3分别为“第1,2,3次抽样产生出的随机距离”(注意,p1的起始距离是min(x1, x2, x3),而不一定是x1。p2和p3皆以此类推)。那么x1, x2, x3之间的大小关系总共有6种可能,每种可能的概率均为1/6,即P(x1 < x2 < x3)=1/6,P(x1 < x3 < x2)=1/6...。为简单起见,我们仅讨论x1 < x2 < x3这种情况,因为此时每位选手pi和其对应xj的下标恰好是相同的(i == j)。

这种情况下,如果p1要赢,那么必然有下列不等式成立
2x1 < x2...(1)
3x1 < x3 ... (2)
0 < x1 < x2 < x3 < 1 ... (3)
x1 < 1/3 ... (4) (由(2) (3) 合并可得 )。

因此,我们要考虑的是x1, x2的取值范围分别是[0, 1/3]和[2x1, 1]。接下来我们要考虑x1和x2取该范围内的每一种组合时,x3的取值范围应当是什么,才能满足上面4个不等式(主要是和x3有关的(2)和(3))?

对x2分段讨论:当2x1 < x2 < 3x1时,只要(2)成立,那么x2 < x3这一前提(即(3))自动成立;当3x1 < x2时,只要x2 < x3这一前提成立,那么(2)就自动成立。因此,在这两种情况下,我们都可以只考虑一个条件,因为当一个条件满足时,另外一个条件会自动满足。

因此,就有下面的积分式:



这个结果是在x1 < x2 < x3的特定大小关系下的概率,即P(p1 wins, x1 < x2 < x3)。而P(p1 wins) = P(p1 wins,  x1 < x2 < x3) + P(p1 wins,  x1 < x3 < x2) + P(p1 wins,  x2 < x1 < x3) ... = 4/54 + 4/54 + 4/54 ... = 4/54 * 6 = 4/9。

P(p2 wins),P(p3 wins)都可以用类似的方式来计算

评分

参与人数 2大米 +20 收起 理由
林微熙 + 10 感谢分享!
神罗天征 + 10 感谢分享!

查看全部评分

回复

使用道具 举报

🔗
神罗天征 2016-12-12 06:45:35 | 只看该作者
全局:
stellari 发表于 2016-12-12 06:40
记3位选手分别为p1,p2,p3. 令x1, x2, x3分别为“第1,2,3次抽样产生出的随机距离”(注意,p1的起始距离 ...

请收下我的膝盖!
回复

使用道具 举报

🔗
stellari 2016-12-12 06:48:35 | 只看该作者
全局:
神罗天征 发表于 2016-12-11 03:33
请问一下这个积分怎么算的吗?

另外,刚刚忘说了,如果之前的讨论完全用概率论的式子来表示的话,就是这个样子的:

评分

参与人数 1大米 +10 收起 理由
林微熙 + 10 回答的很好!

查看全部评分

回复

使用道具 举报

🔗
myangelasuka 2016-12-12 18:39:57 | 只看该作者
全局:
snap 第二题就是在搞你啊 是三哥么?
回复

使用道具 举报

🔗
ryc111 2016-12-14 13:38:57 | 只看该作者
全局:
stellari 发表于 2016-12-11 01:11
能否分享一下python模拟的代码呢?多谢。

import random

x = 0;
y = 0;
z = 0;
for i in range(1000000):
  a = [random.random(), random.random(), random.random()]
  a.sort()
  b = [a[0], a[1]/2, a[2]/3]
  if b[0] < b[1]:
    if b[0] < b[2]:
      x += 1
    else:
      z += 1
  elif b[1] < b[2]:
    y += 1
  else:
    z += 1
print x, y, z
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表