Drop

바늘의 총 수(N)

평행선과 만나는 바늘의 수(S)

상대도수(S/N)

\textrm{Buffon's niddle}

평행선이 그어진 마루 바닥에 바늘을 떨어뜨렸을 때,

바늘이 마루 바닥의 평행선과 닿을 확률은 얼마일까요?

A = (-0.9787446504992872, -1.0161892901618916)
B = (16.021255349500713, -1.0161892901618916)
C = (16.021255349500713, 11.983810709838108)
D = (-0.9787446504992872, 11.983810709838108)
다각형1, a, b, c, d = Polygon(A, B, C, D)
Line = Sequence(Segment[(0, t), (15, t)], t, 0, 11)
Mpoint = Sequence((RandomUniform[0, 15], RandomUniform[-0.5, 11.5]), t, 1, 3000)
θ = Sequence(RandomUniform[0, π], t, 1, 3000)
k = 1 (slider from 0.2 to 2, step 0.1)
niddle = Sequence(Segment[(x(Element[Mpoint, t]) - (k / 2 * cos(Element[θ, t])), y(Element[Mpoint, t]) - (k / 2 * sin(Element[θ, t]))), (x(Element[Mpoint, t]) + (k / 2 * cos(Element[θ, t])), y(Element[Mpoint, t]) + (k / 2 * sin(Element[θ, t])))], t, 1, 3000)
Crossline = Sequence(If[floor(y(Element[Mpoint, t]) - (k / 2 * sin(Element[θ, t]))) ≟ floor(y(Element[Mpoint, t]) + (k / 2 * sin(Element[θ, t]))), 0, 1], t, 1, 3000)
Ncross = CountIf(x ≟ 1, Crossline)
Total = CountIf(x ≟ 0 ∨ x ≟ 1, Crossline)
Ratio: Ncross / Total
B1: Total
B2: Ncross
B3: Ncross / Total
텍스트1 = TableText({{A1, B1}, {A2, B2}, {A3, B3}}, "|_")