java中的随机数

我使用java作为前端和mysql作为后端创建了下表。

mysql> select * from consumer9; ------------- 4 rows in set (0.13 sec) Service_ID Service_Type consumer_feedback 100 computing -1 35 printer 0 73 computing -1 50 data 1 

我使用随机数的概念生成了这些值。 我想得到Service_types(打印机,计算,数据)在所有表中均匀分布的输出,反馈值为1,发生次数最多。

java.util.Random可以生成具有合理均匀分布的伪随机数。 给出您的服务类型List

 List services = new ArrayList( Arrays.asList("COMPUTER", "DATA", "PRINTER")); 

随意选择一个很容易:

 String s = services.get(rnd.nextInt(services.size())); 

同样,可以选择一个反馈值列表中的一个:

 List feedbacks = new ArrayList( Arrays.asList("1", "0", "-1")); String s = feedbacks.get(rnd.nextInt(feedbacks.size())); 

获得不同分布的一个简单方法是“堆叠甲板”。 例如,

 Arrays.asList("1", "1", "1", "0", "0", "-1")); 

将产生1,0和-1,概率分别为1 / 2,1 / 31/6 。 您可以使用nextGaussian()和合适的置信区间来安排更复杂的分区。

此方法仅应用于生成测试数据。

附录: “Apache Commons数学指南”包含有关数据生成的章节,其中包含有关其他概率分布的信息链接和文档。