私は3から20文字の単語のデータベースを持っています。私は、より大きな単語の中に含まれている小さな単語のすべてを見つけるPHPのコードを作成したいと思います。たとえば、「内向き」という単語には「雨」、「勝利」、「除外」などの単語があります。パズル解決:PHPの大きな単語内のすべての単語を見つける
最初に、単語表にフィールドを追加することを考えました(Words3〜Words20、例えば、 "rally"は10000000000200000100000010:文字Aのインスタンス1、文字Bのインスタンス0、...のように表現されます。文字の2つのインスタンス次に、各テーブルのすべての単語(または見つかった単語のターゲットの長さが指定されている場合は1つのテーブル)を調べ、各単語のLetterCountをソース単語のLetterCountと比較します(上記の例では "内側" )。
しかし、私はそれがMySQLデータベースとPHPスクリプトに負荷をかけることになり、各単語のLetterCountを呼び出し、それぞれの桁をソース単語のそれと比較するなどの作業を開始しました。
これを行うのが簡単で、おそらく直感的な方法はありますか?どのような方法でもオーバヘッドを助けるならば、私はストアドプロシージャを使うことに慣れています。ちょうどいくつかの提案は非常に高く評価されるだろう。ありがとう!
+1非常に素晴らしいが... – dqhendricks
これは素晴らしいです!データベースの20文字の単語のうちいくつかを試して平均プライムプロダクトが何であるかを調べることができると思います。しかし、これはこれを行うことについて行くための素晴らしい方法のように見えます。 – TerranRich
これを20文字に拡大する方法の1つは、単語の値を1番目、3番目、5番目、7番目の文字などの2つの部分に分割することです。つまり、 'e、a、n、s、...' 2番目、4番目、6番目、8番目の文字等、すなわち 't、i、o、r、... 'のためのものです。次に、マスター単語の 'value1'がリストの単語の' value1'で割り切れるかチェックし、マスター単語の 'value2'がリストの単語の' value2'で割り切れるかどうかをチェックします。 2つの数字に分割すると、すべての単語がbigintの範囲に収まる可能性が非常に高いという点を除いて、アイデアは同じです。 – mellamokb