【发布时间】:2011-01-05 12:08:58
【问题描述】:
我有两个问题:
我想生成子集的排列,例如有 20 种可能的氨基酸和 5 个可能出现的位置。可能发生的总排列是什么(在文本中)
一旦我有了这个排列列表,就会为每个排列分配某些值,我想在运行时查找任何给定的排列。想到的第一个想法是查找表,但我想知道是否有更好的方法来做到这一点。
【问题讨论】:
标签: java algorithm permutation combinations
我有两个问题:
我想生成子集的排列,例如有 20 种可能的氨基酸和 5 个可能出现的位置。可能发生的总排列是什么(在文本中)
一旦我有了这个排列列表,就会为每个排列分配某些值,我想在运行时查找任何给定的排列。想到的第一个想法是查找表,但我想知道是否有更好的方法来做到这一点。
【问题讨论】:
标签: java algorithm permutation combinations
您需要长度为 5 的组合,而不是排列。这是一个标准问题,可以用递归来解决。如果您不想自己写,请使用CombinationGenerator。
使用碱基 20 对组合进行编号(不要与碱基的化学定义混淆)。如果您要为有限的组合子集存储数据,请使用哈希表;如果您是其中的大多数,请使用查找数组。
【讨论】: