gpt4 book ai didi

c# - 将经典 ASP 随机数与 C# 随机数进行匹配

转载 作者:行者123 更新时间:2023-12-02 17:41:38 24 4
gpt4 key购买 nike

有点奇怪的问题。我有一个网站,其中一些页面采用经典 ASP,其他页面采用 ASP.net。

我有一个脚本可以缓存他们的头像图像。它托管在无 Cookie 域上,位于以下位置之一:

http://static1.scirra.net
http://static2.scirra.net
http://static3.scirra.net
http://static4.scirra.net

当页面在我的 ASP.net 网站上请求头像时,它会通过此函数将其随机分发到静态服务器:

/// <summary>
/// Returns the static url for gravatar
/// </summary>
public static string GetGravatarURL(string Hash, int Size, int AuthorID)
{
Random rndNum = new Random(AuthorID);
int ServerID = rndNum.Next(0, 4)+1;

string R = "//static" + ServerID.ToString() + ".scirra.net/avatars/" + Size + "/" + Hash + ".png";
return R;
}

网站的经典 ASP 部分的功能是:

function ShowGravatar(Hash, AuthorID)

Dim ServerID

Randomize(AuthorID)
ServerID = Int((Rnd * 4) + 1)

ShowGravatar = "//static" & ServerID & ".scirra.net/avatars/" & intGravatarSize & "/" & Hash & ".png"

end function

它工作正常,它在用户 ID 上播种,然后为他们分配一个静态服务器来服务器他们的头像。唯一的问题是,C# 和 Classic ASP RNG 的输出结果不同!这对于缓存来说并不是最佳选择,因为同一图像最多可在 2 个不同的域上提供服务。

有什么简单的方法可以解决这个问题吗?

最佳答案

返回可预测值的随机数生成器称为哈希 - 可预测的随机性在随机数生成器中一点也不酷:-)

因此,用一些哈希函数替换对 rand 的调用,一切就完成了。发挥你的想象力:哈希函数可以像作者的 crc 的模 4 一样简单。

关于c# - 将经典 ASP 随机数与 C# 随机数进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com