probability-selector-php

Форк
0

README.md

PHP Probability Selector

Packagist PHP Version Support Scrutinizer Code Quality Coverage Status Build and test License: MIT

Selection manager for choosing next elements to use from data source based on uniform distribution of selections.

Infinite iteration

use Smoren\ProbabilitySelector\ProbabilitySelector;
$ps = new ProbabilitySelector([
// data // weight // initial usage counter
['first', 1, 0],
['second', 2, 0],
['third', 3, 4],
]);
foreach ($ps as $datum) {
echo "{$datum}, ";
}
// second, second, first, second, third, third, second, first, third, second, third, third, second, first, third, ...

Iteration limit and export

use Smoren\ProbabilitySelector\ProbabilitySelector;
$ps = new ProbabilitySelector([
// data // weight
['first', 1],
['second', 2],
]);
foreach ($ps->getIterator(6) as $datum) {
echo "{$datum}, ";
}
// second, second, first, second, second, first
print_r($ps->export());
/*
[
['first', 1, 2],
['second', 2, 4],
]
*/

Single decision

use Smoren\ProbabilitySelector\ProbabilitySelector;
$ps = new ProbabilitySelector([
// data // weight
['first', 1],
['second', 2],
]);
$ps->decide(); // second
$ps->decide(); // second
$ps->decide(); // first

Unit testing

composer install
composer test-init
composer test

Standards

PHP Probability Selector conforms to the following standards:

License

PHP Probability Selector is licensed under the MIT License.

Описание

Selection manager for the next element from data source based on uniform distribution of selections

Языки

PHP

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.