2016-11-05 17 views
-3

私がしようとしているのは、数字をハッシュ関数で入力し、得られたハッシュを配列に格納することです。私は最後の文字に一致する数字が類似のハッシュになるかどうかを調べようとしています。可能な限り一致する文字を見つけることを試みています。Rubyの配列インデックスの特定の文字を比較する

私はハッシュ配列を作成しました。 私のコードは次のようなものをやっている:

は1
は私にいくつかの計算を行う
I =ハッシュ配列を作成し、新しい結果とそれを呼び出す が、私は、ハッシュポインティングにつながる入れ
「結果」を

0123:それを
ハッシュ[結果]を作成したものに=私

ので、私はこのような何かを持っています私は
ループ

{「ABCD」=> 1}
インクリメント私は私をインクリメントし、私は再びいくつかの計算を通してそれを置いたときに、いくつかの条件

だから、私は、任意の類似点があるかどうかをチェックしたいまで結果の末尾にある文字を最初に比較することで、結果を返すことができます。

私が2回計算した結果、「hwed」という結果になると、「abcd」と「hwed "最後の文字に一致します。誰も私がこれをどうやってできるか知っていますか?

+0

ハッシュのような感じは、この種の比較のための正しいデータ構造ではありません。おそらくサフィックスツリー(または同様のもの)が良い選択かもしれません。すべての結果は常に4文字ですか?あなたは最後の文字にのみ興味がありますか、時には長い接尾辞にも関心がありますか? – spickermann

+0

こんにちは、私は実際にsha256ハッシングを通して数値を入れています。結果を保存していて、特定の長さで一致する類似したハッシュをもたらす数値があるかどうかを調べようとしています。結果のハッシュは、iveが文字列に変換された後、常に長さ64になります – ketrni

答えて

0

Rubyの多くの可能性のある方法がありますが、何をしようとしているのか(一連の操作を実行して各計算の結果を保存する)は簡単に行うことができます。

実際に達成しようとしていることを十分理解しているとは言えません。しかし、一般的な意味で支援する:だから今computations配列がword文字列の100のシャッフルで満たされている

hash = { 
    word1: { word: "cat", computations: [] } 
    word2: { word: "dog", computations: [] } 
    word3: { word: "pig", computations: [] } 
} 

hash.each do |key, val| 
    # each key is a symbol and each val is a hash 
    100.times do 
    val[:computations] << val[:word].chars.shuffle.join 
    end 
end 

。その時点で、計算配列で必要なものを(比較など)行うことができます。

関連する問題