首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离线环境下分散消息广播所需的算法(通过电话)

离线环境下分散消息广播所需的算法(通过电话)
EN

Stack Overflow用户
提问于 2011-07-06 02:04:14
回答 1查看 64关注 0票数 0

该系统应允许以快速、可靠和分散的方式通过电话(语音或文本)向预先注册的社区广播信息。消息根据预定义的规则和联系人列表在成员之间转发。

筹备阶段是在线的:

“广播公司”

  1. 正在打开一个“邮件列表”(
  2. people),通过注册他们的电话号码(和安全短语)
  3. 每人获得一份其他成员的2-4个号码的联系列表(连同他们的安全短语)。

播音员通过打电话给他的联系人名单来启动一条消息。广播规则很简单:当您接到电话(并听到您的安全短语)时,您将以同样的方式收听消息并将其转发到联系人列表中。

我的问题是-如何以一种优化的方式链接成员(意思是如何建立他们的联系人名单):

  1. 快速分发消息(树的最低级别)
  2. 在每个列表中不超过4个联系人(更好的2个或3个)
  3. 某种程度的冗余(因此如果一个成员不可用,则不会切断整个分支)。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-06 07:34:25

简单的回答,把一棵树分支出来,然后让每个树枝上的“叶子”与其他枝条上的所有非叶连接起来。

让我提供更多的解释。假设你有15个人。然后按照以下方式开始:

代码语言:javascript
复制
{
  1: [2, 3],
  2: [4, 5],
  3: [6, 7],
  4: [8, 9],
  5: [10, 11],
  6: [12, 13],
  7: [14, 15],

然后,低于2的叶子是8,9,10,11,低于3的叶子是12,13,14,15。所以现在你把它们连接起来:

代码语言:javascript
复制
    8: [3, 6],
    9: [7, 12],
    10: [13, 14],
    11: [15],
    12: [2, 4],
    13: [5, 8],
    14: [9, 10],
    15: [11]
  }

所以你在2下面有一棵树,3下面有一棵树,如果一边有什么遗漏了,它就连接到另一边。

如果增加分枝因子,那么树的叶子部分就会增加,这使得一切都更容易被多重连接。(它还减少了根到任何元素的距离。)

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

https://stackoverflow.com/questions/6590816

复制
相关文章

相似问题

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