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 函数中使用static的说明

    当在 PHP 函数中使用 static 关键字时,它将用于保留在函数调用之间保留数据的变量。这意味着在函数的连续调用中可以使用同一变量,而不必在每个调用之间重新定义变量。 下面是一个示例,演示如何在函数中使用 static 关键字: function increment() { static $count = 0; $count++; echo $count…

    PHP 2023年5月26日
    00
  • 使用php转义输出HTML到JavaScript

    当将数据从PHP输出到JavaScript时,为了防止XSS攻击,应该对输出的HTML内容进行转义。下面是使用php转义输出HTML到JavaScript的完整攻略: 1. 确认转义的目标 在输出HTML到JavaScript之前,需要先确认需要转义的目标。通常情况下,需要转义的字符包括以下几种: 单引号 ‘ 双引号 ” 尖括号 < > 反斜杠 …

    PHP 2023年5月26日
    00
  • 基于php-fpm的配置详解

    基于 php-fpm 的配置详解 什么是 php-fpm PHP-FPM(FastCGI Process Manager),是 PHP 官方提供的一个 FastCGI 进程管理器。它可以管理运行 PHP 的 FastCGI 进程,以便更好地使用服务器的资源并提高 PHP 应用程序的响应速度。 安装和启动 php-fpm 安装 php-fpm 可以通过包管理器…

    PHP 2023年5月27日
    00
  • php简单检测404页面的方法示例

    下面是关于“php简单检测404页面的方法示例”的完整攻略。 1. 什么是404页面? 在Web开发中,当用户请求不存在的页面或资源时,服务器会返回HTTP状态码为404的页面,这就是404页面。通俗点说,404页面告诉了用户请求的页面不存在。 2. 检测404页面的必要性 在Web开发中,404页面是常见且不可避免的。但是,当用户访问不存在的页面时,服务器…

    PHP 2023年5月26日
    00
  • Ubuntu常用命令大全

    下面就为您详细讲解“Ubuntu常用命令大全”的完整攻略: 1. 简介 Ubuntu常用命令是我们平时Linux系统下使用最频繁的一些操作命令,这些命令在开发、维护Linux系统时很有用。掌握这些命令将使您更加熟练地使用Ubuntu系统,并提高您的生产力。 2. 常用命令大全 下面我们列出了常用的Ubuntu命令及其功能的详细介绍: 2.1 基本命令 pwd…

    PHP 2023年5月27日
    00
  • 不错的一篇面向对象的PHP开发模式(简写版)

    下面是详细讲解“不错的一篇面向对象的PHP开发模式(简写版)”的完整攻略: 标题 不错的一篇面向对象的PHP开发模式(简写版) 概述 该开发模式提倡面向对象思想,即使用类、对象和封装等方式来组织代码。 代码结构 目录结构 project/ ├── config/ │ ├── config.php │ └── database.php ├── controll…

    PHP 2023年5月23日
    00
  • php实现事件监听与触发的方法

    实现事件监听与触发的方法其实可以通过使用观察者模式来完成。观察者模式是一种对象行为模式,使得一个对象能够将自己的状态变化通知其他对象。在该模式中,对象间是松耦合的,即被观察的对象并不知道观察者的细节,观察者也不知道被观察的对象的细节。下面就来详细讲解如何使用PHP来实现事件监听与触发。 确定需求和流程 在实现之前,要先明确自己的实现需求和大致流程。在本例中,…

    PHP 2023年5月27日
    00
  • PHP写UltraEdit插件脚本实现方法

    下面为您详细讲解“PHP写UltraEdit插件脚本实现方法”的完整攻略。 1. 准备工作 要实现PHP编写UltraEdit插件脚本,需要进行以下准备工作: 安装UltraEdit,并熟悉其插件机制; 安装PHP解释器,并配置环境变量; 编写PHP脚本的代码编辑器,推荐使用Sublime Text、Visual Studio Code等。 2. 创建插件脚…

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