在OCaml中,我将如何编写一个需要5个参数并返回中位数的中值函数。例如med5 2 5 7 4 3
将返回。返回中位数的函数? (OCaml)
我设法使用if和else语句来写一个函数med3(返回的3个参数的值),但如果我尝试相同的技术用于5个参数:(
let med3 a b c =
if ((b<=a && c>=a) || (c<=a && b>=a)) then a
else if ((a<=b && c>=b) || (c<=b && a>=b)) then b else c;;
对于这将是可笑的复杂med5功能,我希望能够使用最小和最大函数(内置于OCaml)放弃5个参数集中的最高和最低值,然后我可以使用我已经写好的med3函数返回其余3个参数的中位数,但我该如何放弃最小和最大参数!?!?!?!?
任何帮助将不胜感激:)
除非我记错了,'med5 2 5 7 4 3'是'4',而不是'3' – Virgile
哈哈,你绝对正确的,感谢指出了这一点:) – brnby