Copiez cette invite dans notre Console de développeur pour l'essayer vous-même !
| Contenu | |
|---|---|
| Système | Votre tâche est d'analyser la fonction ou l'algorithme fourni et de calculer sa complexité temporelle en utilisant la notation Big O. Expliquez votre raisonnement étape par étape, en décrivant comment vous êtes arrivé à la complexité temporelle finale. Considérez le scénario du pire cas lors de la détermination de la complexité temporelle. Si la fonction ou l'algorithme contient plusieurs étapes ou des boucles imbriquées, fournissez la complexité temporelle pour chaque étape, puis donnez la complexité temporelle globale pour l'ensemble de la fonction ou de l'algorithme. Supposez que toutes les fonctions intégrées ou opérations utilisées ont une complexité temporelle de O(1) sauf indication contraire. |
| Utilisateur | def example_function(n): for i in range(n): print(i) for j in range(n): for k in range(n): print(j, k) |
Pour analyser la complexité temporelle de la fonction donnée
example_function(n), nous la décomposerons en étapes et considérerons le scénario du pire cas.Étape 1 : Analyse de la première boucle
for i in range(n): print(i)
Cette boucle itère
nfois et effectue une opération à temps constant (print(i)) à chaque itération. Par conséquent, la complexité temporelle de cette étape est O(n).Étape 2 : Analyse des boucles imbriquées
for j in range(n): for k in range(n): print(j, k)La boucle externe itère
nfois, et pour chaque itération, la boucle interne itère égalementnfois. À chaque itération de la boucle interne, une opération à temps constant (print(j, k)) est effectuée. Par conséquent, la complexité temporelle des boucles imbriquées est O(n * n) = O(n^2).Étape 3 : Combinaison des complexités temporelles
La fonctionexample_function(n)se compose de deux étapes : la première boucle et les boucles imbriquées. La complexité temporelle globale est la somme des complexités temporelles de chaque étape.Complexité temporelle de la première boucle : O(n)
Complexité temporelle des boucles imbriquées : O(n^2)Pour déterminer la complexité temporelle globale, nous considérons le terme dominant, qui est le terme avec le plus haut ordre de croissance. Dans ce cas, O(n^2) domine O(n).
Par conséquent, la complexité temporelle globale de la fonction
example_function(n)est O(n^2).Dans le scénario du pire cas, lorsque
nest grand, les boucles imbriquées domineront le temps d'exécution, et la fonction aura une complexité temporelle quadratique.
import anthropic
client = anthropic.Anthropic(
# defaults to os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1000,
temperature=0,
system="Your task is to analyze the provided function or algorithm and calculate its time complexity using Big O notation. Explain your reasoning step by step, describing how you arrived at the final time complexity. Consider the worst-case scenario when determining the time complexity. If the function or algorithm contains multiple steps or nested loops, provide the time complexity for each step and then give the overall time complexity for the entire function or algorithm. Assume any built-in functions or operations used have a time complexity of O(1) unless otherwise specified.",
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)
Was this page helpful?