najidev/permutation

1.0.0 2014-06-20 11:00 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:53:13 UTC


README

摘要

数学家们将排列定义为以下内容

"[...] 排列的概念与排列或重新排列集合成员以特定顺序或顺序(与组合不同,组合是忽略顺序的选择)有关。例如,集合 {1,2,3} 有六种排列,即 (1,2,3)、(1,3,2)、(2,1,3)、(2,3,1)、(3,1,2) 和 (3,2,1)。" [1]

此包提供了管理排列的工具 - 目前只提供了一个生成排列的工具。它被创建用来轻松构建具有排列的 phpunit-testcases。

PermutationIterator

PermutationIterator 的使用非常简单

$set = [1, 2, 3];

$iterator = new NajiDev\Permutation\PermutationIterator($set);

foreach ($iterator as $permutationOfSet) {
    var_dump($permutationOfSet);
}

在每次迭代中,以下数组之一(仅一次)将被输出

  • array(1, 2, 3)
  • array(1, 3, 2)
  • array(2, 1, 3)
  • array(2, 3, 1)
  • array(3, 1, 2)
  • array(3, 2, 1)

[1] http://en.wikipedia.org/wiki/Permutation