1. Pensando
O problema do coelho é uma declaração figurativa da série Fischer, que é uma questão levantada em suas obras de um matemático chamado Fibonacci.
2. Descrição
O problema com sua técnica física é: se um bebê dá à luz um bebê todos os meses, o bebê começa a dar à luz um bebê um mês depois. No começo, havia apenas um bebê, e havia dois meninos em um mês, três meninos em dois meses e cinco meninos em três meses (o bebê foi colocado em produção) ...
Nós o expressamos de maneira matemática, que é o seguinte conjunto de sequências:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ......
Nota: O bebê recém -nascido levará um mês para iniciar a produção! E esses coelhos são imortais! ! !
3. Regras
Quando somos inexplicavelmente expostos a esse problema, é difícil encontrar as regras, mas pense nesse problema de acordo com as leis das seqüências em matemática e aguarde a comparação? Diferença de avatar? Ou outra coisa? Como essa é uma questão levantada pelos matemáticos, deve haver certas regras matemáticas nela, certo? Qual é a regra? Se você analisar cuidadosamente o conjunto de seqüências acima, já terá a resposta. É isso mesmo, é expresso em uma frase. A partir do terceiro termo, a soma dos dois primeiros termos é igual ao terceiro termo.
Supondo que o valor do enésimo termo seja FN, a regularidade da sequência é expressa o seguinte usando fórmulas matemáticas:
4. Pseudocode
O chamado código pseudo-código não é um código real. Não pode ser executado na máquina. É apenas um símbolo significativo entre linguagem natural e linguagem de programação que expressa a lógica do programa. Para o pseudocódigo do problema do coelho, usamos o método recursivo da fórmula acima aqui, e podemos ter o seguinte pseudocódigo:
Procedimento fib (n) [if (n <0) print ("erro de entrada"); If (n = 0 ou n = 1) retornar (n); Else Return (Fib (N-1) + Fib (N-2)); ]De acordo com o conceito de recursão descrito no artigo anterior, você pode consultar o "Hanno Problem" anterior para obter detalhes. Comparado a todos, você não estará mais familiarizado com a recursão. Em seguida, com base nas fórmulas matemáticas que obtivemos acima, a dedução de tal pseudocódigo de recursão será muito concisa e clara. Mas, hum, você deve ter adivinhado, eu quero dizer isso. Você encontrou um problema de que, quando nosso valor N é muito grande, o programa será mais lento?
Se você descobrir, isso significa que você pensou seriamente sobre esse problema e também deve resolver as dúvidas em seu coração. Se ainda não houver dúvida, resolvido, deixe -me resolver as dúvidas de todos. Por que é mais lento? O motivo é que, quando calculamos o enésimo termo, precisamos calcular os termos N-1 e N-2 novamente e ambos os termos foram calculados antes. Quando encontramos o próximo número, ainda precisamos calculá -lo no lado. Invisivelmente, fizemos muito trabalho inútil.
Então, temos uma boa maneira de resolver esse problema? Há uma resposta. De acordo com a análise acima, quando resolvemos o enésimo termo, os termos anteriores de N-1 e N-2 foram resolvidos. Então, por que não salvamos? ? ? ?
Haha, você de repente percebeu isso? Sim! Usamos espaço para trocar tempo aqui, o que pode melhorar muito a eficiência! Não vou escrever pseudo-código aqui.
5 Código
OK, eu vendi tudo, basta enviar o código:
classe pública fibonacci {public static void main (string [] args) {int [] fib = new int [20]; fib [0] = 0; fib [1] = 1; for (int i = 2; i <fib.length; i ++) {fib [i] = fib [i-1]+fib [i-2]; } para (int i = 0; i <fib.length; i ++) {System.out.print (fib [i]+""); } System.out.println (); }}6. Pensando
Aqui, propomos uma questão de pensamento. Se um coelho não dá à luz um coelho e vários coelhos, como devemos resolvê -lo? Obviamente, o que queremos dizer com o parto é um número fixo. Um coelho não dará à luz mais e um coelho não dará à luz menos, caso contrário, será impossível resolvê -lo.
Não há código aqui. Você pode encontrar os recursos apropriados on -line e ver como resolvê -los.
Resumir
O exposto acima é todo o conteúdo deste artigo sobre a análise de código do idioma Java para resolver problemas de coelho. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la!