一致随机数组

时间:2013-04-21 07:57:47

标签: c# java random

人。 我需要生成具有完全一致性的二维数组,例如:

1 3 2 3 4 6 4 3 2 4,即邻居之间差别不大。

1 2 1

2 3 2

3 4 2

我怎么能意识到这一点?

2 个答案:

答案 0 :(得分:1)

此Java示例适用于1到6之间的数字:

int[][] myArray = new int[3][];

for (int a = 0; a < 3; a++) {
    myArray[a] = new int[3];
    for (int b = 0; b < 3; b++) {
        myArray[a][b] = ((int)(Math.random() * 6) + 1);
    }
}

答案 1 :(得分:0)

嗨,如果你想要一点点差异(1行元素之间的差异只有1到3)。 即 1 2 1 2 4 6 1 3 4 等等  我认为这将是更好的解决方案。

int[][] myArray = new int[3][];

for (int a = 0; a < 3; a++) {
    myArray[a] = new int[3];
    int random=(int)Math.random() * 10;
    for (int b = 0; b < 3; b++) {
        int negativecounter=(int)Math.random()*2;
        /*multiplier will decide next number smaller or bigger randomly*/
        int multiplier=1;
        if(negativecounter%2==0){
           multiplier=-1;
        }
        myArray[a][b] = (random +(multiplier) (Math.random()*2 +1));
    }
 }

如果您需要任何澄清,请告诉我