gpt4 book ai didi

language-agnostic - 使用折叠的平均值

转载 作者:行者123 更新时间:2023-12-04 07:46:01 25 4
gpt4 key购买 nike

我将如何使用 map 和 reduce 计算数字列表的平均值。

理想情况下,我想在列表上调用 reduce 并获得平均返回。您可以选择先映射和过滤该列表。

一个骨架 LISP 尝试:

(defun average (list)
(reduce ... list))

一个骨架 JS 尝试:
function average (array) {
return array.reduce(function() {
..
}, 0);
}

如果您用某种语言发布带有实际代码的答案,请解释它,就好像我是该语言的初学者一样(我可能是)。

我想避免琐碎的答案
function average (array) {
return sum(array) / array.length;
}

这在最后使用除法而不是减少语句。我认为这是“作弊”。

[[ 编辑 ]]

解决了我自己的问题。如果有人有使用 LISP 或 Haskell 的语法糖的优雅解决方案,我会感兴趣。

最佳答案

正如@abesto 提到的,它需要一个迭代算法。

Let counter be 0 
For each [value, index] in list
let sum be (counter * index) + value
let counter be sum / (index + 1)

return counter

一个 javascript 实现将是
var average = function(list) { 
// returns counter
return list.reduce(function(memo, val, key) {
// memo is counter
// memo * key + val is sum. sum / index is counter, counter is returned
return ((memo * key) + val) / (key + 1)
// let counter be 0
}, 0);
}

关于language-agnostic - 使用折叠的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5983909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com