ananiaslitz / item-balancer
该软件包最新版本(v0.0.2)没有可用的许可证信息。
ItemBalancer是一个灵活的库,可以根据指定的比例在预定义的类别间分配项目。通过使用缓存机制,它确保了平衡项目分配的高效实时计算。
v0.0.2
2023-09-05 14:41 UTC
Requires
- predis/predis: ^1.1
README
ItemBalancer是一个灵活的库,它允许根据指定的比例在预定义的类别间分配项目。通过使用缓存机制,它确保了平衡项目分配的高效实时计算。
理由:受一位同事关于概率分布的初始解释的启发,我决定创建这个简化的实现。它的目的是解决在不同概率的类别中分配项目这一挑战,确保分配的公平和比例。
安装
使用Composer包管理器来安装ItemBalancer。
composer require ananiaslitz/item-balancer
使用
require 'vendor/autoload.php'; use Ananiaslitz\ItemBalancer\RedisCache; use Ananiaslitz\ItemBalancer\Distributor; $categories = ['A', 'B']; $percentages = [70, 30]; $cache = new RedisCache(); $distributor = new Distributor($cache, $categories, $percentages); $result = $distributor->distribute('ItemX'); print_r($result);
在此示例中,我们将ItemX在A和B类别中以70%比30%的比例进行分配。结果将显示ItemX被分配到的类别。
使用Docker进行配置
为了方便开发和测试,我们提供了一个docker-compose.yaml
文件,它允许您在Docker容器中运行Redis实例。
前置条件
环境变量
REDIS_HOST=127.0.0.1 REDIS_PORT=6379
说明
- 克隆仓库。
- 在项目根目录中执行:
docker-compose up -d
- Redis服务将在端口6379上运行。
当您在项目中使用该库时,请记住,如果您使用Docker,则需要将Redis的主机设置为redis
。
贡献
贡献是开源社区如此美妙的地方,可以学习、启发和创造。我们非常感谢您做出的任何贡献。感谢您成为我们社区的一员!🥰
关于精度的说明
当使用较小的数量进行分配时,结果可能受到随机因素和概率算法性质的影响。因此,重要的是要记住,在低数量下,可能无法确保反映所设定百分比的分配。
然而,随着项目数量的增加,分配的精度往往会接近指定的百分比。建议使用大量数据进行测试,以获得分布类别的更精确表示。