我会尽力解释这一点。我需要根据每个项目中剩余的项目数量生成一个随机值(颜色)。
假设我有 5 种颜色,每种颜色有 10 个可用点:
Red = 10
Blue = 10
Green = 10
Yellow = 10
Black = 10
我想获得第一个随机颜色,每种颜色都有相同的机会,因为它们都有 10 个可用点。然后,如果选择的第一个值是红色,那么列表将如下所示
Red = 9
Blue = 10
Green = 10
Yellow = 10
Black = 10
然后下一个随机值将使红色的权重略低,因为其他颜色中可用的斑点更高。假设 Red 再次被选中,那么列表将如下所示:
Red = 8
Blue = 10
Green = 10
Yellow = 10
Black = 10
所以下一轮的权重会更低。
基本上我希望每个地点都有平等的机会被平等地挑选,但平均分配地点(不按顺序排列)。
颜色可能多于或少于 5 种,可用的点数最多可达 1000 个。数据将存储在数据库中,但每秒可能有多个点请求,因此也感谢有关如何存储此数据的任何建议。一旦请求一个点,它就会从颜色组中删除。
非常感谢!