Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 子集置换和后续运行时分析_Java_Algorithm_Permutation_Combinations - Fatal编程技术网

Java 子集置换和后续运行时分析

Java 子集置换和后续运行时分析,java,algorithm,permutation,combinations,Java,Algorithm,Permutation,Combinations,我有两个问题: 我想生成子集的排列,例如,有20个可能的氨基酸和5个可能出现的位置。(在文本中)可能发生的总排列是什么 一旦我有了这个排列列表,某些值将分配给每个排列,我想在运行时查找任何给定的排列。首先想到的是一个查找表,但我想知道是否有更好的方法 您需要长度为5的组合,而不是排列。这是一个标准问题,可以通过递归来解决。如果您不想自己写,请使用 使用碱20对组合进行编号(不要与碱的化学定义混淆)。如果要存储有限组合子集的数据,请使用哈希表;如果要存储大多数组合的数据,请使用查找数组 你甚至可以

我有两个问题:

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

  • 一旦我有了这个排列列表,某些值将分配给每个排列,我想在运行时查找任何给定的排列。首先想到的是一个查找表,但我想知道是否有更好的方法

  • 您需要长度为5的组合,而不是排列。这是一个标准问题,可以通过递归来解决。如果您不想自己写,请使用

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


  • 你甚至可以在只使用几乎所有排列的情况下使用数组,它可能仍然更有效(你必须运行性能测试才能找到阈值)。我认为这不是OP想要的。听起来他实际上对组合或排列感兴趣(“有20种可能的氨基酸和5种可能出现的位置”),但绝对不是排列。@这就是我的意思,我会澄清的@艾夫拉德:你说得对,我会改变的。非常感谢,你的回答真的很有帮助