添加概率而不向String Array添加更多内容

时间:2013-09-24 20:44:09

标签: java random probability arrays

我在这些图像的网格中使用了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"
};

是否有其他方法可以获取randoms并为每个对象分配概率而无需将更多次添加到数组中?这样可以清理并帮助我完成大量繁杂的编码。

1 个答案:

答案 0 :(得分: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