1

これを行う良い方法が思い浮かびません。可能であれば、助けていただければ幸いです。

残念ながら、そこまで行っていないので、まだ投稿するコードがありません。

0 ~ 999の範囲の 3 つ (またはそれ以上) のパラメーターから一連の値を生成する必要があります

値は、指定された入力に対して常に同じでなければなりませんが、ランダムに見えるように、上限と下限の間に公平な分布が必要です。

例えば:

function (1, 1, 1) = 423

function (1, 1, 2) = 716

function (1, 2, 1) = 112

これらはかなり高速に生成する必要があります。つまり、 Web ページの読み込み中に100 から200を顕著な遅延なしで生成できる必要があります。

このメソッドは、C# だけでなく JavaScript でも実行できる必要があります。それ以外の場合は、おそらく CRC32 または MD5 ハッシュ アルゴリズムを使用します。

それが役立つ場合、これは手続き型生成ルーチンの一部として使用されます。

以前にも質問してみましたが、説明の質が悪くてがっかりしたと思います。

これが悪い言葉である場合は、申し訳ありません。その場合はお知らせください。詳しく説明します。

助けてくれてありがとう。

4

3 に答える 3

0

C# と JS の両方で MD5 ハッシュを使用できるはずです。

C# の場合:

int Hash(params int[] values)
{
    System.Security.Cryptography.MD5 hasher = MD5.Create();
    string valuesAsString = string.Join(",", values);
    var hash = hasher.ComputeHash(Encoding.UTF8.GetBytes(valuesAsString));
    var hashAsInt = BitConverter.ToInt32(hash, 0);
    return Math.Abs(hashAsInt % 1000);
}

JS では、MD5 アルゴリズム (例: jshash )を使用して同じメソッドを実装します。

于 2013-08-12T13:40:30.323 に答える