gpt4 book ai didi

f# - 如何生成指数权重数组?

转载 作者:行者123 更新时间:2023-12-02 05:55:02 24 4
gpt4 key购买 nike

我正在尝试“展开”-(我认为),从一个初始值开始,反复对其应用一些函数,然后得到一个序列作为结果。

在这个例子中,我试图从 1.0 开始,将它乘以 .80,并重复 4 次,这样我最终得到一个数组 = [| 1.0; 0.80; 0.64; 0.512 |]

VS 2010 说我以一种无效的方式使用“i”,而且可变值不能被闭包捕获——所以这个函数不能编译。任何人都可以建议一种实际有效的干净方法吗?谢谢。

let expSeries seed fade n = 
//take see and repeatedly multiply it by the fade factor n times...
let mutable i = 0;
let mutable weight = seed;
[| while(i < n) do
yield weight;
weight <- weight * fade |]

let testWeights = expSeries 1.0 0.80 4

最佳答案

let exp_series seed fade n =  
Array.init (n) (fun i -> seed * fade ** (float i))

关于f# - 如何生成指数权重数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364193/

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