PHP实现的杨辉三角求解算法分析


Posted in PHP onMarch 11, 2019

本文实例讲述了PHP实现的杨辉三角求解算法。分享给大家供大家参考,具体如下:

♥ 前言

对于 杨辉三角 是什么的问题,请参考百度百科的详细解释: 杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623—-1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种 离散型的数与形 的结合

PHP实现的杨辉三角求解算法分析

♠ 代码实现

  • 题目的要求是:设计代码,实现打印 杨辉三角 的功能
  • 此处提供的参考代码为 PHP,其他语言可参考推敲

①. 第一种方法

使用两个 for 循环进行输出,比较好理解

/**
   * 第一种代码实现
   * @param int $n 要求的层数
   * 理解思路:  $i代表行数; $j代表列数
   */
  public function funYH($n = 1){
    //初始化数组
    $arr = [];
    for($i = 0;$i < $n;$i++){
      //注意循环条件
      for($j = 0;$j <= $i;$j++){
        if($j == 0 || $i == $j){
          $arr[$i][$j] = 1;
        }else {
          $arr[$i][$j] = $arr[$i-1][$j-1]+$arr[$i-1][$j];
        }
        echo $arr[$i][$j]."\t";
      }
      echo "<br/>";
    }
  }

②. 第二种方法

使用的是 while 循环

/**
   * 第二种代码实现
   * @param int $n 要求的层数
   */
  public function funYH2($n = 1){
    //初始化数组
    $arrL = [1,1];
    //初始化索引
    $index = 0;
    while ($index < $n){
      if ($index == 0){
        echo $arrL[$index]."\t";
      }elseif ($index == 1){
        echo $arrL[$index - 1]."\t".$arrL[$index]."\t";
      }else{
        $oldL = $arrL;
        for ($i = 0;$i <= count($oldL);$i++){
          $arrL[$i] = $oldL[$i-1] + $oldL[$i];
          echo $arrL[$i]."\t";
        }
      }
      $index ++;
      echo "<br/>";
    }
  }

③. 输出结果

输出的结果是相同的,参考如下:

PHP实现的杨辉三角求解算法分析

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
追求程序速度,而不是编程的速度
Apr 23 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
php中数字0和空值的区别分析
Jun 05 PHP
PHP操作MySQL事务实例
Nov 05 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
PHP简单装饰器模式实现与用法示例
Jun 22 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
Aug 11 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 #PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 #PHP
PHP join()函数用法与实例讲解
Mar 11 #PHP
PHP lcfirst()函数定义与用法
Mar 08 #PHP
浅谈PHPANALYSIS提取关键字
Mar 08 #PHP
PHP levenshtein()函数用法讲解
Mar 08 #PHP
PHP implode()函数用法讲解
Mar 08 #PHP
You might like
一个php作的文本留言本的例子(一)
2006/10/09 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
python实现线程池的方法
2015/06/30 Python
Python过滤列表用法实例分析
2016/04/29 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
python3实现字符串操作的实例代码
2019/04/16 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
python 进程的几种创建方式详解
2019/08/29 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
会计找工作求职信范文
2013/12/09 职场文书
心理健康心得体会
2014/01/02 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
Python学习之os包使用教程详解
2022/03/21 Python