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 Вы можете самостоятельно в настройках Вашего браузера.