0

我得到了string[]我在这些图像的网格中使用的这个。网格是使用随机随机生成的。现在我使用只添加一个对象的方式。但是如果两张图片相同(例如,egg-tree-blackcar-blackcar-pinkcar),我的重新生成一张图片的算法将不起作用,因为我检查了图像的数组索引。

String bingoObject[] = {  
    "black_car",  
    "gray_car",  
    "white_car",  
    "red_car",  
    "yellow_car",  
    "blue_car",  
    "pink_car",  
    "green_car",  
    "boat",  
    "tree",  
    //ADDED MORE FOR CHANCES  
    "black_car",
    "black_car",  
    "gray_car",   
    "white_car",  
    "red_car",  
    "blue_car",  
    "green_car"
};

有没有另一种方法来获得随机数并为每个对象分配概率,而不必将它们更多次添加到数组中?这将清理并帮助我完成大量混乱的编码。

4

1 回答 1

0

我个人不知道任何分配概率的方法,但我们可以创造自己的方式。这不是最有效的方法,但确实会产生伪概率。

        int [] numbers = {1,2,3,4,5,6,7,8,9,10};
        int index = 0;
        Random rnd = new Random();

        for (int i = 0; i < 3; i ++)
        {
            index = index + rnd.nextInt(numbers.length);
        }
        index=index/3;

        System.out.println(numbers[index]);

大多数情况下,这会将数组索引倾斜到靠近中间的某个位置。因此,理论上,最常见的值将位于数组的中间附近,而边界将非常少见。

您可以将“3”值更改为您想要的任何值,这个数字越高,数字应该越偏向中间。

运行 10 次后,我的值为:2,6,7,2,6,5,6,6,4,5

于 2013-09-24T21:00:54.473 回答