【发布时间】:2013-09-23 23:59:10
【问题描述】:
有一个代码:
//e = 1/2*Sum((yi -di)^2)
let error y d =
let map =
Array.map2 (fun y d -> (y - d) ** 2.0) y d
let sum =
Array.sum map
(sum / 2.0)
let error2 y d =
Array.map2 (fun y d -> (y - d) ** 2.0) y d
|> Array.sum
|> (/) 2.0
据我了解,这些函数应该产生相同的结果,但结果却有很大差异。谁能解释一下?
附言简化示例:
let test = [|1..10|]
let res = test
|> Array.sum
|> (/) 5
我希望 test = 11 (sum(1..10) = 55 然后 55 / 5) 但在 Array.sum 管道无法按我想要的方式工作之后(结果 test = 0)。
【问题讨论】: