gpt4 book ai didi

algorithm - 如何使用一些基本规则分配即时一对一通信

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:14 24 4
gpt4 key购买 nike

要求:

  • 你可以有 X 个人
    • 在邀请每个人登录之前,这 X 个人将是一个固定数量,由管理员设置。
  • 每个人的谈话次数相同。
    • 这将由管理员配置。
  • 每个人只能与另一个人交谈一次
  • 一个人不能自言自语
  • 一个人会进来,并在登录后被分配与谁交流(不是预先确定的)

例如:

  • 我们有 6 个人
  • 我们可以设置 1 到 5 之间的单向交互数。

  • 可能 1:假设我们进行 6 次单向交互
    • 每个人都将与所有其他人交谈一次。所以 A 将与 B、C、D、E 和 F 交谈

  • 可能 2:假设我们进行 2 种单向交互
    • 可能的组合 1
      • A 将与 B 和 C 交谈
      • B 将与 C 和 D 交谈
      • C 将与 D 和 E 交谈
      • D 将与 E 和 F 交谈
      • E 将与 F 和 A 交谈
      • F 将与 A 和 B 交谈
    • 可能的组合 2
      • A 将与 D 和 F 交谈
      • B 将与 C 和 E 交谈
      • C 将与 F 和 A 交谈
      • D 将与 B 和 C 交谈
      • E 将与 A 和 B 交谈
      • F 将与 D 和 E 交谈

这是我到目前为止的想法,我将解释我遇到的问题。

  • 作为用户 A,我进入并请求我可以与谁通信。
  • 它将贯穿以下步骤。
    • 出去找到任何我已经被分配与之沟通的人。
    • 现在获取所有人的集合,不包括调用用户和已分配给它的人。
    • 现在遍历这些人并计算出有多少用户正在与每个符合条件的人交谈
    • 现在,它会删除任何与最大互动量交谈过的符合条件的人。
    • 最后将从该列表中随机挑选一个人并将他们分配给我。

问题是,假设使用我的示例组合 1:

  • 用户A得到了BC
  • 用户 B 获得了 CA
  • 用户C得到AB
  • 用户D获得了CE
  • 用户 E 只有 F 作为一个选项,但需要另一个人
  • 用户 F 只有 E 作为选项,但需要另一个人
  • F 和 E 仍然需要另一个人与他们交谈。

我该怎么做才能避免我的问题?

最佳答案

我认为问题可能与“登录时分配”标准有关(除非我误解了它)。例如,当第一个人 (A) 登录时,没有其他人可以“分配”给他们。或者,在每个人都被交谈一次并且你有 3 个人(A、B、C)已经登录的情况下

 A->B 
B->C
C->A

是一个解决方案。但是,如果 D 现在稍后登录,则没有人可以与他们交谈,因此无法满足 D 的要求。

另一方面,如果管理员可以等到所有人都已登录,那么对于 p 个人(标记为 1,2,3...p)每个人都需要与 q <= p 其他人进行通信的简单解决方案是:

 for i = 1 to p
for j = 1 to q
i communicates with (i+j) mod p

如果您希望每次人们登录时都有不同的通信集,那么只需将标签 1..p 随机分配给人员 A、B...

关于algorithm - 如何使用一些基本规则分配即时一对一通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com