Flavio Josephus foi umhistoriador judeu famoso doprimeiro seculo, no momento da destruicao do Segundo Templo. Durantea guerra judaico-romana, ele ficoupreso em uma caverna com um grupode 40 soldados cercados pelos romanos. A lendadiz que eles preferia o suicidiodo que serem capturados entao os judeus decidiramformar um circulo e, procedendo asua volta, para matar cadaterceira pessoa restante ate que ninguem foi deixado. Josephus, nao queria de morrer, rapidamente encontrouo local seguro no circulo e assim permaneceu vivo.Voce pode tentar repetir o feito de Flavio no seguinte jogo:http://www.cut-the-knot.org/recurrence/flavius.shtmlUma maneira simples de resolver este problema e utilizar a estrutura de dados fila e realizar uma simulacao para descobrir qual e a posicao do ultimo a morrer no circulo formado. Resultadoinput: 10 3output: morreu 3morreu 6morreu 9morreu 2morreu 7morreu 1morreu 8morreu 5morreu 10Sobrevivente 4 Outra maneira e definir a estrutura recursiva do problema:f(n,k) = sobrevivente em um circulo com n pessoas e salto k comecando na pessoa 1.f(n,k) = ( k-1 + f(n-1,k)) %n + 1f(1,k) = 1O valor k-1 e adicionado ao valor de f(n-1,k) justamente para ajustar o circulo na posicao k-1, lembrando que f(n-1,k) devolve a posicao com relacao primeiro, e o valor +1 e para ajustar corretamente na posicao k. Not so mobilehttp://uva.onlinejudge.org/external/8/839.htmlChocolatehttp://uva.onlinejudge.org/external/109/10970.htmlInvestimento em acoeshttp://br.spoj.com/problems/ACOES1MG/Coconuthttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=557%7CBrick Wall Patternshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=841Colahttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2091Tri Trilinghttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1859 The Coco-Cola Storehttp://uva.onlinejudge.org/index.php?option=onlinejudge&Itemid=8&category=226&page=show_problem&problem=2999Moliu Number Generatorhttp://uva.onlinejudge.org/external/115/11567.html O entendimento e a utilizacao de funcoes recursivas e uma grande arma para resolver varios tipos de problemas. Entre os problemas que sao mais faceis serem resolvidos usando metodos recursivos estao os problemas de contagem. Em alguns casos, o proprio processo que precisamos contar e descrito de maneira recursiva.Em geral, os algoritmos recursivos sao mais faceis de serem entendidos e mais faceis de provar a corretude dos mesmos. Considere o seguinte problema Cola:A cada tres garrafas devolvidas vazias de Choco Cola, ganhe um nova garrafa de Choco Cola.Se voce comprar N garrafas de Choco Cola na loja, quantos refrigerantes voce vai conseguir realizando todas as trocas possiveis?Seja T(n) o numero de refrigerante que voce pode conseguir realizando todas as trocas possiveis.Recorrencia dada pelo professor Fabio Carlos.$$T(n) = \begin{cases}n & n < 3 \\ 3 + T(n-3+1) & \text{caso contrario,} \end{cases}$$Observe que a cada tres refrigerantes, ele ganha um novo refrigerante. Teste Podemos acelerar a recorrencia acima da seguinte maneira:$$T(n) = \begin{cases}n & n < 3 \\ 3* \lfloor n/3 \rfloor + T(n - 3 \lfloor n/3 \rfloor + \lfloor n/3 \rfloor) & \text{caso contrario,} \end{cases}$$Esta solucao e equivalente a solucao dada pelo aluno Alexsandro Oliveira.$$T(n) = \begin{cases}n & n < 3 \\ n - n \text{ mod } 3 + T(n \text{ mod } 3 + \lfloor n/3 \rfloor ) & \text{caso contrario,} \end{cases}$$Esta outra recorrencia tambem resolve o mesmo problema:$$T(n,m) = \begin{cases}n & n+m < 3 \\ n + T( \lfloor (n+m)/3 \rfloor , (n+m) \text{ mod } 3 ) & \text{caso contrario,} \end{cases}$$ No dia 21/06/2013, fizemos um dojo na linguagem Python. O desafio foi implementar uma lista encadeada usando a linguagem Python.Codigo fonte Teste Unitario Ola meninas, estou meio sumida do blog, mas e por conta de eu estar me dedicando mais ao canal no youtube.