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

yizhihongxing

当1到9数字相加都等于20时,可以通过排列组合的方式:

  1. 将1到9的数字进行全排列,也就是将这9个数字按照所有的可能排列顺序都列举出来,然后对每一种排列情况计算其数字相加的和值。

  2. 对于每一种可能的排列情况,只需要计算其数字相加的和值是否等于20,如果等于20,在页面上输出这一组数字的排列情况。

使用 PHP 实现这个功能可以分两步进行:

  1. 实现全排列

可以使用 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);
  1. 计算数字和值

对于得到的每一种可能排列情况,只需要使用 PHP 的求和函数 array_sum() 计算其数字相加和值,然后判断其是否等于20,如果等于20,则输出排列情况,代码如下:

foreach ($res as $item) {
    if (array_sum($item) == 20) {
        echo implode('-', $item) . '<br />';
    }
}

示例:

假设当前的数字排列为:1 2 3,以下是具体的排列及计算过程:

  1. 1 2 3:1+2+3=6

  2. 1 3 2:1+3+2=6

  3. 2 1 3:2+1+3=6

  4. 2 3 1:2+3+1=6

  5. 3 1 2:3+1+2=6

  6. 3 2 1:3+2+1=6

如果要求数字和值为其他数值,只需要在代码中将20改为其他数值即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php通过排列组合实现1到9数字相加都等于20的方法 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP简单实现无限级分类的方法

    当我们需要在网站中实现分类功能时,我们通常会使用无限级分类的方法。无限级分类指的是分类可以无限级嵌套,每一级分类下还可以有子分类。下面我将讲解如何使用 PHP 简单实现无限级分类的方法。 步骤一:设计数据库 分类功能的实现离不开数据库,因此我们需要事先设计好数据库结构。常用的设计方式是使用两个表:一个表存储分类信息,另一个表存储分类之间的层级关系。 cate…

    PHP 2023年5月26日
    00
  • PHP基于array_unique实现二维数组去重

    下面我就给你介绍一下“PHP基于array_unique实现二维数组去重”的完整攻略。 前言 在实际开发过程中,经常会遇到需要对二维数组进行去重处理的情况,比如从数据库中取出的数据,或是从表单提交的数据中提取出的多维数组等等。在PHP中,我们可以利用array_unique()函数来实现对一维数组的去重,但对于二维数组,该函数就失灵了。不过,我们可以借助一些…

    PHP 2023年5月26日
    00
  • php中用数组的方法设置cookies

    下面我将为您详细讲解PHP中用数组的方法设置Cookies的完整攻略。 什么是Cookies? Cookies是指浏览器中用于存储用户信息的一种小文件。网站可以使用Cookies在浏览器中存储和检索用户信息。Cookies通常用于存储用户的登录状态、购物车信息等,以便用户下次访问网站时可以获得更加个性化的服务。 PHP中如何设置Cookies? PHP中可以…

    PHP 2023年5月26日
    00
  • 深入浅出php socket编程

    深入浅出php socket编程 概述 PHP作为一种Web开发语言,其强大的功能和高效的性能越来越受到开发人员的青睐。而socket编程则是网络编程中的基础,掌握socket编程,可以让我们更好地理解网络编程和Web开发。 在本文中,我们将深入浅出地介绍PHP socket编程的基础知识和技术,包括socket的基本概念、如何创建socket、如何使用so…

    PHP 2023年5月23日
    00
  • php返回字符串中所有单词的方法

    要返回字符串中所有单词的方法,可以使用正则表达式和 PHP 的 preg_match_all 函数。 下面是具体的步骤: 1. 使用 preg_match_all 函数和正则表达式匹配所有单词 $string = "Hello world! This is a test string."; preg_match_all("/\b…

    PHP 2023年5月26日
    00
  • PHP操作路由器实现方法示例

    PHP操作路由器实现方法示例 本文将介绍使用PHP来操作路由器的实现方法,以及两个示例说明。 一、实现方法 对于路由器的操作,一般需要使用SNMP协议进行,而PHP中有一个名为php-snmp的扩展可以帮助我们进行SNMP相关的操作。具体实现步骤如下: 1. 安装php-snmp扩展 可以通过php的包管理器(比如apt、yum、brew等)来进行安装,也可…

    PHP 2023年5月26日
    00
  • 查找php配置文件php.ini所在路径的二种方法

    一、使用phpinfo()函数查找php.ini所在路径 在你的Web服务器上创建一个info.php文件,代码如下: <?php phpinfo(); ?> 把该文件上传到你的服务器运行。通过访问该文件的URL,会看到一份PHP信息的清单。 查找 Loaded Configuration File,即可找到php.ini文件所在路径。例如: L…

    PHP 2023年5月26日
    00
  • PHP编码规范-php coding standard

    PHP编码规范,也被称为PHP Coding Standard,是指为了保持PHP代码的统一性和可读性而约定的一系列规范。它定义了变量命名、代码缩进、函数库的使用等方面的规则。在团队协作、代码交接、代码维护等过程中,遵守PHP编码规范能够提高代码质量和效率,减少出错率。 以下是PHP编码规范的完整攻略: 1. 缩进 每个缩进层次使用4个空格,而不是Tab键。…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部