PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Smoren Freelight   PHP Probability Selector   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP Probability Selector
Decide which item to select based on probabilities
Author: By
Last change: `export()` method added and tested.
Date: 1 year ago
Size: 2,392 bytes
 

Contents

Class file image Download

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.