PHP code example of lishack / combinatorics-php

1. Go to this page and download the library: Download lishack/combinatorics-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

lishack / combinatorics-php example snippets


use Lishack\Combinatorics\Combinatorics;

$result = Combinatorics::factorial(10);

echo $result;

$result = Combinatorics::binomial(5, 2);

echo $result;

$result = Combinatorics::permutationsCount(5);

echo $result;

$result = Combinatorics::variationsCount(5, 3);

echo $result;

$result = Combinatorics::variationsWithRepetitionCount(5, 3);

echo $result;

$result = Combinatorics::combinationsCount(52, 5);

echo $result;

$result = Combinatorics::combinationsWithRepetitionCount(5, 3);

echo $result;

use Lishack\Combinatorics\Combinatorics;

foreach (Combinatorics::combinations(['A', 'B', 'C', 'D'], 2) as $combination) {
    print_r($combination);
}

foreach (Combinatorics::combinationsWithRepetition(['A', 'B', 'C'], 2) as $combination) {
    print_r($combination);
}

foreach (Combinatorics::permutations(['A', 'B', 'C']) as $permutation) {
    print_r($permutation);
}

foreach (Combinatorics::variations(['A', 'B', 'C'], 2) as $variation) {
    print_r($variation);
}

foreach (Combinatorics::variationsWithRepetition(['A', 'B'], 2) as $variation) {
    print_r($variation);
}

foreach (Combinatorics::powerSet(['A', 'B', 'C']) as $subset) {
    print_r($subset);
}

$sets = [
    ['Red', 'Blue'],
    ['S', 'M'],
];

foreach (Combinatorics::cartesianProduct($sets) as $product) {
    print_r($product);
}

use Lishack\Combinatorics\Combinatorics;
use Lishack\Combinatorics\Enum\RankingOrder;

$rank = Combinatorics::combinationRank(
    universe: ['A', 'B', 'C', 'D'],
    combination: ['B', 'D'],
    order: RankingOrder::Lexicographic,
);

echo $rank;

$rank = Combinatorics::combinationRank(
    universe: ['A', 'B', 'C', 'D'],
    combination: ['B', 'D'],
    order: RankingOrder::Colexicographic,
);

echo $rank;

$combination = Combinatorics::combinationUnrank(
    universe: ['A', 'B', 'C', 'D'],
    rank: 4,
    k: 2,
);

print_r($combination);

$users = [
    new User(10, 'Alice'),
    new User(20, 'Bob'),
    new User(30, 'Charlie'),
    new User(40, 'David'),
];

$rank = Combinatorics::combinationRank(
    universe: $users,
    combination: [$users[1], $users[3]],
    keySelector: static fn (User $user): int => $user->id,
);

echo $rank;
bash
composer