`

PHP 排列组合

    博客分类:
  • PHP
 
阅读更多
初学PHP,闲暇写的排列组合,以十一运金为例,11,5的排列组合,可通用。(备注:初学,用字符串简单控制)。

<?php
$total = 0;
$result = array();
function test() {
	combination(11,5,"",$total);


	printf("Total %d", $GLOBALS['total']);
	
	echo '<br />';
	
	foreach ($GLOBALS['result'] as $value) {
		echo implode('*',$value) . '<br />';
	}
}
function combination($number,$count,$surfix) {
	for($i=1;$i<=$number;$i++) {
		$num = sprintf("%02d", $i);

		if($count==1) {
			if(strpos($surfix,$num)==false){
				$result =  $surfix. "*". $num;
				
				$result = str_replace('A','',$result);
				$temp = explode('*',$result);
				sort($temp);
				$key = implode('',$temp);
				
				if($GLOBALS['result'][$key]==null) {
					$GLOBALS['result'][$key]=$temp;
					$GLOBALS['total']++;
				}
				unset($temp);
			}
		} else {
			if($surfix=="") {
				combination($number,$count-1,"A".$num);
			} else {
				if(strpos($surfix,$num)==false){
					combination($number,$count-1,$surfix."*" .$num);
				}
			}
		}
	}
}
function permutation($number,$count,$surfix) {
	for($i=1;$i<=$number;$i++) {
		$num = sprintf("%02d", $i);

		if($count==1) {
			if(strpos($surfix,$num)==false){
				$GLOBALS['total']++;
				array_push($GLOBALS['result'], $surfix. "*". $num);
			}
		} else {
			if($surfix=="") {
				permutation($number,$count-1,"A".$num);
			} else {
				if(strpos($surfix,$num)==false){
					permutation($number,$count-1,$surfix."*" .$num);
				}
			}
		}
	}
}
?>

分享到:
评论

相关推荐

    PHP实现多种类型的排列组合算法

    下面将详细讨论PHP如何实现排列组合算法。 首先,排列和组合是离散数学中的基本概念。排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排列起来,形成不同的排列方式。组合则是指从n个不同元素中不考虑...

    使用php计算排列组合的方法

    前些天因为业务需要写了一段计算排列组合的代码,今天整理了一下,以备后用复制代码 代码如下:&lt;?php/** * 要解决的数学问题 :算出C(a,1) * C(b, 1) * … * C(n, 1)的组合情况,其中C(n, 1)代表从n个元素里任意...

    PHP多个字符串排列组合的算法,组二,组三

    在PHP编程语言中,处理字符串的排列组合是常见的任务,特别是在数据分析、彩票系统或其他需要生成所有可能结果的场景中。本篇文章将详细讲解如何利用PHP实现字符串的组合算法,特别是针对“组二”和“组三”的组合...

    php求数组全排列,元素所有组合的方法

    在PHP中,数组全排列是指将数组中的所有元素进行所有可能的排列组合。这通常涉及到回溯算法或者基于比较的排序技巧。以下是对标题和描述中提到的PHP数组全排列方法的详细解释: 首先,我们需要一个包含多个元素的...

    php实现的生成排列算法示例

    PHP实现的生成排列算法是基于递归和遍历字符串的思想,通过构建多个排列的递归函数来生成目标字符串的所有可能排列组合。排列是指从给定集合中取出所有元素,并以不同的顺序组成新的序列的过程。在编程领域,特别是...

    PHP实现的简单排列组合算法应用示例

    本文将详细探讨如何使用PHP实现简单的排列组合算法,并通过一个具体的实例来展示其应用。 首先,我们需要理解排列和组合的基本概念。排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,而组合...

    浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)

    在本文中,我们将深入探讨如何使用PHP实现排列组合算法,以输出给定字符(例如a、b、c)的所有可能组合。排列组合是数学中的一种基本概念,它涉及到从一组对象中选择若干对象并考虑其顺序的问题。在PHP中,我们可以...

    PHP实现一维数组的组合算法

    PHP实现一维数组的组合算法,欢迎下载和评论。

    PHP输出多个元素的排列或组合的方法

    在本文中,我们将探讨PHP语言如何输出多个元素的排列或组合,并将具体展示实现这一功能的方法与步骤。首先,文章给出了一段PHP代码作为实例,通过这段代码可以实现对数组元素进行不同组合和排列的输出。 首先,我们...

    php通过排列组合实现1到9数字相加都等于20的方法

    在PHP编程中,有时候我们需要解决一些数学问题,例如如何通过排列组合找出所有可能的方式,使得1到9的数字相加等于20。这个任务涉及到排列和组合的概念,以及递归或循环的算法设计。在给定的代码示例中,提供了一个...

    php求数组全排列,元素所有组合的方法总结

    在PHP编程语言中,处理数组的排列组合是一个常见的任务,特别是在进行算法分析、数据操作或者逻辑处理时。本文将深入探讨如何使用PHP实现数组的全排列,即获取数组中所有可能的元素组合。 首先,全排列是指从n个...

    双色球复式全排列组合算法(中6保6)-易语言

    双色球复式全排列组合算法是彩票爱好者和编程初学者常常关注的一个话题,尤其是在易语言环境下实现这一算法,能够帮助我们理解基础的编程逻辑和排列组合原理。易语言是一种面向对象、简单易学的中文编程语言,它以其...

    汉字数组排序

    - **多字节字符串处理**:在PHP中处理多字节字符串时,可以使用`mb_*`系列函数,它们提供了更强大的多字节字符串操作功能。 - **其他排序方法**:除了`natcasesort`之外,还可以考虑使用`usort`函数自定义排序规则...

    php一个解析字符串排列数组的方法

    该方法能够根据特定的分隔符将字符串拆分成数组,并按照指定字段对数组进行重新排列组合。以下是详细的步骤与知识点解析。 首先,我们需要理解字符串的拆分方法。在PHP中,使用explode函数可以将字符串按照指定的...

    全排列(多种算法实现)

    - 当堆栈不为空时,弹出元素并尝试与当前排列组合,然后将剩余元素压入堆栈。 - 如果所有元素都已使用过,输出当前排列,然后回溯,将上一个元素放回原位并继续。 - 重复此过程,直到所有排列被生成。 4. **BFS...

Global site tag (gtag.js) - Google Analytics