2012-03-05 10 views
1

システム上の各ユーザのランダムな画像を表示したいと思います。しかし、特定のユーザーは必ず毎回同じランダムイメージを受け取る必要があるため、必要に応じてイメージIDを生成する必要があります。整数の集合にMD5ハッシュをマッピングする

私は、ユーザー名のMD5を使用して番号を生成することを考えています。私のシステムはJavaScriptを使用しており、jQueryライブラリを使用しています。

たとえば、ランダムな画像に4つのバリエーションがある場合、その名前をそのまま渡して整数を受け取ってください。

$image_id = getImage(name); 

注:確率が正確である必要はありません。私。画像の1つが他のものよりも人気がある場合は、私には関係ありません。

答えて

0

整数関数へのシンプルな地図のString

[OK]を、私は自分自身の小さな機能を書きました。それが誰かにとって有用であることを願っています。

この関数は、文字列内の各文字のcharコードを合計し、その値を指定された最大値内に減らすために係数を使用します。かなり効果があると思われる。

N.b.それは数学的にランダムではありませんが、文字列から繰り返し可能なランダムオプションを選択するのには非常に適しています。

function getMappedCode(string, max_number_desired) 
{ 
    var char_code_total = 0; 
    for(var i = 0; i < string.length; i++) { 
    char_code_total += string.charCodeAt(i); 
    } 
    return char_code_total % max_number_desired; 
} 

var mapped_code = getMappedCode("tom finney", 10); 

alert(mapped_code); 
1

必要なものは、シードを受け入れるJavaScriptのランダム関数です。次に、ユーザー名の数値バージョンを作成し(またはID#を使用して)、新しい関数のシードとして渡すことができます。

ここに掲載これを行うための方法があります:あなたはあなたがするたびに生成された同じ乱数を取得する、ことを行っているたらSeedable JavaScript random number generator

が。そこから、画像の配列からインデックスを選択する乱数を選択することができます。

+0

これより簡単な方法はありませんか?これらの機能の背後にある数学は不要です。 –

+0

@JonWinstanley、まあ、確かに、あなたはランダムであることを暗示していたので、はい、そのすべてのものが必要です。 – Brad

+0

私は最後に自分のバージョンを作った。ちょっとしたこともあります。どちらがいいですか? –

関連する問題