Algoritmo de programación clásico para dar a luz conejos
En general, los conejos tienen la capacidad de reproducirse dos meses después de nacer. Una pareja de conejos puede dar a luz a un par de crías de conejo cada mes. Si no mueren todos los conejos, ¿cuántas parejas de conejos se producirán al cabo de un año?
1 de enero
1 de febrero
2 de marzo
3 de abril
5 de mayo
8 junio
13 julio
21 agosto
34 septiembre
55 octubre
89 noviembre
144 diciembre
233 13 meses
Tipo 1:
Subcomando privado1_Click()
i = 0
x = 1
y = 1
b = x & "," & y
Para n = 3 a 13 pasos 1
i = x + y
x = y
y = i
b = b & "," & i
Siguiente
Imprimir b
End Sub
Este algoritmo es el más clásico. De hecho, el número del mes A es solo conejos viejos más conejos recién nacidos. El conejo viejo lo calculó así: porque la cantidad de producción del mes actual es el número total de conejos del mes anterior, y esta cantidad de producción nació del conejo viejo. Entonces, el número de conejos viejos es el número del mes a-1, que es el número del mes anterior. Los conejos nuevos se calculan así: debido a que los conejos nuevos son el número de reproducción del mes anterior, es decir, el número de reproducción en los meses a-1, y este número de reproducción está determinado por el número total en los meses a-2, por lo que los nuevos conejos los conejos están en los meses a-2. Entonces, de acuerdo con este principio, se establece el primer método.
Tipo 2:
Subcomando privado1_Click()
i = 0
x = 1
y = 1
z = 2
b = x & "," & y & "," & z
Para n = 4 a 13 Paso 1
i = y * 2 + x
x = y
y = z
z = i
b = b & "," & i
Siguiente
Imprimir b
End Sub
La lógica del segundo algoritmo es:
(Total mensual del mes A-2) * 2 + (Total del mes a-marzo)
Porque la cantidad de producción del mes actual es el número total de conejos del mes pasado y el mes actual El número de conejos nuevos (es decir, conejos nacidos el mes pasado que aún no han nacido este mes) es el número total del mes anterior.
Tipo 3:
Subcomando privado1_Click()
i = 0
x = 1
y = 1
z = 2
b = x & "," & y & "," & z
Para n = 4 a 13 Paso 1
i = z * 2 - x
x = y
y = z
z = i
b = b & "," & i
Siguiente
Imprimir b
Fin Sub
(número total en el mes a*2 ) - (a-total de febrero)
El segundo algoritmo y el tercer algoritmo se basan en el principio del primer algoritmo. Es solo que es demasiado complicado. Solo puedo organizar de manera aproximada su relación lógica en mi mente (de hecho, realmente no lo entiendo), por lo que no todos podrán entenderlo cuando lo escriba. . .
Posdata: Esta secuencia clásica del conejo se puede seguir reproduciendo. Existe una relación de recursividad muy complicada (lo dije yo mismo, aunque nunca supe qué es la recursividad real, pero debería ser similar). La influencia de cada parámetro es muy compleja. Originalmente quería continuar con esta lógica recursiva desordenada, pero cuando pensé en un algoritmo más complicado, casi me volví loco. . Ahhhh, eso es todo por ahora~~~ Deja que tu cerebro descanse. Apaga el fuego.