Como prometi que minha próxima postagem seria sobre SQL, resolvi fazer a sequência de Fibonacci no SQL Server.
O SQL Server e o Transact SQL permitem a criação de funcions, procedures ou mesmo queries com o uso de várias construções comuns em linguagens de programação, como while, if etc.
A sequência de Fibonacci é um exercício muito comum de ser feito em cursos técnicos ou faculdades de áreas relacionadas à informática, e é um exercício clássico de programação.
Para quem não sabe, a
Sequência de Fibonacci é uma sequência onde o próximo número sempre é a soma dos dois anteriores, partindo do 1, por exemplo:
1,1,2,3,5,8,13,21
O número de ouro, ou razão áurea, se dá pela divisão de dois termos vizinhos da sequência de Fibonacci, como por exemplo 13/5. Esse número, representado pela letra grega Φ (phi) é de grande importância na matemática e na biologia, já que indica a proporção em que se dá o crescimento biológico. Várias partes de nosso corpo (e de outras espécies) seguem essa
proporção áurea.
O número de ouro é um número irracional, porém quanto mais longe (maiores os termos) você chegar na sequência de Fibonacci mais preciso será o seu número de ouro.
Esse é um exercício bastante praticado por quem está começando em uma linguagem, é um clássico, por isso resolvi fazer esse post com a série de Fibonacci em SQL.
declare @anterior double precision = 1
declare @proximo double precision = 1
declare @temp double precision = 0
declare @termo int = 1
declare @numerodourado double precision = 0
create table #fib
(
anterior double precision ,
proximo double precision ,
numeroouro double precision
)
WHILE (@termo <= 100 )
begin
set @temp = @anterior + @proximo
set @anterior = @proximo
set @proximo = @temp
set @numerodourado = @proximo/@anterior
insert into #fib values (@anterior, @proximo, @numerodourado)
set @termo = @termo+1
end
select * from #fib
drop table #fib
Esse código chega até o termo de número 100 na sequência. Você pode incrementar mostrando mais termos, porém, como usamos aqui uma tabela temporária, você deve levar em conta o crescimento dessa tabela (e do TempDB). Você pode fazer a sequência em uma tabela fixa e deixar pré-calculado, para consultar quando precisar, ou selecionar os dois últimos termos para continuar de onde parou. Tente fazer esses exercícios.
Have Fun ;)
Comentários
Postar um comentário