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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CSS画猪

    效果查看:http://hovertree.com/texiao/css3/6/CSS3画猪头:http://hovertree.com/texiao/css3/6/1/代码如下:转自:htt

    2021年12月22日
    36
  • LMDB笔记_pdf怎么做笔记

    LMDB笔记_pdf怎么做笔记作为一个计算机底层小白,在了解一个知识点的时候时常需要恶补很多基础知识。本文记录在了解LMDB过程中接触的知识点。LMDB基本架构一个比较官方的解释:lmdb的基本做法是使用mmap文件映射,不管这个文件存储实在内存上还是在持久存储上。lmdb的所有读取操作都是通过mmap将要访问的文件只读的映射到虚拟内存中,直接访问相应的地址.因为使用了read-only的mmap,同样避免了程序错误将存…

    2022年9月29日
    0
  • 什么是协程「建议收藏」

    什么是协程「建议收藏」来自:程序员小灰(微信号:chengxuyuanxiaohui)—————第二天—————————————————什么是进程和线程有一定基础的小伙伴们肯定都知道进程和线程。进程是什么呢?直白地讲,进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源、数据资…

    2022年7月27日
    5
  • 浙江新增python编程_9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段…「建议收藏」

    浙江新增python编程_9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段…「建议收藏」原标题:9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段最近一个非常火爆的话题在家长群引起热议——浙江省中小学学习编程。浙江官方教育部宣布:今年9月份开始的新学期,三到九年级信息技术课将替换新教材。其中,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法等内容按照教材规划五六年级开始接触。下面我们来具体看一…

    2022年5月13日
    48
  • white-space、word-wrap 和word break 属性用法

    white-space、word-wrap 和word break 属性用法

    2022年3月8日
    42
  • 漫画:独立女性真的更讨人喜欢吗?

    今天给大家推荐一篇反套路的漫画 谁说女主都要是清纯白莲花? 《总裁想静静》 漫画已经完结,看起来更过瘾! 第一话 第二话 第三话 原文始发于微信公众号(全栈程序员社区):漫画:独立…

    2021年6月22日
    65

发表回复

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

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