Java 应以同等机会访问的节点列表

Java 应以同等机会访问的节点列表,java,list,random,Java,List,Random,我已经考虑了将近一个星期了,但是 假设有一个100个产品和100个访问者的列表,在第一步中每个访问者只访问20个产品 因此,如果我们从列表的开始向所有用户展示产品,则前20个产品会被看到,而其他产品则不会 我解决这个问题的第一个解决方案是给所有产品加一个权重,在访问之后,权重增加一个数字,这样第21个访问者就可以看到第21个产品 但这里出现了另一个问题,当我们到达列表的末尾时,用户如何返回到列表中的哪些节点 一个简单的解决方案是生成随机数,但是是否可以保证整个列表节点使用生成的随机数访问 imp

我已经考虑了将近一个星期了,但是

假设有一个100个产品和100个访问者的列表,在第一步中每个访问者只访问20个产品 因此,如果我们从列表的开始向所有用户展示产品,则前20个产品会被看到,而其他产品则不会

我解决这个问题的第一个解决方案是给所有产品加一个权重,在访问之后,权重增加一个数字,这样第21个访问者就可以看到第21个产品

但这里出现了另一个问题,当我们到达列表的末尾时,用户如何返回到列表中的哪些节点

一个简单的解决方案是生成随机数,但是是否可以保证整个列表节点使用生成的随机数访问

import java.util.Random;

Random rand = new Random();

int  n = rand.nextInt(50) + 1;
这样的随机代码,特别是当列表动态增加时


如果有人能找到解决此问题的方法,请多谢。

随机选择产品是个好主意。大多数RNG是为均匀分布而设计的,这意味着所有数字的可能性相等。只要您将随机数适当地映射到产品,就有非零的机会选择产品。您是否要求使用与java.util.random等效的php?是否有。随机生成器方法,在服务器端生成数字,记住最后生成的NUM,并以相同的机会创建下一个,例如,一些数字来自数组的开头,一些数字来自数组的结尾,一些数字来自中间,…不,我想在服务器端编写php代码