MikeGarde / 分区
将一组值分成相等的集合或接近相等的集合。
0.3.2
2020-03-09 05:01 UTC
Requires
- php: ^5.6 || ^7.0
- dusank/knapsack: ^10.0.0
Requires (Dev)
- phpunit/phpunit: 5.7.27 - 8 || ^9
README
一个PHP函数,用于将一组值分成相等的集合或接近相等的集合(分区)。了解更多关于 分区问题 的信息。
安装
在 packagist.org 上查找
composer require mikegarde/partition
示例
<?php require 'vendor/autoload.php'; use partition\partition; $data = [ [ 'id' => 'A', 'value' => 5, ], [ 'id' => 'B', 'value' => 5, ], [ 'id' => 'C', 'value' => 15, ], [ 'id' => 'D', 'value' => 5, ], [ 'id' => 'E', 'value' => 9, ], [ 'id' => 'F', 'value' => 3, ], [ 'id' => 'G', 'value' => 7, ], [ 'id' => 'H', 'value' => 12, ], ]; $partition = new partition($data, 4); $results = $partition->getResults(); $part = $partition->getPartition(0);
关于 $results
和 $part
的JSON表示
{ "summary": [ 15, 17, 14, 15 ], "partitions": [ [ { "id": "C", "value": 15 } ], [ { "id": "H", "value": 12 }, { "id": "D", "value": 5 } ], [ { "id": "E", "value": 9 }, { "id": "B", "value": 5 } ], [ { "id": "G", "value": 7 }, { "id": "A", "value": 5 }, { "id": "F", "value": 3 } ] ] }
[ { "id": "C", "value": 15 } ]
开发笔记
docker build . -t php:7.4 docker run --rm -it -v $(pwd):/var/www/html php:7.4 composer install docker run --rm -it -v $(pwd):/var/www/html php:7.4 php ./vendor/bin/phpunit --bootstrap vendor/autoload.php tests