パズル万華鏡

面白いパズルの紹介と解説をします。

幾何的確率問題(4)・実験結果

 幾何的確率問題(4)・実験結果を示します。

問題(4)・実験結果
f:id:isemba:20161219103456j:plain

' << GPP411.bas >>
' Tiny Basic
' 問題(4)
'
' 初期設定。
Randomize 123
PAI=4*Atn(1.0): ' πの値。
'
Print"実験回数   割合"
'
' コンピュータ実験。
Do
  ' 実験回数NMAXを読み込む。
  Read NMAX
  If NMAX <= 0 Then Exit Do
  '
  ' 鋭角三角形となる回数:COUNT。
  COUNT=0
  '
  For N=1 To NMAX
    ' 点Pの座標(X1,Y1)を求める。
    T=2*PAI*Rnd
    X1=Cos(T)
    Y1=Sin(T)
    ' 点Qの座標(X2,Y2)を求める。
    T=2*PAI*Rnd
    X2=Cos(T)
    Y2=Sin(T)
    '
    ' 点Rの座標(X3,Y3)を求める。
    T=2*PAI*Rnd
    X3=Cos(T)
    Y3=Sin(T)
    '
    ' 辺PQ,QR,RPを求める。
    PQ=Sqr((X1-X2)^2+(Y1-Y2)^2)
    QR=Sqr((X2-X3)^2+(Y2-Y3)^2)
    RP=Sqr((X3-X1)^2+(Y3-Y1)^2)
    '
    ' 最長の辺MAXLを求める。
    MAXL=PQ
    If QR > MAXL Then MAXL=QR
    If RP > MAXL Then MAXL=RP
    '
    ' 最長の辺に向かい合う角度の余弦Aを余弦定理で求める。
    ' A<=0なら、鋭角(直角)三角形、A>0なら、鈍角三角形。
    If MAXL = PQ Then
      A=(QR^2+RP^2-PQ^2)/(2*QR*RP)
    End If
    If MAXL = QR Then
      A=(PQ^2+RP^2-QR^2)/(2*PQ*RP)
    End If
    If MAXL = RP Then
      A=(PQ^2+QR^2-RP^2)/(2*PQ*QR)
    End If
    '
    If A >= 0 Then COUNT=COUNT+1
  Next N
  '
  ' 結果の表示。
  Print Using"########";NMAX;
  Print Using"  ##.#####";COUNT/NMAX
Loop
End
'
' データ。
Data 1000, 10000, 100000, 1000000, 0

f:id:isemba:20161219103620j:plain
f:id:isemba:20161219103631j:plain