1)随机数发生器必须是可重复的:通过为每个用户使用一个唯一的种子,并使用random()类,可以生成相同的随机数序列。
跨多个HTTP请求。但是,必须将种子存储在某个地方(我建议使用cookie或隐藏的输入元素)。
public Random GetGenerator() {
DateTime now = new DateTime();
long ticks = now.Ticks();
if(getCookie("ticks") > 0) {
// existing user:
ticks = getCookie("ticks"); // you must implement this to get the user's seed
} else {
// new user:
setCookie(now.Ticks()); // you must implement this to set a Cookie/input field value
}
return new Random(ticks);
}
2)您必须生成m*(n-1)数字才能最终得到第n页的随机数,其中m是每页的项目数。只有这样,您才能开始为请求的页面生成随机数。