有 Java 编程相关的问题?

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

java如何从具有给定元素的数组中生成随机整数?

从数组生成随机int时遇到问题。 在某些情况下,输出是int,但不是此数组的元素

public static int array1[] = new int [] {0,3,6,9,12,15,18,21,24,27,30,33,36};
public static int rand;

public static int random()
{
    int max = array1[12];
    int min = array1[0];
    rand = (int) Math.floor(Math.random()*(max - min)+1);
    return rand;
}

我做错了什么


共 (3) 个答案

  1. # 1 楼答案

    最好在0和数组的独占上限之间创建一个随机整数。然后您可以使用随机数作为数组索引,并且您的随机值将始终是提供的值之一

    目前,您并没有真正使用数组-您所做的只是使用第一个和最后一个索引来建立随机int的包含性下界和独占性上界,结果将是任意int

  2. # 2 楼答案

    当前算法正在计算数组中第一个和最后一个元素之间的随机数

    相反,您应该从数组中检索一个随机元素。为了实现这一点,最好生成一个介于0和数组长度(独占)之间的随机数,然后返回该索引处的元素

  3. # 3 楼答案

    不要从数组的最大和最小元素定义的范围中生成随机元素,而是在范围[0..12]中生成随机元素

    换句话说,在数组中选择一个随机的索引