-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 的 Perlin 噪声。如果我没记错的话,这将为相同的输入提供相同的输出。

于 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 回答