英文:
How to get a random number in one statement from a list of values;
问题
给定下面的代码,我必须找到一种方法从值中获取一个随机值:100、120、140、160、180、200、220、240、260、280。问题在于,我必须编写一条单独的语句(一个分号),这条语句将随机选择其中一个整数,并将其赋值给random_int变量。是否有人有任何想法,我如何能够创建一个包含上述数字的列表或数组,并从中随机选择一个整数以赋值给random_int,只用一条语句?谢谢帮助!
public static void main(String[] args) {
Random random = new Random();
int random_int;
// 单条语句放在这里
System.out.println("Number is: " + random_int);
}
英文:
Given the code below I have to find a way to get a random value from the values: 100, 120, 140, 160, 180, 200, 220, 240, 260, 280. The catch is that I have to write a single statement (One semi-colon) that will randomly pick one of the ints and assign it into the random_int variable. Does anyone have any idea how I could create a list or array of the numbers above and pick a random int from the numbers to assign to random_int in a single statement? Thank you for the help!
public static void main(String[] args) {
Random random = new Random();
int random_int;
// Your single statement goes here
System.out.println(“Number is: “ + random_int);
}
答案1
得分: 0
将它们全部推入一个数组中,并随机数组的索引。所有操作都可以在一个单独的语句中完成:
public static void main(String[] args) {
Random random = new Random();
int random_int = new int[]{100, 120, 140, 160, 180, 200, 220, 240, 260, 280}[random.nextInt(10)];
System.out.println("数字为:" + random_int);
}
英文:
Push them all into an array and random the array's index. All can be done in one single statement:
public static void main(String[] args) {
Random random = new Random();
int random_int = new int[]{100, 120, 140, 160, 180, 200, 220, 240, 260, 280}[random.nextInt(10)];
System.out.println("Number is: " + random_int);
}
答案2
得分: 0
你可以利用 Arrays
类从你的数组创建一个集合
System.out.println(Arrays.asList(100, 120, 140, 160, 180, 200, 220, 240, 260, 280).
get(new Random().nextInt(10)));
英文:
You can make use of the Arrays
class to create a collection from your array
System.out.println(Arrays.asList(100, 120, 140, 160, 180, 200, 220, 240, 260, 280).
get(new Random().nextInt(10)));
答案3
得分: 0
Sure, here's the translated code snippet:
你可以这样做:
public static void main(String[] args) {
Random random = new Random();
List<Integer> integerList = Arrays.asList(100, 120, 140, 160, 180, 200, 220, 240, 260, 280);
System.out.println(integerList.get(random.nextInt(integerList.size())));
}
英文:
You can do something like:
public static void main(String[] args) {
Random random = new Random();
List<Integer> integerList = Arrays.asList(100, 120, 140, 160, 180, 200, 220, 240, 260, 280);
System.out.println(integerList.get(random.nextInt(integerList.size())));
}
答案4
得分: 0
int random_int = new Random().nextInt(10) * 20 + 100;
int random_int = (new Random().nextInt(10) + 5) * 20;
nextInt(10)
将会给出0到9的数字。(9 =(280 - 100)/ 20)。
关键在于看到所期望的数字中的规律:以20为步长,从100开始到280。
可能是一个考试题目。
英文:
int random_int = new Random().nextInt(10)*20 + 100;
int random_int = (new Random().nextInt(10) + 5)*20;
nextInt(10)
will give 0..9. (9 = (280 - 100)/20).
It is a matter of seeing the regularities in the desired numbers: steps of 20, starting with 100 upto 280.
Could have been an exam question.
答案5
得分: 0
public class Foo {
public static void main(String[] args) {
for (int i = 0; i < NUMBERS.size(); i++)
System.out.println(getRandomNumber());
}
private static final List<Integer> NUMBERS = Arrays.asList(100, 120, 140, 160, 180, 200, 220, 240, 260, 280);
public static int getRandomNumber() {
Collections.shuffle(NUMBERS);
return NUMBERS.get(0);
}
}
英文:
public class Foo {
public static void main(String[] args) {
for (int i = 0; i < NUMBERS.size(); i++)
System.out.println(getRandomNumber());
}
private static final List<Integer> NUMBERS = Arrays.asList(100, 120, 140, 160, 180, 200, 220, 240, 260, 280);
public static int getRandomNumber() {
Collections.shuffle(NUMBERS);
return NUMBERS.get(0);
}
}
答案6
得分: 0
以下是已翻译的内容:
给出下面可以执行任务的单个语句:
random_int = List.of(100, 120, 140, 160, 180, 200, 220, 240, 260, 280)
.get(random.nextInt(List.of(100, 120, 140, 160, 180, 200, 220, 240, 260, 280).size()));
解释:
Random#nextInt(int bound)
返回一个介于0
(包括)和bound
(不包括)之间的int
值。List#get(int index)
返回列表中指定位置的元素。List#size()
返回列表中的元素数量。
英文:
Given below can be the single statement to do the job:
random_int = List.of(100, 120, 140, 160, 180, 200, 220, 240, 260, 280)
.get(random.nextInt(List.of(100, 120, 140, 160, 180, 200, 220, 240, 260, 280).size()));
Explanation:
Random#nextInt(int bound)
returns anint
value between0
(inclusive) andbound
(exclusive).List#get(int index)
returns the element at the specified position in this list.List#size()
returns the number of elements in this list.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论