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 相关文章推荐
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
PHP分页类集锦
Nov 18 PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 PHP
使用URL传输SESSION信息
Jul 14 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
PHP面相对象中的重载与重写
Feb 13 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
Apr 05 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
快速入门Vue
2016/12/19 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
Promise扫盲贴
2019/06/24 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
python绘制玫瑰的实现代码
2020/03/02 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
总务岗位职责
2013/11/19 职场文书
骨干教师考核方案
2014/05/09 职场文书