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 相关文章推荐
PHP has encountered an Access Violation
Jan 15 PHP
PHP 简单日历实现代码
Oct 28 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
php检测数组长度函数sizeof与count用法
Nov 17 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
thinkphp实现分页显示功能
Dec 03 PHP
PHP命名空间namespace的定义方法详解
Mar 29 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 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多态的实现详解
2013/06/09 PHP
javascript offsetX与layerX区别
2010/03/12 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
js实现打字小游戏
2019/12/17 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
python 连接sqlite及简单操作
2017/06/30 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
介绍一下如何优化MySql
2016/12/20 面试题
编辑找工作求职信分享
2014/01/03 职场文书
校本课程教学计划
2015/01/19 职场文书
党支部对转正的意见
2015/06/02 职场文书
横空出世观后感
2015/06/09 职场文书
高中班长竞选稿
2015/11/20 职场文书
Windows server 2016服务器基本设置
2022/08/14 Servers