我正在寻找一个 crossplarform 标准随机数生成器,它在用种子初始化后总是为给定的整数键返回相同的随机数。
并且在不生成任何类型的键/值映射的情况下,此时内存保护比处理器使用更重要。
假设我们用种子(不是 key )初始化生成器。
然后我们可以检索任意键的结果。每次调用将始终为相同的键返回相同的结果。
例如:
KeyBasedRandomGenerator r1 = new KeyBasedRandomGenerator(MY_SEED);
KeyBasedRandomGenerator r2 = new KeyBasedRandomGenerator(MY_SEED);
int test = r1.Get(500);
for (int key = 0; key < 10000000; ++key)
{
assert ( r1.Get(key) == r2.Get(key));
}
assert ( r1.Get(500) == test);
是否有适用于 C# 和 C++ 的实现?他们叫什么?
是否有可能找到在某个范围内始终返回相同结果的变体:
assert ( r.Get(key, 0, 15) == r.Get(key, 0, 15));
编辑:我了解哈希的作用以及通常的随机生成器的工作原理。我正在寻找的是使用 key 的标准化随机数生成器函数或实现(库)。
如果对于这种情况没有比“哈希函数”更具体的术语,那么它就是哈希。
最佳答案
好吧,它们被称为“哈希函数”。 key 不必只是一个数字。它可以是任何数据 block 。哈希函数对某个任意输入执行复杂的逐位计算,并为输出生成单个值。出于所有实际目的,生成的哈希值将随机出现。
关于c# - 什么样的随机数生成系统会为给定的 key 返回一个结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077960/