-1

関数は次のようになります。

int generateSortOfRandomInt(int X, int Y){

/*
Your program

*/

return randomINT that is always the same for X and Y
}

generateSortOfRandomInt(5,15)!= generateSortOfRandomInt(15,5)

例は次のようになります

int value1 = generateSortOfRandomInt(1, 3);  // 546547
int value2 = generateSortOfRandomInt(3, 1);  // 134566
int value3 = generateSortOfRandomInt(1, 3);  // 546547 THE SAME AS value1
int value4 = generateSortOfRandomInt(2, 3);  // 646621

ありがとうございました

4

5 に答える 5

6

ハッシュ関数を使用します。例:

return std::hash<int>()(std::hash<int>()(x) + y);
于 2013-02-08T05:50:26.200 に答える
6
int generateSortOfRandomInt(int X, int Y)
{
    return (X * 0xcafebabe) ^ (Y * 0xdeadbeef);
}
于 2013-02-08T07:15:58.903 に答える
2

パーリン ノイズで 2D を検索します。私が正しく覚えていれば、同じ入力に対して同じ出力が得られます。

于 2013-02-08T05:45:30.733 に答える
0

あなたの質問はかなり漠然としています。これには何百万もの異なる方法があります。

いくつかのアイデアは次のとおりです: 数字を一緒に分割し、小数点を移動して数字を作成します。

ただし、パラメーターとして指定された数値の順序に基づいて、異なる結果を取得する方法に基づいています。数値を使用して、パラメーターに基づいてビットを左または右にシフトします http://www.cprogramming.com/tutorial/bitwise_operators.html

于 2013-02-08T05:42:26.287 に答える
-6

これが私が思いついたものです:

int generateSortOfRandomInt(int X, int Y)
{
    srand(x*x+y);

    return rand();
}
于 2013-02-08T05:41:57.887 に答える