gpt4 book ai didi

java - 根据值的频率随机选择键

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:27:05 26 4
gpt4 key购买 nike

我有以下 HashMap :

Map <Country, List<City>> map = new HashMap<Country, List<City>>();

我想随机选择一组国家,条件如下:城市数量越少的国家被选中的概率应该越高。

为了解决这个问题,我想我会创建以下 map :

Map <Country, Integer> map = new HashMap<Country, Integer>();

其中整数表示List<City>的大小.

这样我就可以对 Map 进行排序基于整数值,然后选择整数值较低的国家/地区。

但看起来我在做这件事的时间很长,而且不是很随机。您对如何有效地解决这个问题有什么建议吗?

最佳答案

此处与遗传算法中使用的技术类似 the roulette wheel selection .

实现起来非常简单:

  1. 创建一个国家数组,其大小是所有国家整数的总和
  2. 将每个国家 N 次放入数组中,其中 N 是城市数
  3. 随机选择数组中的一个值

国家将以等于其城市数量的概率被挑选

编辑:如果城市数量非常多,您可以通过除以最低城市数量来标准化数字,以便每个国家都保留在表中。

关于java - 根据值的频率随机选择键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19771498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com