双色球玩法模拟
M次循环完成随机生成M个元素From N
关键代码.
public static void computerChoose(int[] selectedRedBall, int[] userRedBall) {
Random r = new Random();
for(int i = 0; i < userRedBall.length; i++) {
int temp = r.nextInt(selectedRedBall.length-i);
userRedBall[i] = selectedRedBall[temp];
//将备选数组中选中的元素与数组末尾元素交换,并每次搜索范围-1,避免重复
int temp2 = selectedRedBall[temp];
selectedRedBall[temp] = selectedRedBall[selectedRedBall.length-1-i];
selectedRedBall[selectedRedBall.length-1-i] = temp2;
}
}
算法应用
1.考试系统随机生成不重复的题目
2.音乐播放器随机播放
3.随机抽样模型(随机不重复抽样算法)
4.工作人员随机分配工作地点
5.接单系统随机分配满足条件的多条匹配线路
6.非诚勿扰随机抽取嘉宾出场顺序
7.分布式系统随机分配符合要求的请求处理服务器