php递归函数详解_php递归优化费波那切

php递归函数详解_php递归优化费波那切PHP递归算法代码:复制代码代码如下:<?php//定义PI一分的角度的值define(“PII”,M_PI/180);//新建图像资源,并定义其背景为白色,前景色为黑色$im=imagecreate(670,500);$white=imagecolorallocate($im,0xFF,0xFF,0xFF);$g=imagecolorallocate($im,0x00,0x00,0x0…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

PHP递归算法代码:

复制代码代码如下:

< ?php

//定义PI一分的角度的值 define(“PII”,M_PI/180);

//新建图像资源,并定义其背景为白色,前景色为黑色

$im=imagecreate(670,500);

$white=imagecolorallocate($im,0xFF,0xFF,0xFF);

$g=imagecolorallocate($im,0x00,0x00,0x00);

//从下面实例化的代码可以得知,初始值$x,$y,$L,$a别分为300,500,100,270

functiondrawLeaf($g,$x,$y,$L,$a)

{ global$im; $B=50; $C=9; $s1=2; $s2=3; $s3=1.2;

if($L>$s1){

//计算叶子的定位上面

$x2=$x+$L*cos($a*PII);

$y2=$y+$L*sin($a*PII);

$x2R=$x2+$L/$s2*cos(($a+$B)*PII);

$y2R=$y2+$L/$s2*sin(($a+$B)*PII);

$x2L=$x2+$L/$s2*cos(($a-$B)*PII);

$y2L=$y2+$L/$s2*sin(($a-$B)*PII);

//计算叶子的定位下面

$x1=$x+$L/$s2*cos($a*PII);

$y1=$y+$L/$s2*sin($a*PII);

$x1L=$x1+$L/$s2*cos(($a-$B)*PII);

$y1L=$y1+$L/$s2*sin(($a-$B)*PII);

$x1R=$x1+$L/$s2*cos(($a+$B)*PII);

$y1R=$y1+$L/$s2*sin(($a+$B)*PII);

//别分画叶子的主干以及叶面

ImageLine($im,(int)$x,(int)$y,(int)$x2,(int)$y2,$g);

ImageLine($im,(int)$x2,(int)$y2,(int)$x2R,(int)$y2R,$g);

ImageLine($im,(int)$x2,(int)$y2,(int)$x2L,(int)$y2L,$g);

ImageLine($im,(int)$x1,(int)$y1,(int)$x1L,(int)$y1L,$g);

ImageLine($im,(int)$x1,(int)$y1,(int)$x1R,(int)$y1R,$g);

//再次递归调用本身

drawLeaf($g,$x2,$y2,$L/$s3,$a+$C);

drawLeaf($g,$x2R,$y2R,$L/$s2,$a+$B);

drawLeaf($g,$x2L,$y2L,$L/$s2,$a-$B);

drawLeaf($g,$x1L,$y1L,$L/$s2,$a-$B);

drawLeaf($g,$x1R,$y1R,$L/$s2,$a+$B);

}

}

//实例化

drawLeaf($g,300,500,100,270);

header(“Content-type:image/png”);

imagepng($im);

?>

在我个人的PHP编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考PHP手册。希望下面的代码,会更有利于对PHP递归算法以及静态变量的理解

复制代码代码如下:

header(“Content-type:text/plain”); functionstatic_function()

{

static$i=0;

if($i++<10)

{

echo$i.”n”;

static_function();

}

}

static_function();10)

这段PHP递归算法代码会如数输出1到10的数字。在static_function函数第二次运行时,变量i由于是静态变量,所以仍被保留不被释放,进而可以得到自增的值。

www.bkjia.comtrueTechArticlePHP递归算法代码: 复制代码代码如下: ?php //定义PI一分的角度的值 define(PII,M_PI/180); //新建图像资源,并定义其背景为白色,前景色为黑色…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169580.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue之element-ui文件上传「建议收藏」

    vue之element-ui文件上传「建议收藏」文件上传需求  对于文件上传,实际项目中我们的需求一般分两种:对于单个的文件上传,比如拖动上传个图片之类的,或者是文件。 和表单一起实现上传(这种情况一般都是文件上传之后,后端返回保存在服务器的文件名,最后和我们的表单一起上传)对于第一种情况,通过看api就很明了。http://element-cn.eleme.io/#/zh-CN/component/upload对于第二…

    2022年8月15日
    6
  • 数据挖掘/机器学习/算法岗2017校招面试总结「建议收藏」

    数据挖掘/机器学习/算法岗2017校招面试总结「建议收藏」目前就职于腾讯,想内推朋友可以发我简历(校招/社招都要),邮箱384375530@qq.com,注明岗位和工作城市。这个岗位叫法很多,算法岗,数据挖掘岗,机器学习岗,基础研究等等,总结一下从16年9月校招的面试情况。百度:师姐给我内推的,一面聊了2个半小时,基本在写代码。用MapReduce写好友推荐,在一堆单词里面找出现次数最多的k个;设计一个栈,O(1)时间返回最值;求多叉树深…

    2022年6月12日
    35
  • 数据仓库——阿里五层模型架构「建议收藏」

    数据仓库——阿里五层模型架构「建议收藏」目录1.ODS数据准备层2.DWD数据明细层3.DW(B/S)数据汇总层4.DM数据集市层5.ST数据应用层解码OneData,阿里的数仓之路1.ODS数据准备层

    2022年8月5日
    10
  • 一文带你通俗易懂地了解word2vec原理

    一文带你通俗易懂地了解word2vec原理词向量、Wordembedding、语言模型训练(LanguageModelTraining)、CBOW(ContinuousBagofWords)、Skipgram、NegativeSampling(负采样)、SkipgramwithNegativeSampling(SGNS)、Word2vec训练过程

    2022年5月17日
    48
  • Postgresql+Springboot yml基本使用[通俗易懂]

    Postgresql+Springboot yml基本使用[通俗易懂]一、Postgresql介绍PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函

    2025年7月14日
    3
  • 【8】进大厂必须掌握的面试题-Java面试-异常和线程

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 Q1。错误和异常有什么区别? 错误是在运行时发生的不可恢复的情况。如OutOfMemory错误。这些JVM错误无法在…

    2021年6月23日
    107

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号