package main import . "fmt" import . "math" func main() { var AB,BC,CA float64 Scan(&AB,&BC,&CA) cosA := (AB*AB+CA*CA-BC*BC)/(2*AB*CA) cosB := (AB*AB+BC*BC-CA*CA)/(2*AB*BC) cosC := (BC*BC+CA*CA-AB*AB)/(2*BC*CA) ans := 0.0 cnt := 0 for x := 1; x < 100; x++ { for y := 1; y < 100; y++ { for z := 1; z < 100; z++ { AP := float64(x)*AB/100 BQ := float64(y)*BC/100 CR := float64(z)*CA/100 PB := AB-AP QC := BC-BQ RA := CA-CR RP2 := AP*AP+RA*RA-2*AP*RA*cosA PQ2 := PB*PB+BQ*BQ-2*PB*BQ*cosB QR2 := QC*QC+CR*CR-2*QC*CR*cosC ss := Sqrt((RP2+PQ2+QR2)*(RP2+PQ2+QR2)-2*(RP2*RP2+PQ2*PQ2+QR2*QR2))/4 ans += ss cnt++ }}} ans /= float64(cnt) Println(ans) } /* 考察 まるでわからん 余弦定理とヘロンの公式で 雑なサンプリングでの期待値を計算 WA必至 */