小编典典

该算法将采用数字或单词并找到所有可能的组合

php

我正在寻找一种算法,该算法将采用数字或单词并一起找到它们的所有可能变体,还让我定义要一起查找的值。

示例以字符串或数组为例:

cat  
dog  
fish

那么值2的结果可能是:

cat dog  
cat fish  
dog cat  
dog fish  
fish cat  
fish dog

因此,来自3个项目的结果集是2个匹配结果
与3个匹配结果的6种可能变化:

cat dog fish  
cat fish dog  
dog cat fish  
dog fish cat  
fish cat dog  
fish dog cat

…甚至更多的选择

我在Stackoverflow上找到了一个指向此示例的链接,该链接执行此操作,但它在javascript中,我想知道是否有人知道如何在PHP中执行此操作,也许已经建立了某些东西?

http://www.merriampark.com/comb.htm
(无效链接)


阅读 295

收藏
2020-05-26

共1个答案

小编典典

看看http://pear.php.net/package/Math_Combinatorics

<?php
require_once 'Math/Combinatorics.php';
$words = array('cat', 'dog', 'fish');
$combinatorics = new Math_Combinatorics;
foreach($combinatorics->permutations($words, 2) as $p) {
  echo join(' ', $p), "\n"; 
}

版画

cat dog
dog cat
cat fish
fish cat
dog fish
fish dog
2020-05-26