0

単語のすべての可能な組み合わせを生成するための (最適な) アルゴリズムを探しています。

例えば:

loveという単語を指定すると、次のように出力されます。

生成された単語: 24 elov elvo eolv eovl evlo evol leov levo loev love lveo lvoe oelv oevl olev olve ovel ovle velo veol vleo vloe voel vole

単語bellを指定すると(繰り返しlに注意してください)、次のように出力されます。

生成された単語: 12 bell blel blle ebll elbl ellb lbel lble lebl lelb llbe lleb

特定の単語のすべての組み合わせを生成する独自のアルゴリズムがあります。私は基本的に組み合わせツリーを実装しています。これははるかに包括的ですが、多くのスペースと時間を消費します。

4

3 に答える 3

1
  1. 単語の文字の総数 n を取り、n! を見つけます。
  2. 各文字の出現回数を数えます。複数回繰り返される文字ごとに、(繰り返し回数) で割ります!

例: 「バナナ」

nが2つ、aが3つ、全部で6文字

答え = 6!/(2!*3!) = 60

于 2013-07-17T20:16:26.217 に答える
0

長い間、私はついに私の質問に対する答えを得ました。私はプログラミング言語として PHP を使用し (これは私の選択であり、他にはないため)、Pear Package: Math Combinatoricsを使用しました。

于 2015-02-16T14:28:21.383 に答える