当1到9数字相加都等于20时,可以通过排列组合的方式:
当1到9数字相加都等于20时,可以通过排列组合的方式:
-
将1到9的数字进行全排列,也就是将这9个数字按照所有的可能排列顺序都列举出来,然后对每一种排列情况计算其数字相加的和值。
-
对于每一种可能的排列情况,只需要计算其数字相加的和值是否等于20,如果等于20,在页面上输出这一组数字的排列情况。
使用 PHP 实现这个功能可以分两步进行:
- 实现全排列
可以使用 PHP 的数组函数和递归实现全排列,以下是实现代码:
function permute($arr, $temp, &$res) {
if (empty($arr)) {
$res[] = $temp;
} else {
for ($i = 0; $i < count($arr); $i++) {
$newArr = $arr;
$newTemp = $temp;
list($val) = array_splice($newArr, $i, 1);
array_push($newTemp, $val);
permute($newArr, $newTemp, $res);
}
}
}
$arr = array(1,2,3,4,5,6,7,8,9);
$res = array();
temp = array();
permute($arr, $temp, $res);
- 计算数字和值
对于得到的每一种可能排列情况,只需要使用 PHP 的求和函数 array_sum()
计算其数字相加和值,然后判断其是否等于20,如果等于20,则输出排列情况,代码如下:
foreach ($res as $item) {
if (array_sum($item) == 20) {
echo implode('-', $item) . '<br />';
}
}
示例:
假设当前的数字排列为:1 2 3,以下是具体的排列及计算过程:
-
1 2 3:1+2+3=6
-
1 3 2:1+3+2=6
-
2 1 3:2+1+3=6
-
2 3 1:2+3+1=6
-
3 1 2:3+1+2=6
-
3 2 1:3+2+1=6
如果要求数字和值为其他数值,只需要在代码中将20改为其他数值即可。
沃梦达教程
本文标题为:php通过排列组合实现1到9数字相加都等于20的方法
基础教程推荐
猜你喜欢
- Laravel5.0+框架邮件发送功能实现方法图文与实例详解 2023-01-08
- php array_flip() 删除数组重复元素 2024-01-14
- 日常收集整理php正则表达式(超常用) 2024-03-30
- php开发论坛系统 2023-03-19
- 用js写了一个类似php的print_r输出换行功能 2024-04-10
- 微信推送功能实现方式图文详解 2023-01-26
- Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版 2023-12-19
- PHP中16个高危函数整理 2023-02-13
- php写入mysql中文乱码的实例解决方法 2023-02-13
- CentOS(x86_64)下PHP安装memcache扩展问题解决方法分享 2023-12-19