如何将多集随机分成预定大小的集合,而不重复?

时间:2018-08-28 16:02:26

标签: c# random combinatorics multiset

我正在寻求有关我不知道该如何处理的问题的帮助。我猜想已经有人问过类似的问题,但是我无法以正确的方式在Google上搜索它。

我想做的是使用C#制作FFXII中的板子的随机化器,并且有一部分我不知道如何解决的问题:随机化。

我在这里简化一点:有12个包含许可证的板,您可以解锁这些许可证来装备东西或使用魔术。板位可能是空的,单个许可证可能不会在一个板上出现两次,但如果许可证在不同的板上,则许可证可能会出现多次。每个董事会还拥有不同数量的许可证。主板上总共有1626个许可证,唯一许可证的数量约为350个。我列出了所有许可证,以及它们在原始主板设置中出现的次数。 (如果您正常玩游戏,您将获得一个。)

我想从原始游戏的许可出现的多组中生成12个预定大小的随机许可列表(无重复),以寻求帮助。我特别担心的是,该算法可能会陷入一种状态,即重复元素的数量超过了为这些元素提供空间的集合。当然,这12个列表的总大小等于多集中元素的数量。 (我自己将它们放在板上,这不太困难。)

0 个答案:

没有答案