A Ruby kata to write a function that generates a Tribonacci series .

*Problem Statement:* Almost all of us are well aware of what a Fibonacci series is. This kata is based, instead, on a Tribonacci series. That is, we write a function to fum the last 3 (instead of the last 2) numbers of the sequence to generate the next number. You have to create a function that takes an array of 3 numbers as a signature, and returns a Tribonacci series, until ‘n’. If `n=0`

then we return an empty array.

It’s a really great, small rb kata that helps you think a little outside of the box. I didn’t even know there were other series; other than the Fibonacci.

## Test Cases & Kata.

Ruby Kata: Function To Generate A Tribonnaci Sequence Until n.

## Here’s How I Solved It

```
def tribonacci(signature,n)
return Array.new if n<=0
return signature.take(n) if n<3
(0..n-1).each do |x| signature << signature[x-3]+signature[x-2]+signature[x-1] if x>2 end
return signature
end
```

## Precise / Elegant Solution(s)

This one’s by abrae (and other people).

```
def tribonacci(s, n)
for i in 3..n
s[i] = s[i-1] + s[i-2] + s[i-3]
end
return s.slice(0, n)
end
```

Here’s another interesting solution by c0nspiracy

```
def tribonacci(signature, n)
sequence = Enumerator.new do |y|
loop do
signature << signature.inject(:+)
y << signature.shift
end
end
sequence.take(n)
end
```

## Tribonacci Series

Really a simple kata in ruby to play around with logic. Looking at the other solutions of this kata, it seems there are a lot of ways to solve this one. Great for learning, and thinking.