gpt4 book ai didi

java - 随机性水平

转载 作者:行者123 更新时间:2023-11-29 05:25:34 25 4
gpt4 key购买 nike

我的目标是随机打乱一个数组(从 0 到 9),但每个数字只能在数组中出现一次。我有两个(可行的)想法,但我想知道此 random2 方法必须迭代多少次才能在数组中实现与第一种方法 (random1) 相同的随机级别。

import java.util.Random;

class RandomStuff {

static Random r;
final static int iteraction = 10;

public static void main (String[] args) {
r = new Random();
int[] array = new int[10];
random1(array);
random2(array, iteraction);
}

static void random1(int[] array) {
for(int i = 0; i < array.length; i++) pole[i] = -1;

for(int i = 0; i < array.length; i++) {
while(true) {
int y = r.nextInt(10);
if(!find(array, y)) {
array[i] = y;
break;
}
}
}
}

static void random2(int[] array, int iteraction) {
for(int i = 0; i <= iteraction; i++) {
int y1 = r.nextInt(array.length);
int y2 = r.nextInt(array.length);
int p = array[y1];
array[y1] = array[y2];
array[y2] = p;
}
}

static boolean find(int[] array , int value) {
for(int i = 0; i < array.length; i++) {
if(pole[i] == value) return true;
}
return false;
}
}

第一种方法 (random1) 用于分配随机数和测试,如果它们已经/不在数组中。这对我来说似乎很随意。

第二种方法 (random2) 用于交换数组中的两个随机随机值。所以问题是,我必须交换数组中的两个数字多少次才能达到相同级别的随机性。 (或者变量迭代应该有什么值)。

感谢任何回复。

最佳答案

如何为数组的每个元素分配一个随机数,按顺序排列随机数并按该顺序读取分配给该随机数的数组元素

0.64342 0
0.95229 1
0.23047 2
0.82793 3
0.19014 4
0.18528 5
0.15684 6
0.99546 7
0.54524 8
0.90612 9

顺序

0.15684 6
0.18528 5
0.19014 4
0.23047 2
0.54524 8
0.64342 0
0.82793 3
0.90612 9
0.95229 1
0.99546 7

数字 0 到 9 现在随机排列

关于java - 随机性水平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22787203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com