有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓会生成一组唯一的java数字

Possible Duplicate:
Generate unique random numbers in Java

我正在为安卓创建一个彩票应用程序,它将生成一组介于1和49之间的6个数字。我面临的问题是,如何让这些数字独一无二

Random r = new Random();
int n1=r.nextInt(48) + 1;
ball1.setText(String.valueOf(n1));
int n2=r.nextInt(48) + 1;
ball2.setText(String.valueOf(n2));
int n3=r.nextInt(48) + 1;
ball3.setText(String.valueOf(n3));
int n4=r.nextInt(48) + 1;
ball4.setText(String.valueOf(n4));
int n5=r.nextInt(48) + 1;
ball5.setText(String.valueOf(n5));
int n6=r.nextInt(48) + 1;
ball6.setText(String.valueOf(n6));

共 (2) 个答案

  1. # 1 楼答案

    这是一个非常简单的解决方案。你创建一个for循环来生成新的数字,如果它是你创建的第一个数字,你将它添加到一个临时数组中。然后,每次生成一个新数字时,都要检查已有数字的数组,如果它不是唯一的,则向for循环的计数器中添加1

    这会一直持续下去,直到你有了所有的唯一号码。希望这是有道理的

  2. # 2 楼答案

    这是一项经典任务。取[1..49]值的数组,生成6个随机排列,然后取排列数组的6个首项

    这被称为洗牌(Fisher–Yates shuffle