现有的大部分回答,要么用积分,要么用编程,这些都是高等教育中才会学的方法,但本问题其实是初一数学可以解决的。
问题: , ,求 的期望。
解:实际上 是由 和 确定的,变量数为 2,且由于 ,故有
在直角坐标系中,画出 和 的曲线
易见,两条直线的交点是 (1/3,1/3)。
并且所有满足条件的 x,y 都在三角形 OBC 中。
所求的 x,y 的期望值即三角形 OBC 的「重心」。
根据「重心」的性质,它在顶点和另一边中点连线的 2/3 处。
D (0,1/4),C(1/3,1/3) => G (1/9, 5/18)
所以最短一段的平均值是 1/9(次短为 5/18,最长为 11/18)。
当然了对于本问题的一般化(3->m),作图会没有那么直观,用积分算会更加直观。
彩蛋:突然发现,我 6 年前竟然回答过类似的问题。
给一个比较常规的做法,事实上有
考虑 (为什么?)
这里是因为。
.
又体积有平移不变性,所以
接下来我们完成计算
设最短的长x,中间的长y,最长的长z,由总长1m消去一个自由度,那么在xyz相图中只剩下一个二维区域,再以长短关系对该区域做约束,由于约束都是线性的,所以约束出来是一个2维的锥形,锥顶对应所有段都长1/3,由于n维锥的重心处在高的1/(n+1)处,所以答案是1/9。
把3换成n可易得答案是1/n²。
更新
随手写的东西没想到有人看,那就再尝试从一个角度解释一下这个答案吧,其实从这个过程中可以看出来如果多碎一段,带来的影响就是,最短段的长度每变化一点,这一点向其他几段的分配方式就会多一个维度,维度越高,情况数就会越向最短一段的短处聚集。
Mathematica 虽迟但到!
两个断点是符合随机分布的有序分布的,故
In [ 1 ] := Expectation [ Min [{ x1 , x2 - x1 , 1 - x2 }], { x1 , x2 } [ Distributed ] OrderDistribution [{ UniformDistribution [], 2 }, { 1 , 2 }]] Out [ 1 ] = 1 / 9
看来从数学角度考虑的答主很多了,我来写个物理性更强的。
首先,我们将问题理想化:把玻璃棒看做长L,质量m的均匀杆,它与地面碰撞时以垂直地面的速度v,角速度omega运动,且与地面成θ角度。假设地面光滑,给的冲量垂直地面向上且大小为I。
而我们可以计算出,玻璃棒内部不同位置受的冲量大小是不一样的。
把玻璃棒受的冲量沿垂直杆和平行杆两个方向分解。沿杆冲量的作用效果不是使杆折断,而是拉伸或压缩这个杆;只有垂直杆方向的冲量起着“折断杆”的作用(想像一下掰一根筷子的情景)
而垂直杆方向冲量取极值的位置有且只有一个,这个位置在杆上距离接触点2/3L处。
所以在这个模型中,它最容易摔成L/3和2L/3两段,而不是题中说的三段→_→
(如果认为垂直方向冲量最大的地方最容易断,其实接触点的冲量最大......但这一点没法“摔断”......)
放上计算过程,都是普物力学范围内的推导:
既然对这个问题感兴趣的人挺多,那就再更新一下,换了张更清晰的图展示推导过程,再进行一些极不严谨的讨论。
上面只是显示了玻璃棒在摔落的过程中哪里更容易折断。我们可以看到,杆在不同位置折断的概率一定是不一样的,所以通过纯数学的方式没法做出正确回答。
其次,即便我们知道了应力分布真如上面展示,呈现二次函数分布(在2/3L<λ<L处应力为负,应该理解成它的绝对值,即相反方向的应力),我们也不能简单地假定各处应力正比于在该处折断的概率。
但作为近似(划掉),我们不妨就这么假定。也就是断点概率分布满足:
(上面的概率分布已归一化)
按题目的假设,我们强行让这根玻璃棒再断裂一次(划掉),再假设两次断裂是同时进行的,都满足这样的概率分布(划掉)
我们按这样的概率分布在(0,1)上取两个点,算出最小值的平均:
积分算起来很麻烦,不如直接上程序模拟:
from math import * import random def f(x): if 0<=x and x<=2/3: return (1-9*(x-1/3)**2) else: return (9*(x-1/3)**2-1) def valid(x,y): return y<=f(x) cnt=0 s=0 for i in range(10000000): x1,y1=random.random(),3*random.random() x2,y2=random.random(),3*random.random() if valid(x1,y1) and valid(x2,y2): s+=min(abs(x1-x2),x1,x2,1-x1,1-x2) cnt+=1 print("count:{}
minimum average distance:{}".format(cnt,s/cnt))
跑了一次的结果:878092个有效数据点,最短距离的平均值为0.086575
如果解答/代码有问题请私聊我,感谢指正
之前解答有错误,在此订正一下。直接将暴力写出所有约束条件,使用几何概型概率模型计算。
原问题转为数学问题如下:
求
更一般地:
求
在满足得到任意 等概率的条件下(忽略材料因素引起的断裂可能性偏差),此概率问题可视作几何概型概率问题,求解满足条件区域的体积占比即可。对一般情况,
总概率空间为
该概率空间可进一步转化为以下不等式组决定的 维空间:
其中前两个为已知条件,后面 个不等式保证每个元素都不小于 。
考虑事件 , 此时事件 的概率空间由以下不等式组决定,只需把第二个不等式进一步约束为 即可。由此事件 对应的空间 由以下不等式决定:
对于 , 如下图所示。 三条直线围成的区域 表示 。 围成的区域 表示在 最小的情况下, 对应的区域。两个区域公共顶点为 ,其面积比代表了概率 。面积比可利用 得到。
一般情况下, 对应的锥体与 的锥体共顶点 ,锥体体积可由坐标比值得到。具体地,考虑使用 对应维度的坐标,其坐标值(对应上图 点的横坐标)由以下方程组决定:
容易求得此时的坐标值为 (对应上图的 点横坐标)。因此锥体体积比值为: ,
于是有 ,进而求得概率密度
从而
积分
因此即可得到 ,即最短的一段平均值为 。
数学忘光了,代码跑了下。这里设置长度为1亿,我假设分为三段,参照另一回答的计算方式,第一段随机,第二段取剩余值随机,第三段为总长减去其他两个值。如果每一段一定会有一个值,那么第一次取值范围为1~1亿-2,起码留2个单位给后两次取值,以此类推。随机方法如下
private long min(long num) { long a = (long) (Math.random() * (num - 2)) + 1; long b = (long) (Math.random() * (num - a - 1)) + 1; long c = num - a - b; if (a > b) { a = b; } return a > c ? c : a; }
循环10万次求平均值最后打印结果:
平均值为:9425171.1227800000 占比为:0.0942517112 分数分母为:10.6098869397
试了很多次都差不多这个数分母为10.6,和前面大佬分析的1/9有些差距,可能是我一定会分成三段的原因,不是数学极限情况,但是感觉差的有点多。
@xxxq 看到了你的回答,确实取值范围三段是不一致的,看了下其他回答的实现逻辑刚也调整跑了下,补一下代码和结果
private long min(long num) { //a,b为截断点,取值范围为0~1亿,允许重复 long a = (long) (Math.random() * (num + 1)); long b = (long) (Math.random() * (num + 1)); long c; if (a > b) { c = num - a; a = b > a - b ? a - b : b; } else { c = num - b; a = a > b - a ? b - a : a; } return a > c ? c : a; } 平均值为:11105392.2603500000 平均占比为:0.1110539226 分数分母为:9.0046346546