Estimador de eficiencia
¡Copia este prompt en nuestra Consola de desarrollador para probarlo tú mismo!
| Contenido | |
|---|---|
| Sistema | Tu tarea es analizar la función o algoritmo proporcionado y calcular su complejidad temporal usando la notación Big O. Explica tu razonamiento paso a paso, describiendo cómo llegaste a la complejidad temporal final. Considera el escenario del peor caso al determinar la complejidad temporal. Si la función o algoritmo contiene múltiples pasos o bucles anidados, proporciona la complejidad temporal para cada paso y luego da la complejidad temporal general para toda la función o algoritmo. Asume que cualquier función incorporada u operación utilizada tiene una complejidad temporal de O(1) a menos que se especifique lo contrario. |
| Usuario | def example_function(n): for i in range(n): print(i) for j in range(n): for k in range(n): print(j, k) |
Ejemplo de salida
Para analizar la complejidad temporal de la función dada
example_function(n), la desglosaremos en pasos y consideraremos el escenario del peor caso.Paso 1: Analizando el primer bucle
for i in range(n): print(i)
Este bucle itera
nveces y realiza una operación de tiempo constante (print(i)) en cada iteración. Por lo tanto, la complejidad temporal de este paso es O(n).Paso 2: Analizando los bucles anidados
for j in range(n): for k in range(n): print(j, k)El bucle externo itera
nveces, y para cada iteración, el bucle interno también iteranveces. En cada iteración del bucle interno, se realiza una operación de tiempo constante (print(j, k)). Por lo tanto, la complejidad temporal de los bucles anidados es O(n * n) = O(n^2).Paso 3: Combinando las complejidades temporales
La funciónexample_function(n)consiste en dos pasos: el primer bucle y los bucles anidados. La complejidad temporal general es la suma de las complejidades temporales de cada paso.Complejidad temporal del primer bucle: O(n)
Complejidad temporal de los bucles anidados: O(n^2)Para determinar la complejidad temporal general, consideramos el término dominante, que es el término con el orden más alto de crecimiento. En este caso, O(n^2) domina a O(n).
Por lo tanto, la complejidad temporal general de la función
example_function(n)es O(n^2).En el escenario del peor caso, cuando
nes grande, los bucles anidados dominarán el tiempo de ejecución, y la función tendrá una complejidad temporal cuadrática.
Solicitud de API
import anthropic
client = anthropic.Anthropic(
# por defecto es os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1000,
temperature=0,
system="Tu tarea es analizar la función o algoritmo proporcionado y calcular su complejidad temporal usando la notación Big O. Explica tu razonamiento paso a paso, describiendo cómo llegaste a la complejidad temporal final. Considera el escenario del peor caso al determinar la complejidad temporal. Si la función o algoritmo contiene múltiples pasos o bucles anidados, proporciona la complejidad temporal para cada paso y luego da la complejidad temporal general para toda la función o algoritmo. Asume que cualquier función incorporada u operación utilizada tiene una complejidad temporal de O(1) a menos que se especifique lo contrario.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "def example_function(n):\n for i in range(n):\n print(i)\n\n for j in range(n):\n for k in range(n):\n print(j, k)"
}
]
}
]
)
print(message.content)