递归与分形图案

本文介绍了递归的概念,包括递归的定义、实例、无限递归的危害以及递归的基本组成部分。接着,文章探讨了分形,展示了如何通过递归生成各种美丽的几何图案,如三角形、线段、正方形、色子形状、陀螺形、环形图案等。文中还提到了分形颜色处理的两种方法,为读者呈现了一种结合数学和艺术的独特视角。
摘要由CSDN通过智能技术生成

递归与分形

一、递归

1.什么是递归?

递归是函数(方法)自己调用自己。

多个函数相互调用,形成循环调用的过程。

1

methodA(){

methodA();

methodA();

methodA();

methodA();

}

2

methodA(){

methodB();

}

methodB(){

//代码

methodC();

}

methodC(){

//代码

methodB();

}

2.如果递归进入无限递归结果会怎样?

堆栈溢出(错误)

3.在定义递归的时候,必须要设置相应的条件:

1)递归必须要有退出条件

2.)解决同一类问题的集合。

注意: 递归在执行过程中,会不停的开辟内存空间存储数据,所以导致递归的性能非常差。

 

4.递归分为那几部分?

methodA(int i){

//代码1

methodA(i-1);

//代码2

}

while(true){

int i = 10;

}

前段:定义变量对象,计算操作,结束条件

后段:计算操作,返回结果

 

5.举例

斐波那契数列使用递归来实现

1,1,2,3,5,8,13,21,34,...

 

输出10个斐波那契数列,11不计算在内。

Fib(2) = Fib(1)+Fib(1)

Fib(3) = Fib(1)+Fib(2)[Fib(1)+Fib(1)]

Fib(5) = Fib(2)+Fib(3)[Fib(1)+Fib(2)]

public class Fib{
public static void main(String [] args){
Fib f = new Fib();
f.fib(1,1);
}
public void fib(int a,int b){
int i=1;
if(i>10)
return;
i++;
System.out.println(a+"\n"+b+"\n"+(a+b));
fib(a,a+b);
}
}


 

二、分形

分形是递归的应用,运用递归不断的循环,形成非常漂亮的图形。

1.三角形

三角形是先画一个三角形,然后不断的取三遍中点,不断的画,如此循环。

分为上方三角,左边三角,右边三角三个部分,三个递归

int a1,a2,b1,b2,c1,c2;
public void f1(int x1,int x2,int y1){
//画大三角形
int p1,p2,q1,q2,m1,m2,ab,n=3;
ab = Math.abs(x2-x1);
a1 = (x1+x2)/2;
a2 = y1-(int)(ab*Math.pow(3, 0.5)/2);
c1 = x1;
c2 = y1;
b1 = x2;
b2 = y1;
p1 = (a1+c1)/2;
p2 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值