使用随机函数()

时间:2015-11-05 09:19:47

标签: java android

/*This is my function code*/
Random random = new Random();
int randomInt = random.nextInt()%200;

String imgName = "img" + randomInt;

int ImageId = getResources().getIndentifier(imgName,"drawabale",getPackageName());
myImage.setImageResourse(ImageId);   

以前在我的drawable文件夹中有     已经使用img1,img2 ..... img199插入了200张图像 像命名法......     每次我打电话给下面的随机功能来生成一个     随机数并形成一个从中开始的字符串名称     " IMG"和一些数字。但大多数时间只有0由随机函数生成,id设置为     图像是不断显示第0个图像。在某些时候它成功显示其他图像,但大多数时候它连续生成零值。

提前致谢!

2 个答案:

答案 0 :(得分:5)

您可以生成具有特定范围的随机数

Random r = new Random();
int randomInt = r.nextInt(maxVal - minVal) + minVal

为您的例子

 int randomInt = r.nextInt(200 - 1) + 1

将生成介于1到199之间的数字。

答案 1 :(得分:0)

nextInt生成的随机数应随机为200的倍数,即每200左右一个。该测试表明这种情况正确发生:

public void test() {
    Random random = new Random();
    final int tests = 200000;
    int twoHunderdIsAFactor = 0;

    for (int i = 0; i < tests; i++) {
        if (random.nextInt() % 200 == 0) {
            twoHunderdIsAFactor += 1;
        }
    }
    System.out.println("Tests = " + tests + " Hits = " + twoHunderdIsAFactor + " Proportion = " + (tests / twoHunderdIsAFactor));
}

打印Tests = 200000 Hits = 1012 Proportion = 197 - 即200 randoms约200000次。

在其他答案中处理在特定范围内生成randoms。