生成带范围的唯一随机数

时间:2018-03-08 06:06:21

标签: android random

我是android的初学者。

显示随机数量的图像,孩子必须计算数字图像

为答案生成4个随机选择,代码工作正常

但有时app被绞死,无法优化代码。

生成答案

int[] answer = new int[4];


    int count=0,random_integer;
    while(count<=3){
        random_integer = r.nextInt((imageCount+2) - (imageCount-2)) + (imageCount-2);
        if(!exists(random_integer,answer)){
            answer[count] = random_integer;
            Log.d("answer","Array " + count + " = " + random_integer);
            count++;
        }
    }

    if(!exists(imageCount,answer)){
        answer[r.nextInt(3 - 0) + 0] = imageCount;
    }

检查重复

public boolean exists(int number, int[] array) {
    if (number == -1)
        return true;

    for (int i=0; i<array.length; i++) {
        if (number == array[i])
            return true;
    }
    return false;
}

logcat的

While generating 4 value it stopped 在生成4个值时,它停止了 提前致谢

1 个答案:

答案 0 :(得分:1)

答案数组用零初始化。这意味着,random_integer支票不会接受exists 0。

imageCount为2的情况下,只有四个可能的随机答案是0,1,2,3。由于0不被接受,while循环将永远不会终止。

如果imageCount小于2,则会出现类似的问题。