ruby 1.9.3 で、任意の文字セットからn個の文字を含むすべての単語を検索するプログラムを作成しようとしています。たとえば、文字 [ b、a、h、s、v、i、e、y、k、s、a ] と n = 5 が与えられた場合、次のことができる 5 文字の単語をすべて見つける必要があります。それらの文字のみを使用して作成されます。http://wordlist.sourceforge.net/の 2of4brif.txt 単語リストを使用して(英国の単語とスペルも含めるため)、次のコードを試しました。
a = %w[b a h s v i e y k s a]
a.permutation(5).map(&:join).each do |x|
File.open('2of4brif.txt').each_line do |line|
puts line if line.match(/^[#{x}]+$/)
end
end
これは何もしません (フリーズしたかのように、エラー メッセージも出力もありません)。また、次のスレッドに基づいてバリエーションを試みました。
Rubyを使用してテキストファイルで正確に一致する文字列を検索するには?
私が試したすべてのバリエーションは、次のいずれかになりました。
1) 凍結;
2) 5 文字の順列を含むリストからすべての単語を出力します (これが実行されていると思います。何千もの出力された単語をすべて確認したわけではありません)。また
3) リスト内の単語内で見つかったすべての 5 文字の順列を出力します (繰り返しますが、それが実行されていると思います)。
繰り返しますが、私は5 文字の順列を含む単語を探しているのではなく、それ自体が完全な単語である 5 文字の順列を探しているので、テキスト ファイルの行は、順列との完全一致。
私は何を間違っていますか?前もって感謝します!