我需要生成N个订阅者M小时的随机数据
假设订阅者id范围= 1-20
小时数= 20
用于生成数据的每小时订户数: 4-6
如何随机选择订阅者in,以便从20小时以上的范围内选择所有订阅服务器,并且还可以在多个小时的数据中重复。
例如1小时,订户编号: 1-5
2小时,订户id : 4-7 (4和5重复前一小时)
3小时,订户编号: 6-10(6和7重复前一小时)
在上述数据中,用户范围按顺序移动,以确保生成所有订阅者的数据,但我希望在确保条件的同时将其随机化:
请建议一下。
发布于 2015-06-10 08:47:03
从随机设置第一个范围开始。这将为您提供一系列的[x,y]
。
在接下来的一个小时里,在x
中添加一个在[0, y-x]
范围内随机选择的数字,新范围的末尾是它的开头加上4到6之间的随机数。所有这些当然都是mod 20
(或者您的订阅者id范围最大值是多少)。
为了确保到达所有客户端,请将范围设置为最小,以便您在订阅服务器列表中取得足够快的进度。
发布于 2015-06-10 08:54:50
从创建1.N范围内的数字随机排列开始,然后将置换中的第一项所引用的用户分配给(i % M)小时。这将满足您的第一个要求(每个订阅者应参与至少1小时)。
现在,第二阶段应该迭代整个小时,当剩下可用的时隙(从每小时拥有的4-6个时隙中)随机化一个1.N范围内的数字,并将相应的用户分配到该时隙。
https://stackoverflow.com/questions/30751226
复制相似问题