【问题标题】:Probabilistic forwarding of messages to a subset of servers将消息概率转发到服务器子集
【发布时间】:2020-02-07 06:37:07
【问题描述】:

n 服务器 (n >= 1),我们希望将一部分传入请求(使用介于 0 和 1 之间的常量 ratio)转发到这些服务器。

目标是平均总共有n x ratio 转发消息,其中选择每个服务器作为接收请求的目标的机会大致相同。

简单的解决方案是使用ratio 过滤传入的请求,然后将每个请求转发到所有n 服务器,这给了我们平均n x ratio。我们实际需要的是每次将一部分请求转发到可用服务器的子集,仍然有n x ratio作为平均转发请求数。

有人有解决办法吗?

【问题讨论】:

    标签: algorithm probability


    【解决方案1】:

    将每个请求转发到服务器中的n * ratio

    如果n * ratio = k 很可能不是整数,则转发到floor(k)ceil(k) 服务器,转发到ceil(k) 的概率为k - floor(k)

    在选择服务器方面,只需执行Fisher-Yates shuffle,直到您选择了随机选择的服务器数量。

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2019-01-06
      相关资源
      最近更新 更多