防止关系

我正在做一个简单的游戏来评估用户的偏好几种风格。 有C类,游戏由R轮比较。 在每一轮,用户被呈现一个[伪随机select]单一的代表性的图像从每个S类,并select一个是“圆的赢家”。 在R轮结束时,任何类别之间都不可能有联系(即其中一个类别必须具有比其他所有类别更高的分数)。

例如,假设我有3个class级(传统,当代,另类),我想运行一个5轮比赛,每轮比较2个class级。

我正在寻找一种algorithm来为每个类提供尽可能均衡的采样,但是这样就不可能以平局结束第五轮。

也许一种不同的方法会有所帮助:你基本上是一个“胜利者”之后,所以在一对一运动中使用的“阶梯”方法可能就是你所追求的。 每个select都是梯子上的一个梯级,相邻的select可以竞争,赢家交换位置。 这确实依赖于可能是随机的某种初始sorting。

例如对于C = 3类(a,b,c),其中S = 2个select并且R = 5个循环

开始时:(上)cbc(下)

  1. a vs b。 b胜=> bac
  2. c vs a。 c胜=> bca
  3. b vs c。 b胜=> bca
  4. c vs a。 胜利=> bac(玩家可以变幻莫测!)
  5. b vs a。 b胜=> bac(所以b是总冠军!)

不可否认的是,玩家可能会不止一次地得到相同的select,但是你没有得到一个平局,在上面的例子中,5轮应该是足够的,允许随机放置的底部类“浮动”到最佳。

无论如何,希望这有助于!

如何修复R? 玩家是否会注意到,如果在经过一轮比较之后,您是通过一系列直接比较绑定类来结束序列的?

比方说R是10.在10轮之后,你有A和B并列。 难道你不能做一个A和B轮迫使直接比较?

如果R时常变化,这样会更好,这样当你需要额外的几轮淘汰赛的时候就可以隐藏场合。

你的第一个问题是,以你的3个class级和5个回合为例,你不能select五个比较,其中三个class级中的每一个都具有相同的获胜机会,给予用户随机select。 这是因为每轮5轮* 2的select不是class数的倍数。

不幸的是,解决这个问题并使其公平就意味着你几乎总是以一条领带结束。 我能想到的唯一的例外是两个class和奇数轮。 除此之外,我不认为有任何方法来操纵它,所以如果不添加无限数量的额外轮次或偏向您呈现给用户的select,则不可能连接。

当然,如果这些课程显着不同,而且轮次数很高,那么实际上就不太可能获得平局。 如果你需要select一个赢家,你总是可以随便在随后的class级之间进行select。