Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
25
Task/Averages-Mean-angle/OCaml/averages-mean-angle-1.ocaml
Normal file
25
Task/Averages-Mean-angle/OCaml/averages-mean-angle-1.ocaml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
let pi = 3.14159_26535_89793_23846_2643
|
||||
|
||||
let deg2rad d =
|
||||
d *. pi /. 180.0
|
||||
|
||||
let rad2deg r =
|
||||
r *. 180.0 /. pi
|
||||
|
||||
let mean_angle angles =
|
||||
let rad_angles = List.map deg2rad angles in
|
||||
let sum_sin = List.fold_left (fun sum a -> sum +. sin a) 0.0 rad_angles
|
||||
and sum_cos = List.fold_left (fun sum a -> sum +. cos a) 0.0 rad_angles
|
||||
in
|
||||
rad2deg (atan2 sum_sin sum_cos)
|
||||
|
||||
let test angles =
|
||||
Printf.printf "The mean angle of [%s] is: %g degrees\n"
|
||||
(String.concat "; " (List.map (Printf.sprintf "%g") angles))
|
||||
(mean_angle angles)
|
||||
|
||||
let () =
|
||||
test [350.0; 10.0];
|
||||
test [90.0; 180.0; 270.0; 360.0];
|
||||
test [10.0; 20.0; 30.0];
|
||||
;;
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
open Complex
|
||||
|
||||
let mean_angle angles =
|
||||
let sum =
|
||||
List.fold_left (fun sum a -> add sum (polar 1.0 (deg2rad a))) zero angles
|
||||
in
|
||||
rad2deg (arg sum)
|
||||
Loading…
Add table
Add a link
Reference in a new issue