当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的方法
基础教程推荐
猜你喜欢
- WEB服务器防盗链_HttpAccessKeyModule_Referer(Nginx&&PHP) 2023-09-02
- laravel添加角色和模糊搜索功能的实现代码 2023-06-12
- Laravel统一错误处理为JSON的方法介绍 2023-05-02
- PHP中比较两个字符串找出第一个不同字符位置例子 2024-01-15
- PHP之深入学习Yii2缓存Cache组件详细讲解 2023-06-19
- PHP排序二叉树基本功能实现方法示例 2022-10-19
- PHP中localeconv()函数的用法 2023-01-04
- phpstudy_php7_nginx环境配置 2023-09-02
- PHP设计模式之适配器模式定义与用法详解 2022-10-12
- php按单词截取字符串的方法 2023-12-25
