我正在尝试构建一个可以加扰输入字母的应用。我找到了可以重新排列的代码示例:
abc
加入cba, acb
等。
我想要做的就是上面的内容,但也可以只使用输入的字母输出更短的组合。
所以我想要的应用可以将abc排序为a
,bc
,acb
等。
我意识到这可能需要某种算法,但我无法在网上找到任何相关内容。
谢谢!
答案 0 :(得分:2)
你需要在组合学中使用“组合”的概念 - 它将排列与子集的选择结合起来:
答案 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)
执行此操作,直到字符串循环遍历所有索引 索引处的字符串等于想要的数字模数基数加字符集代码 想要的数字等于通缉数除以数字基数 继续。