我需要生成N个订户的一些随机数据M小时
让我们说用户ID范围= 1-20
小时数= 20
对于每小时用于数据生成的订户数量:4-6
如何随机选择订阅者ID,以便在20小时内从该范围中挑选所有订阅者,并且还可以在多个小时内重复数据。
例如小时1,订户ID:1-5
小时2,订户ID:4-7(前一小时重复4和5)
小时3,订户ID:6-10(从前一小时开始重复6和7)
在上面的数据中,用户范围按顺序移动,以确保生成所有订户的数据,但我想在保证条件的同时使其随机:
请建议。
答案 0 :(得分:0)
首先随机设置第一个范围。这将为您提供一系列[x,y]
在接下来的一小时内,添加x
在[0, y-x]
范围内随机选择的数字,新范围的结尾是其开头加上4到6之间的随机数。所有这当然是mod 20
(或者无论您的订户ID范围是多少)。
为了确保您到达所有客户端,请将范围设置为最小值,以便您足够快地浏览订阅者列表。
答案 1 :(得分:0)
首先创建1..N范围内数字的随机排列。然后将排列中第i项引用的订户分配给(i%M)小时。这将满足您的第一个要求(每个订户应至少参加1小时)。
现在第二阶段应该迭代几个小时,同时剩下可用的插槽(从每小时4-6个插槽开始)随机化一个1..N范围内的数字并分配相应的用户那个插槽。