当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的方法


猜你喜欢
- PHP7 安装event扩展的实现方法 2023-02-22
- php高性能日志系统 seaslog 的安装与使用方法分析 2023-04-02
- laravel框架中控制器的创建和使用方法分析 2023-03-17
- laravel实现上传图片并在页面显示的例子 2023-03-02
- PHPTree——php快速生成无限级分类 2022-10-12
- PHP实现动态添加XML中数据的方法 2022-10-12
- PHP使用函数用法详解 2022-11-18
- TP3.2 Nginx下配置ThinkPhp多入口访问 2023-09-02
- PHP对接阿里云虚拟号的实现(号码隐私保护) 2023-06-03
- php 数组元素快速去重 2024-01-01