【发布时间】:2015-06-07 16:18:18
【问题描述】:
我需要一个float 或integer,不是完全生成而是随机选择的。
我需要使用和导入math.random class吗?
例如,我有 3 个整数:1、6 和 3。我希望随机选择其中一个。
【问题讨论】:
标签: java random libgdx integer
我需要一个float 或integer,不是完全生成而是随机选择的。
我需要使用和导入math.random class吗?
例如,我有 3 个整数:1、6 和 3。我希望随机选择其中一个。
【问题讨论】:
标签: java random libgdx integer
从你想要的数字生成一个随机索引,然后从array中取出数字
int []nums = {1,3,6};
int max = nums.length - 1;
int min = 0;
Random rand = new Random();
int randomNum = rand.nextInt((max - min) + 1) + min;
System.out.println(nums[randomNum]);
【讨论】:
如果您想要三个值中的每一个,但顺序是随机的,那么您可以将它们放入一个数组中。并且,随机播放该数组,您可以使用Arrays.asList(T...) 和Collections.shuffle(List)。接下来,迭代数组中的值(可能使用for-each loop)。类似的东西
public static void main(String[] args) {
Integer[] arr = new Integer[] { 1, 6, 3 };
Collections.shuffle(Arrays.asList(arr));
for (int i : arr) {
System.out.println(i);
}
}
但是,如果您真的需要一次只选择一个随机值(比如 10 次),那么您可以使用 Random 和 nextInt(int) 以及 for 循环。这可能看起来像
public static void main(String[] args) {
int[] arr = new int[] { 1, 6, 3 };
Random rand = new Random();
for (int i = 0; i < 10; i++) {
int index = rand.nextInt(arr.length);
System.out.println(arr[index]);
}
}
【讨论】:
创建一个由允许的数字组成的数组(即new int[] {1, 6, 3}),然后在 0..length-of-array 范围内随机选择一个 int。在随机索引处选择值会产生你想要的结果。
【讨论】:
假设你有一个数组(希望你知道那是什么)你可以做的数字:
int choose = myNumbers[(int)Math.random() * myNumbers.length];
【讨论】:
您必须使用要随机获取的值创建一个数组。像这样:
int [] values = {1,3,6};
而且您永远不必忘记放置:
Random rand = new Random();
因为不放,Random函数就不能正常工作。
那么,现在你可以像这样随机访问你的值了:
int numObtained = rand.nextInt((values.length - 0) + 1) + 0;
最终代码为:
int [] values = {1,3,6};
Random rand = new Random();
int numObtained = rand.nextInt((values.length - 0) + 1) + 0;
希望对你有帮助!
【讨论】:
这可能会有所帮助。
int i[] = new int[]{3,4,6, 5, 8, 10, 14}; // given sets of array
int randomIndex = (int) (Math.random() * i.length); // generates a random index
System.out.println("random selected value " + i[randomIndex]);
【讨论】: