生成所有字母组合

时间:2012-03-08 14:59:00

标签: c# algorithm combinations

我正在尝试构建一个可以加扰输入字母的应用。我找到了可以重新排列的代码示例:

abc加入cba, acb等。

我想要做的就是上面的内容,但也可以只使用输入的字母输出更短的组合。

所以我想要的应用可以将abc排序为abcacb等。

我意识到这可能需要某种算法,但我无法在网上找到任何相关内容。

谢谢!

4 个答案:

答案 0 :(得分:2)

你需要在组合学中使用“组合”的概念 - 它将排列与子集的选择结合起来:

Algorithm to return all combinations of k elements from n

答案 1 :(得分:0)

你愿意在php中这样做吗?如果是这样 -

 array_rand ($array, $num);

功能会很好用。它的第一个参数是有问题的数组: 一个。制作一个A-Z阵列 第二个参数是要选择多少'字母'或数组组件 湾使用方法:

 rand($min, $max);

生成1到26之间的随机数(字母表中的字符)。 C。根据需要多次循环此功能。

答案 2 :(得分:0)

如果你知道如何获得所有可用字母的所有组合,那么只需将空格字符添加到可能的字符列表中并获取所有组合,修剪左边的任何内容并包括空格(并忽略空的情况) 。

例如,对于单词IF,您有'IF'和'FI'。如果您尽可能地对待空间,那么

' IF', ' FI', 'I F', 'F I', 'IF ', 'FI '

,修剪剩下的所有内容,包括空格,变为

'IF', 'FI', 'F', 'I', '', ''

忽略空案例,这些是您可能的组合,包括较短的单词。

答案 3 :(得分:-2)

执行此操作,直到字符串循环遍历所有索引 索引处的字符串等于想要的数字模数基数加字符集代码 想要的数字等于通缉数除以数字基数 继续。