Algorithm 获取字母可能有变体的单词的所有排列

Algorithm 获取字母可能有变体的单词的所有排列,algorithm,permutation,Algorithm,Permutation,我正在寻找解决以下问题的伪代码算法 我想得到一个词的所有排列。 在字母表中,每个字母都可能有变体。例如,在法语中,字母e也可以是èèè。 其他字母也一样。。。aá–ä等 现在,对于任何给定的单词,我想列出所有可能的排列,以及所有字母的所有变体 输入是一个单词和一个所有字母及其变体(如果有的话)。以下是一些基本伪代码: 1. Generate a list Perm[1...n] of all permutations without considering variants. 2. Fo

我正在寻找解决以下问题的伪代码算法

我想得到一个词的所有排列。 在字母表中,每个字母都可能有变体。例如,在法语中,字母e也可以是èèè。 其他字母也一样。。。aá–ä等

现在,对于任何给定的单词,我想列出所有可能的排列,以及所有字母的所有变体


输入是一个单词和一个所有字母及其变体(如果有的话)。

以下是一些基本伪代码:

  1. Generate a list Perm[1...n] of all permutations without considering variants.
  2. For i = 1 to n do
  3.  For j = 1 to |Perm[i]| do
  4.   For k = 1 to #variants(Perm[i][j])
  5.    print Perm[i][1...j-1] (variant #k) Perm[i][j+1...|Perm[i]|]

换句话说,在不考虑变量的情况下生成置换(这个问题已经处理过多次了,请寻找“生成置换”)。然后,对于每个排列,查看每个字母,对于每个字母的排列,打印单词,并用其变体替换字母。

以下是一些基本伪代码:

  1. Generate a list Perm[1...n] of all permutations without considering variants.
  2. For i = 1 to n do
  3.  For j = 1 to |Perm[i]| do
  4.   For k = 1 to #variants(Perm[i][j])
  5.    print Perm[i][1...j-1] (variant #k) Perm[i][j+1...|Perm[i]|]

换句话说,在不考虑变量的情况下生成置换(这个问题已经处理过多次了,请寻找“生成置换”)。然后,对于每个排列,查看每个字母,对于每个字母的排列,打印单词,并将字母替换为其变体。

我不确定您想要它做什么,我可以看到您使用它生成备用搜索列表。但是如果这个词很长,可以想象它包含了大量的排列。最好存储一个单词的标准化版本,并将搜索词标准化为字符的基本变体。好吧,我想反过来说。用户可以在规范化版本中键入单词n,我需要检查是否存在有效的变体。我仍然会通过规范化版本执行此操作。将变体与标准化版本存储在存储此类内容的任何位置。这会让事情变得更容易一些。希望您使用的任何语言都会有某种代码转换库来自动生成标准化版本,可能是iconv。我不确定您想要它做什么,我可以看到您使用它来生成备用搜索列表。但是如果这个词很长,可以想象它包含了大量的排列。最好存储一个单词的标准化版本,并将搜索词标准化为字符的基本变体。好吧,我想反过来说。用户可以在规范化版本中键入单词n,我需要检查是否存在有效的变体。我仍然会通过规范化版本执行此操作。将变体与标准化版本存储在存储此类内容的任何位置。这会让事情变得更容易一些。希望您使用的任何语言都会有某种代码转换库来自动生成标准化版本,可能是iconv。