# Fibbonacci and Factorial

### Pisano Period

{% tabs %}
{% tab title="Patterns" %}
![Random colors based on Pisano Period](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSaRjHcA50YpYFixXc4%2F-MSaUx0ZUiDF3z3Z7Nbd%2FpisanoPeriod.png?alt=media\&token=e2d552e1-b063-49d2-a2a3-d9ee338fe0bc)
{% endtab %}

{% tab title="Colors 1" %}
![](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSkgLFW4QSQQvB88GbA%2F-MSkhEBxsEuZCd6FXFm0%2FpisanoPeriod_1.png?alt=media\&token=10172058-c964-48a6-a904-eae7c8208f6b)
{% endtab %}

{% tab title="Colors 2" %}
![](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSkgLFW4QSQQvB88GbA%2F-MSkhPIqGo_NcKDvbku6%2FpisanoPeriod_2.png?alt=media\&token=95a24bd7-bd31-48bc-8235-4e799e6e30fa)
{% endtab %}

{% tab title="Colors 3" %}
![](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSkgLFW4QSQQvB88GbA%2F-MSkhaMM4IB1B9Hqb8XV%2FpisanoPeriod_3.png?alt=media\&token=0f915d26-940a-4eb8-b200-8e8ff99887a7)
{% endtab %}

{% tab title="Colors 4" %}
![](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSkgLFW4QSQQvB88GbA%2F-MSkhjHs60lGHKYE2ZzW%2FpisanoPeriod_4.png?alt=media\&token=5faf09cc-a00c-4884-ac31-8570129006f5)
{% endtab %}

{% tab title="Colors 5" %}
![](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSkgLFW4QSQQvB88GbA%2F-MSkhpOY0OeBIYsd1ULa%2FpisanoPeriod_5.png?alt=media\&token=7c6f17a3-1725-4a1d-b773-7e33d4ec9d03)
{% endtab %}
{% endtabs %}

![Pisano Period](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSaRjHcA50YpYFixXc4%2F-MSaV2hySw_QIGTJ-kv3%2Ffib_2021-02-03_11-20-20.png?alt=media\&token=e69beb1d-0b7c-4ab4-b60f-74383a8ec45f)

```d
wc = 20;
hc = 12;
wd = 2;
ht = 2;

//Pisano Period
fp1 = fibbonacci(1..wc)%(1..hc)<1>;

//Random Colors
uq1 = List.UniqueItems(List.Flatten(fp1,-1));
rn1 = Math.Round(Math.RemapRange(Math.RandomList(List.Count(uq1)),0,255));
cl1 = Color.ByARGB(255,rn1,List.Shuffle(rn1),List.Reverse(rn1));
cl2 = Dictionary.ByKeysValues(uq1+"",cl1).ValueAtKey(fp1+"");

//Panels
pn1 = Rectangle.ByWidthLength(Plane.ByOriginNormal(Point.ByCoordinates((wd/2..#wc..wd),0,(ht/2..#hc..ht)<2>),Vector.YAxis()),wd,ht).Patch();
pn2 = GeometryColor.ByGeometryColor(pn1,cl2);
```

{% file src="<https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MSaVMiJP32Z8dr8xk2V%2F-MSaVbBbGMlfUiP3JKgg%2FpisanoPeriod.zip?alt=media&token=da47ae55-3455-4128-88e8-03e217601841>" %}
Dynamo Version 2.11
{% endfile %}

### Fibbonacci Series

![Fibbonacci](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MQLX9bwPUvuQ45584yN%2F-MQLY7QturpAupQ5P1Wm%2Ffibbonacci.png?alt=media\&token=dbd991a5-997c-4174-9a28-263745cc5ae3)

```d
def fibbonacci(n)
{
    return [Imperative]
    {
	    if (n == 0)
	    {
	    	return 0;
	    }
	    elseif (n == 1)
	    {
	    	return 1;
	    }
	    else
	    {
	    	return (fibbonacci(n-1) + fibbonacci(n-2));
	    }
	}
};
```

### Factorials

![Factorial](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-MQLX9bwPUvuQ45584yN%2F-MQLY4BZ8w89dH66C9hH%2Ffactorial.png?alt=media\&token=63099315-e6ac-4093-bf63-f7626fbf83b0)

```d
def factorial(n)
{
    return [Imperative]
    {
	    if (n <= 1)
	    {
	    	return 1;
	    }
	    else
	    {
	    	return n * factorial(n-1);
	    }
	}
};
```
