gpt4 book ai didi

java - 根据给定的数字或字符串生成范围内的唯一数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:37 25 4
gpt4 key购买 nike

我想要实现的是这样的事情,假设我们有一个包含 1000 个盒子的列表和一个包含 25 种颜色的列表,现在我们想要为盒子分配颜色,这样颜色来自给定列表,并且每个当我向盒子询问颜色时,系统会选择相同的颜色。多个框可以使用相同的颜色,但无论我执行多少次算法,同一个框的颜色将始终相同。

我想我可以有一个包含 25 种颜色的列表和一个算法来根据盒子的名称或 ID 创建一个唯一的数字(在 25 范围内)。

任何人都可以帮助我什么算法应该适合我?

更新要求略有变化,现在我需要该范围内的五种独特颜色,并且颜色必须始终相同。假设我们将盒子分成五个一组,每个盒子应该在 25 种颜色范围内获得唯一的颜色。并且算法应该始终为同一组提供相同的颜色。

最佳答案

box.getId().hashCode() % 25

将为您提供 0 到 24(含)之间的数字。

请注意,由于您没有为框之间的颜色分布指定任何规则,因此以下算法也可以满足您的要求:

return 0;

如果你想要一个好的分布,然后遍历你的盒子,并填写一个 Map<String, Integer>其中键是框 ID,值是颜色:

Map<String, Integer> colorsByBoxId = new HashMap<String, Integer>();
int i = 0;
for (Box box : boxes) {
int colorIndex = i % 25;
i++;
colorsByBoxId.put(box.getId(), colorIndex);
}

然后每次要获取框的颜色时都使用此映射。

或者简单地做同样的事情,并添加一个 color字段到 Box 类。

关于java - 根据给定的数字或字符串生成范围内的唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13874576/

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