我有一些问题 构建组合的程序 锁。
我想构建一个Lock 用小锁 并为每个锁分配组合
打印时应如下所示:
Lock Combination
1 8-4
2 1-2
3 5-3
4 10-7
5 9-6
我可以构建锁的基本代码,如
public class mainLock {
public static void main (String[] args) {
System.out.println("Lock" + " " + "Combination");
int lock = 1;
while (lock <=5) {
System.out.println(" "+lock);
lock = lock+1;
}
}
}
问题是我想要的
分配1-10随机组合
并且号码不应出现两次
正如您在打印视图中看到的那样。
所以当你启动程序时,它应该随机创建
组合5个锁具有2个唯一数字。
我知道为了做到这一点我可能需要 以这样的方式使用Random或Math.random()
(int)(Math.random()*10)+1
想想我创建了一个我创建的类 两种不同梳子的方法 锁定
public class Combination {
public int getComb() {
int comb1, comb2;
comb1 = (int)(Math.random()*5)+1;
comb2 = (int)(Math.random()*5)+1;
创建我的随机数 但我不知道如何 以及如何分配给每个锁。
帮助会很有帮助!答案 0 :(得分:1)
您可以尝试创建包含数字的List,然后使用Collections.shuffle()对其重新排序。这将为您提供您正在寻找的随机行为,而无需重复数字。我没有测试过这个,但它应该可以工作:
ArrayList<Integer> digits = new ArrayList<Integer>();
for (int i = 1; i < 11; i++) {
digits.add(Integer.valueOf(i));
}
Collections.shuffle(digits):
然后你就可以读出数字列表中的数字。
答案 1 :(得分:0)
看到这是家庭作业,使用你尚未在该课程中讨论的技术可能并不聪明。仅使用基本方法,您可以尝试创建一个数组来单独保存组合的每个值。每次为组合创建随机数后,请根据数组中的所有值进行检查。如果它是唯一的,请将其设置为组合的该部分的值。如果它不是唯一的,请提出另一个“随机”数字。这可能不是最优雅的解决方案,但至少它使用我猜测的方法围绕您的编程课程水平。