Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php构建概率树?_Php_Tree_Probability - Fatal编程技术网

使用php构建概率树?

使用php构建概率树?,php,tree,probability,Php,Tree,Probability,可能重复: 我有一个数组,它有一个选项列表, 每个选项都是唯一的,不能重复 我想使用以下选项构建概率树: $options = array('1','2','3','4','A','E','I','O'); 因此,一个有效行可以是1-2-E-3-O-I-4-A 我该怎么做?(或者至少给我指出了正确的方向!)递归可能是实现这一点的最简单方法,但它不能很好地扩展到大型数据集 基本上写一个函数,它接受一系列选项,从调用本身中去掉一个。 <?php function pc_permute($

可能重复:

我有一个数组,它有一个选项列表, 每个选项都是唯一的,不能重复

我想使用以下选项构建概率树:

$options = array('1','2','3','4','A','E','I','O');
因此,一个有效行可以是
1-2-E-3-O-I-4-A


我该怎么做?(或者至少给我指出了正确的方向!)

递归可能是实现这一点的最简单方法,但它不能很好地扩展到大型数据集

基本上写一个函数,它接受一系列选项,从调用本身中去掉一个。


<?php

function pc_permute($items, $perms = array( )) {
    if (empty($items)) { 
        print join('-', $perms) . "<br />";
    }  else {
        for ($i = count($items) - 1; $i >= 0; --$i) {
            $newitems = $items;
            $newperms = $perms;
            list($foo) = array_splice($newitems, $i, 1);
            array_unshift($newperms, $foo);
            pc_permute($newitems, $newperms);
        }
    }
}

$options = array( '1','2','3','4','A','E','I','O' );
$mass = pc_permute( $options );

?>

我想显示所有可能的lines@Hailwood像这样的?不,他想要的是所有可能的线,而不是一个随机的…钥匙能重复吗?意思是,其中一个选项是否可以是
E-1-A-4-2-E-O-4
?正如他在问题中所说,$options值是唯一的,因此char E只能是行中的一个。实际上,您希望找到
$options
数组的所有排列?请检查此项。这可能会有帮助。