【问题标题】:Permutations of subsets and subsequent run-time analysis子集的排列和随后的运行时分析
【发布时间】:2011-01-05 12:08:58
【问题描述】:

我有两个问题:

  1. 我想生成子集的排列,例如有 20 种可能的氨基酸和 5 个可能出现的位置。可能发生的总排列是什么(在文本中)

  2. 一旦我有了这个排列列表,就会为每个排列分配某些值,我想在运行时查找任何给定的排列。想到的第一个想法是查找表,但我想知道是否有更好的方法来做到这一点。

【问题讨论】:

    标签: java algorithm permutation combinations


    【解决方案1】:
    1. 您需要长度为 5 的组合,而不是排列。这是一个标准问题,可以用递归来解决。如果您不想自己写,请使用CombinationGenerator。

    2. 使用碱基 20 对组合进行编号(不要与碱基的化学定义混淆)。如果您要为有限的组合子集存储数据,请使用哈希表;如果您是其中的大多数,请使用查找数组。

    【讨论】:

    • 您甚至可以在仅使用几乎所有排列时使用数组,它可能仍然更有效(您必须运行性能测试才能找到阈值)。
    • 我认为这不是 OP 想要的。听起来他实际上对组合或排列感兴趣(“有 20 种可能的氨基酸和它们可能出现的 5 个位置”),但绝对不是排列。
    • @Space 这就是我的意思,我会澄清一下。 @IVlad 你说得对,我会改变的。
    • 非常感谢,您的回答真的很有帮助
    猜你喜欢
    • 2017-01-16
    • 2018-07-22
    • 2018-07-15
    • 1970-01-01
    • 2023-03-19
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多