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

当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之Smarty入门

    菜鸟学PHP之Smarty入门 简介 Smarty是一个模板引擎,它专门用于分离应用程序逻辑和表示层。它将模板和PHP代码分开处理,在模板中只包含基础HTML、CSS和JavaScript,而不包含PHP的逻辑结构和语句。 Smarty支持标记、变量、修饰器和PHP函数调用等。Smarty的使用可以提高应用程序的可维护性,降低维护成本,极大地提高了开发效率。…

    PHP 2023年5月23日
    00
  • FastAdmin的API接口生成器插件,使用validate验证时报错等问题。

    1、当使用生成接口 生成全局模型时, 生成的validate文件的namespace错误 应为  namespace app\common\validate;实际为 namespace app\api\validate;解决方法:1、找到 application/admin/library/buiapi/stubs/validate.stub 文件命名空间修…

    PHP 2023年4月17日
    00
  • PHP程序员必须知道的两种日志实例分析

    当 PHP 应用程序出现故障或效率低下时,日志记录是一种诊断问题的常见方法。在 PHP 应用程序中,可以使用两种不同的日志记录方式来分析问题 – 请求级别和应用程序级别的日志记录。以下是 PHP 程序员必须知道的这两种日志实例分析的完整攻略: 请求级别的日志记录 请求级别的日志记录在每个请求期间记录请求和响应的详细信息。这些日志由 web 服务器的访问日志和…

    PHP 2023年5月23日
    00
  • PHP 实现代码复用的一个方法 traits新特性

    下面我将详细讲解“PHP 实现代码复用的一个方法 traits新特性”的完整攻略。 什么是 Traits 在 PHP 5.4 后,引入了新特性 Traits。它为 PHP 引入了一种代码重用的方法,尤其是解决了单继承的局限性。Traits 可以看作是一个可复用的代码块集合,可以通过在类中引用 Traits,来实现代码的复用。 Traits 的使用方法 Tra…

    PHP 2023年5月23日
    00
  • 详解微信小程序调用支付接口支付

    下面是详解微信小程序调用支付接口支付的完整攻略。 1.注册商户号并开通支付功能 首先要进行商户号的注册和支付功能的开通,具体可以参考微信支付的官方文档。 2.生成预支付订单 生成预支付订单需要调用支付接口,具体步骤如下: 2.1.获取access_token 在请求之前需要获取access_token,如果已获取,则跳过此步骤。获取方法可以参考微信小程序的官…

    PHP 2023年5月23日
    00
  • MySql数据库查询结果用表格输出PHP代码示例

    下面给出详细讲解”MySql数据库查询结果用表格输出PHP代码示例”的完整攻略。该攻略包含以下步骤: 连接数据库 使用PHP连接到MySql数据库,获取数据库连接对象。示例代码如下: // 连接数据库 $conn = mysqli_connect($servername, $username, $password, $dbname); if (!$conn)…

    PHP 2023年5月26日
    00
  • PHP也能干大事之PHP中的编码解码详解

    PHP也能干大事之PHP中的编码解码详解 1. 什么是编码和解码? 在网络通信过程中,我们经常需要将数据从一种格式转换为另一种格式。编码和解码就是其中的两个重要过程。编码是将数据从一种表示形式转换为另一种表示形式的过程,而解码则是将已编码的数据重新转换成原来的表示形式。 在PHP中,有许多对编码和解码的支持。接下来,我们来详细讲解几种常见的编码和解码方式及其…

    PHP 2023年5月23日
    00
  • php 数组元素快速去重

    以下是 PHP 数组元素快速去重的攻略: 使用 array_unique() 函数进行数组去重 在 PHP 中,我们可以使用 array_unique() 函数快速地去重一个数组。该函数会返回一个新的数组,其中不会包含重复的元素。 以下是该函数的语法: array_unique(array $array [, int $sort_flags = SORT_S…

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