より大きい三角形(確率)
Aug 21 2020
これは私の前の質問のフォローアップです。しかし、別の問題。そして、これはもっと興味深い答えがあるはずです。私はこの問題にどのように取り組むかを本当に知りませんが、それでも解決策に到達するので、もう一度助けていただければ幸いです。
質問:
半径のある円があります $R$。この円の中で3つのポイントがランダムに選択された場合。3つの点がより大きな面積の三角形を形成する確率はどれくらいですか$\displaystyle \frac{R^2}{5}$?
編集:誰かがうまくいくかもしれないアプローチを試みているか、おそらく見つけましたか?これまでに見た同様の問題が、これを解決するためのガイドとして役立つ可能性がありますか?何が難しいと思いますか?文字通りどこから始めればいいのかわからない。
回答
1 ploosu2 Aug 22 2020 at 19:48
これは答えではなく、単なるシミュレーションです。おおよその値を取得します
$$P(A\geq \frac{1}{5}) \approx 0.45$$
誰かがそれをチェックしたい場合は、これが私のセージコードです。mathworldの平均値と一致します
def randPt():
r = random()**0.5 #sqrt to make it uniform
a = random()*2*float(pi)
return (r*cos(a), r*sin(a))
def simuTriArea():
a,b,c = [randPt() for _ in range(3)]
return 0.5*abs(a[0]*b[1] + b[0]*c[1] + c[0]*a[1] - b[0]*a[1] - c[0]*b[1] - a[0]*c[1])
#points([randPt() for _ in range(1000)]).show(aspect_ratio=1)
simuN = 100000
triAreas = [simuTriArea() for _ in range(simuN)]
print ("simulated P(A>0.2): %f" % (sum(1 for a in triAreas if a>0.2) / float(simuN),) )
print ("mean A: %f" %mean(triAreas))
graph = Graphics()
graph += histogram(triAreas, density=True, bins=50)
maxArea = float(3*3**0.5 / 4)
#graph += plot(???, xmin=0, xmax=maxArea)
graph.show()