数组的分布式概率 - Javascript

Distributed probability of an array - Javascript

提问人:user3465632 提问时间:10/8/2021 更新时间:10/8/2021 访问量:144

问:

给定此数组

{"easy"=>85%, "medium"=>10%, "hard"=>3%, "very hard"=>2%}

我必须添加一个数量,并通过获得它的概率来分配可能的结果。

结果示例:

Added 10 "amounts"
Result:
Easy -> 8 amounts
Medium -> 2 amounts
Hard -> 0 amounts
very hard-> 0 amounts

在没有大量假设和计算、任何公式的情况下做到这一点的最佳方法是什么?

JavaScript jQuery 数学

评论


答:

1赞 Mulan 10/8/2021 #1

您可以使用接受对象输入的泛型函数来执行此操作 -map

const map = (t, f) =>
  Object.fromEntries(Object.entries(t).map(([k,v]) => [k,f(v)]))

const amounts = (t, n) =>
  map(t, v => Math.round(n * v)) // <- use `map` here

const input =
  {easy:0.85, medium:0.1, hard:0.03, vhard:0.02}
  
console.log(amounts(input, 10))

{
  "easy": 9,
  "medium": 1,
  "hard": 0,
  "vhard": 0
}

评论

0赞 user3465632 10/8/2021
完美的解决方案!