Ir para conteúdo
Entre para seguir isso  
Roku

Sequencia de Fibonacci

Recommended Posts

Roku    0
Roku

function fibonacci(n)
        if n < 2 then
           return n
        else
            return fibonacci(n-2) + fibonacci(n-1) 
            end
            end

Para quem ainda tem duvidas em relação a recursividade.

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dartier    0
Dartier

o que é isso? O.o

Compartilhar este post


Link para o post
Compartilhar em outros sites
Roku    0
Roku

a sequencia de fibonacci é uma sequencia numérica na qual um numero tem o valor da soma de deus dois ascendentes.

foi criada pelo matematico arcaico Leonardo de Pisa

 

esse script gera numeros dela.

se alguem quiser, eu tenho um que retorna assim:

fib = {1,1,2,3,5,8,13}

ai vc coloca qnts campos quer

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

Roku pegar dos lua examples nao vale ^^

---no lua examples. fib.lua
-- fibonacci function with cache

-- very inefficient fibonacci function
function fib(n)
N=N+1
if n<2 then
	return n
else
	return fib(n-1)+fib(n-2)
end
end

vc ainda foi e mudo o nome da funçao

function fibonacci(n) ---q?
        if n < 2 then
           return n
        else
            return fibr(n-2) + fibr(n-1) -- nil? 
            end
            end

 

Prefiro o meu

function math.fibonnaci(maxvar)
  local old,now = 1,1
  local lista = {0,old,now}
  while 1 do
	old, now = now, old+now
	lista[#lista+1] = now
	if now >= maxvar then
		return lista
	end
  end
end
print(unpack(math.fibonnaci(1000)))

> 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Roku    0
Roku

caralho

nem vi que tinha isso no lua examples

na verdade nao sei o que são lua examples

meu irmao fez

a mtooooooo tempo

desculpem pelo engano nao sabia que ja tinha um quase igual

 

vo achar um melhor q eu tenho aki e posto pra vcs

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kaotar    5
Kaotar

Velho mas a sua nem funciona...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dean    1
Dean

Você mudou o nome da função então em vez de retornar ela mesma retorna uma função nula.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Roku    0
Roku

verdade.

nem notei

é pq meu irmao fez uma fib e otra fibr

a segunda é mais completa q a primeira.

a primeira é essa, mas so prolonguei o nome um pokinho.

obrigado pela correção.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

roku.

seu irmao pegou isso pronto.

ta exatamente igual a do example

Compartilhar este post


Link para o post
Compartilhar em outros sites
ushoriuma    0
ushoriuma

mock a sua ta errada, comeca com 1 e nao com 0

todo lugar q vejo falano da sequencia fibo ta falano q comeca com 1 x.x

function fibo(x)

local a,b,c,d = 0,1,0,0

while d < x do

c = a + b

b = a

a = c

print©

d = d + 1

end

end

fibo(5)

retorna 1,1,2,3,5

xD

Compartilhar este post


Link para o post
Compartilhar em outros sites
Roku    0
Roku

/\

axo q n

pense bem

0+ 1 = 1 ai depois 1 + 1 = 2

só q tem uma quebra no começo, uma exeção, digamos.

@mock

ele nao copiou, pense bem: esse modo é o mais simples, entao, muitas pessoas fazem assim. ele nao mexe com lua, e sim com C, ele nao tem lua examples, nem eu. na pior das hipoteses, ele ja viu. e isso eu duvido muito. sem falar que a função nao tá exatamente igual.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie    8
Baxnie

Recursividade não é muito legal quando se quer um valor muito alto.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Iago Felipe    5
Iago Felipe
/\

axo q n

pense bem

0+ 1 = 1 ai depois 1 + 1 = 2

só q tem uma quebra no começo, uma exeção, digamos.

@mock

ele nao copiou, pense bem: esse modo é o mais simples, entao, muitas pessoas fazem assim. ele nao mexe com lua, e sim com C, ele nao tem lua examples, nem eu. na pior das hipoteses, ele ja viu. e isso eu duvido muito. sem falar que a função nao tá exatamente igual.

 

FAILMAN :fail:

 

Talves ele não tenha copiado, foi mesmo um engano, coincidencia, tem pessoas que fazemdo mesmo jeito.

 

Mais o Roku a sua parece não funcionar :D

 

e a do mock n ta igual a do roku, seila.

 

eu n entendo mto de script, mais entendi oq o mock quis dizer. KOSAPKSAO

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

@ushoriuma

ah nem vi :o

vlw ai

@Roku

ele pdoe nao ter copiado mais que fico igual ficou o0

Compartilhar este post


Link para o post
Compartilhar em outros sites
Socket    0
Socket

O meu é mais chique:

function fib(n,last,atual)
   return function()
       t = (t or 1)+1
       last, atual = last or 1, atual or 0
       lastn, atualn = last, atual
       last, atual = atual, atualn + lastn
       if t <= n+1 then
           return lastn+atualn
       end
   end
end

for i in fib(1000) do
   print(i)
end

O maior valor que Lua retorna sem bugar é 72723460248141, pois o próximo seria 44945570212853 + 72723460248141, o que já buga em lua.

 

EDIT: Pensei que o meu tinha ficado umas 3x maior que o do Mock, fico do mesmo tamanho :D

Editado por Socket

Compartilhar este post


Link para o post
Compartilhar em outros sites
ushoriuma    0
ushoriuma

roku a minha ta certinha testa aew p vc v!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×