[英]Lock combination
我在构造用于密码锁的程序时遇到一些问题。
我想用小锁构造一个锁,并为每个锁分配组合
打印时应如下所示:
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;
创建我的随机数,但我不确定如何以及如何分配给每个锁。
帮助将不胜感激!
您可以尝试创建一个包含数字的列表,然后使用Collections.shuffle()重新排序。 这将为您提供所需的随机行为,而无需重复数字。 我没有测试过,但是应该可以工作:
ArrayList<Integer> digits = new ArrayList<Integer>();
for (int i = 1; i < 11; i++) {
digits.add(Integer.valueOf(i));
}
Collections.shuffle(digits):
然后,您可以只从数字列表中读取数字。
既然这是家庭作业,那么使用尚未在该课程中讨论过的技术可能并不明智。 仅使用基本方法,您可以尝试创建一个数组以分别保存组合的每个值。 每次为组合创建一个随机数后,都要对照数组中的所有值检查它。 如果它是唯一的,请将其设置为组合中该部分的值。 如果不是唯一的,请提出另一个“随机”数字。 这可能不是最优雅的解决方案,但至少我使用的方法与您的编程课程工作水平有关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.