0

我正在从不同的部分构建一串文本。组 A + 组 B + 组 C + 组 D。文本按此确切顺序放在一起。每个句子都是独一无二的。

我从每个组中随机抽取一个句子并将它们放在一起,因此唯一文本的总组合将是 A*B*C*D,其中 A、B、C、D 是各自组中的句子数。

我的问题是我如何跟踪我没有以这种方式生成重复项以及何时知道我已经用完了所有可能的组合?

将所有可能的组合存储在某处似乎是一种相当低效的方法。那么我有什么选择呢?

4

1 回答 1

0

当从每个组中提取随机文本字符串时,只需将组内句子的起始位置连同长度一起存储到一个容器中,如字典或 HashSet。这将作为容器的关键。如果每组中的句子数量足够少,您也许可以将数据打包成一个整数或长整数值,否则为它定义一个结构或类。代码应在容器中查看生成的随机组合是否已被使用。如果它已被使用,则循环直到找到唯一的。如果组合的总数足够小,以至于用户可能会遍历所有组合,则预先计算总计数并检查容器是否达到该计数,在这种情况下,应该执行某种退出处理。

于 2013-07-30T14:26:32.257 回答