![](/img/trans.png)
[英]Creating an array of random elements from a separate array, up to a given length
[英]How to generate a random int from an array with given elements?
我在從數組生成隨機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;
}
我究竟做錯了什么?
您當前的算法正在計算數組中第一個和最后一個元素之間的隨機數。
相反,您應該從數組中檢索隨機元素。 為此,最好生成一個介於0和數組長度(不包括數組)之間的隨機數,然后返回該索引處的元素。
而不是根據數組的最大和最小元素定義的范圍生成隨機元素,而是生成[0..12]
范圍內的隨機元素。
換句話說,在數組中選擇一個隨機索引
您最好在0和數組的互斥上限之間創建一個隨機整數。 然后,您可以將隨機數用作數組索引,並且您的隨機值將始終是提供的值之一。
就目前而言,您實際上並沒有真正使用數組-您所做的只是使用第一個索引和最后一個索引來建立隨機int的包含性下限和排除性上界,結果之間將是任何int。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.