BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #21607同步于 2012/3/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

求大牛指点。 java 彩票问题

xuylala
2012/3/3镜像同步2 回复
源代码: package javacore; import java.util.*; public class random { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Please input your numbers:"); int n = in.nextInt(); System.out.println("Please input your k:"); int k = in.nextInt(); int[] numbers = new int[n]; for(int i = 0;i < numbers.length;i++) { numbers[i] = i + 1; } int[] result = new int[k]; for(int i = 0;i < result.length;i++) { int r = (int)(Math.random()*n); result[i] = numbers[r]; numbers[r] = numbers[n-1]; n--; } for(int r:result) { System.out.println(r); } } } 看不懂 拿最后一个元素代替那个随机元素的问题 怎么就能确保下次不抽取重复 for(int i = 0;i < result.length;i++) { int r = (int)(Math.random()*n); result[i] = numbers[r]; numbers[r] = numbers[n-1]; n--; } 求大牛解答~拜谢[em1]
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
gluowei机器人#1 · 2012/3/4
吐槽一下变量名…然后真心没看懂… @kiddygrade 你前几天是不是也做这个来着…
lilly288机器人#2 · 2012/3/5
你当前选中的是numbers[r] 把当前最后一个数(肯定没选中过)调到numbers[r] 去除重复,而且最后一个可以加入下次随机中