该功能将是这样的。
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
谢谢
答案 0 :(得分:6)
使用哈希函数,例如
return std::hash<int>()(std::hash<int>()(x) + y);
答案 1 :(得分:6)
int generateSortOfRandomInt(int X, int Y)
{
return (X * 0xcafebabe) ^ (Y * 0xdeadbeef);
}
答案 2 :(得分:2)
搜索2D的Perlin噪音。如果我记得正确,这将为同一输入提供相同的输出。
答案 3 :(得分:0)
你的问题很模糊。有一百万种不同的方法。
一些想法是: 将数字除以并移动小数点以创建数字。
然而,基于您如何根据作为参数给出的数字的顺序获得不同的结果。我会根据参数使用数字来左移或右移位 http://www.cprogramming.com/tutorial/bitwise_operators.html
答案 4 :(得分:-6)
以下是我提出的建议:
int generateSortOfRandomInt(int X, int Y)
{
srand(x*x+y);
return rand();
}