【问题标题】:splitting a reward across different users based on linked variable根据链接变量在不同用户之间分配奖励
【发布时间】:2020-09-02 01:04:24
【问题描述】:

假设我有用户 1、用户 2 和用户 3。用户 1 有 10 倍,用户 2 有 50 倍,用户 3 有 40 倍。有奖励,奖励为1y。如何根据与每个用户相关的变量相应地分配奖励?用户数据存储在 sqlite 数据库中。

【问题讨论】:

  • 你的意思是把 y 除以 100x 并分别给它们 10%、50% 和 40%?
  • 是的,这就是我想要的,但我不知道该怎么做

标签: javascript node.js discord discord.js better-sqlite3


【解决方案1】:

试试这个:

const users = [
  {name: 'user 1', weight: 10},
  {name: 'user 2', weight: 50},
  {name: 'user 3', weight: 40}
]
const reward = 200

const totalWeight = users.reduce((total, {weight}) => total += weight, 0)
const splitReward = users.reduce((obj, {name, weight}) => {
  obj[name] = reward * weight / totalWeight
  return obj
}, {})
console.log(splitReward)

【讨论】:

    【解决方案2】:

    我无法发表评论,因为我没有足够的声誉,所以我将其发布为答案

    根据你的说法,

    100x of reward = 1y;
    

    所以对于拥有 1x 的用户的奖励是,

    1x of reward = 1y / 100;
    

    例如,如果一个用户获得了 40 倍的奖励,那么

    40x reward = 1y / 100 * 40
    

    您可以像这样计算 x 的任何乘数的奖励

    (reward_multiplier)x reward = 1y / 100 * (reward_multiplier)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      相关资源
      最近更新 更多