【问题标题】:Adding probability without adding more to StringArray增加概率而不增加更多到 StringArray
【发布时间】:2023-03-13 04:50:01
【问题描述】:

我得到了这个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"
};

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

【问题讨论】:

标签: java random probability arrays


【解决方案1】:

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

        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

【讨论】:

  • 有趣的方式,我会试试的。所以通过移动我最有可能得到的项目,我把它放在 StringArray 的中间?谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 2018-01-29
  • 2018-08-31
  • 1970-01-01
相关资源
最近更新 更多