我想在我的系统上为每个用户显示一个随机图像。但是,特定用户每次都必须始终接收相同的随机图像,因此如果需要,我必须能够生成图像ID。
我正在考虑使用用户名的MD5来生成一个数字。我的系统正在使用JavaScript,而我正在使用jQuery库。
例如,如果随机图像有4种变体,我想将名称传递给它并接收整数。
$image_id = getImage(name);
注意:概率不需要准确。即如果其中一张图片比其他图片更受欢迎,那与我无关。
答案 0 :(得分:1)
您需要的是一个JavaScript随机函数,它也接受种子。然后,您可以创建用户名的数字版本(或使用他们的ID#),并将其作为种子传递给您的新函数。
有一种方法可以在此处发布:Seedable JavaScript random number generator
完成后,您将获得每次生成的相同随机数。从那里,您可以选择该随机数从图像数组中选择一个索引。
答案 1 :(得分:0)
好的,我写了自己的小功能。希望它对某人有用。
该函数对字符串中每个字符的字符代码求和,然后使用模数将数字减少到指定的最大值。似乎非常有效。
N.b。它在数学上并不是随机的,但从字符串中选择可重复的随机选项非常有用。
function getMappedCode(string, max_number_desired)
{
var char_code_total = 0;
for(var i = 0; i < string.length; i++) {
char_code_total += string.charCodeAt(i);
}
return char_code_total % max_number_desired;
}
var mapped_code = getMappedCode("tom finney", 10);
alert(mapped_code);