首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一个函数允许将列表与rnd:加权一表获得的对应值相加?(网络徽标)

是否有一个函数允许将列表与rnd:加权一表获得的对应值相加?(网络徽标)
EN

Stack Overflow用户
提问于 2022-06-25 08:27:45
回答 1查看 37关注 0票数 1

我有一个包含四个值的列表。然后,我创建了一个由四个1的数组组成的数组,其中包括它们的概率:

代码语言:javascript
运行
复制
set startingcharact (list pricered qualityred innovationred sustainabred)
set probs-impr-red [[1 0.1] [1 0.1] [1 0.3] [1 0.5]]

基本上,我想要的是“更新”startingcharact列表,方法是将使用rnd扩展的特定函数选择的1添加到具有相同索引的特性中。因此,例如,如果选择了列表的前1,我希望有: pricered +1。我尝试使用map函数来实现这一点,但是显然我得到了一个错误,因为我试图用一个值对一个列表进行求和。我在这里所做的是:

代码语言:javascript
运行
复制
set startingcharact (map + startingcharact first rnd:weighted-one-of-list probs-impr-red last)
EN

Stack Overflow用户

回答已采纳

发布于 2022-06-25 17:26:03

我可以想到两种方法,但都涉及到改变

代码语言:javascript
运行
复制
set probs-impr-red [[1 0.1] [1 0.1] [1 0.3] [1 0.5]]

代码语言:javascript
运行
复制
set probs-impr-red [[0 0.1] [1 0.1] [2 0.3] [3 0.5]]

当您试图在startingcharact中找到正确的索引时。在那之后,

代码语言:javascript
运行
复制
let z replace-item (first rnd:weighted-one-of-list probs-impr-red [a -> last a]) [0 0 0 0]  1
set startingcharact (map [[a b] -> a + b] startingcharact z)

或者,更直接地说,

代码语言:javascript
运行
复制
let idx first rnd:weighted-one-of-list probs-impr-red [a -> last a]
set startingcharact replace-item idx startingcharact (item idx startingcharact + 1)

我相信可能会有更优雅的东西,但我认为这是可行的(尽管警告说它没有经过测试)。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72752370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档