【问题标题】:How do you make the computer select random elements from an array? [duplicate]你如何让计算机从数组中选择随机元素? [复制]
【发布时间】:2019-11-05 15:52:09
【问题描述】:

我尝试查看有关此问题的其他类似主题,但没有一个能解决我的问题。我基本上已经制作了一个由动物名称组成的数组,我试图告诉计算机选择一个随机的动物名称,但我不知道该怎么做。

我已经尝试过使用 math.random,但它总是发回一个随机索引值,它只是一个数字。我不希望它发送一个随机数,而是一个随机字符串。

 String[] animalNames = {"Raven","Chameleon","Lion","Cheetah"};

所以,我想学习可以让计算机随机选择动物名称的代码。我希望它输入作为元素而不是索引的动物名称,它只是一个数字。

【问题讨论】:

  • 使用随机索引值作为索引访问数组
  • 在0到animalNames.length-1的范围内获取random integer,然后读取该索引处的数组值。
  • 对不起,我不明白你想说什么,你看我刚从 10 年级开始学习 11 年级的计算机科学课程,所以我知道的不多.
  • 提示:一个数组映射一个数字到一个值。所以,当你想从一个数组中获得一个随机值时,你唯一需要的就是一个随机数。一个随机的索引。除此之外,还有 Collections.shuffle()。您可以创建一个值列表,将其打乱,然后简单地返回第一个元素。无需生成随机数即可工作...

标签: java arrays


【解决方案1】:

您应该在0array.length - 1 之间生成一个伪随机整数,然后在您的数组中返回具有该索引的值。您可以为此使用Random.nextInt()

返回一个伪随机、均匀分布的 int 值,介于 0(含)和指定值(不含)之间,取自此随机数生成器的序列。

这是一个完整的例子:

String[] animalNames = {"Raven","Chameleon","Lion","Cheetah"};
Random random = new Random();
int randomIndex = random.nextInt(animalNames.length);
String randomAnimalName = animalNames[randomIndex];
System.out.println(randomAnimalName);

【讨论】:

  • 谢谢,我会试试的。
【解决方案2】:

我的解决方案:

public String getRandomName (String [] animalNames){
Random rand = new Random(); 
int value = rand.nextInt(animalNames.length); // from 0 .. to animalNames.length - 1
return animalNames[value];
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    相关资源
    最近更新 更多