我有两个问题:
我想生成子集的排列,例如有20种可能的氨基酸和5种可能发生的位置。可能发生的总排列(文本中)
一旦我有了这个排列列表,每个人都会得到某些值,我想在运行时查找任何给定的排列。想到的第一个想法是一个查找表,但我想知道是否有更好的方法来做到这一点。
答案 0 :(得分:5)
您需要长度为5的组合,而不是排列组合。这是一个标准问题,可以通过递归来解决。如果您不想自己编写,请使用CombinationGenerator
。
使用基数20对组合进行编号(不要与碱的化学定义混淆)。如果您要为有限的组合子集存储数据,请使用哈希表;如果您将大部分组合,则使用查找数组。