將此提示複製到我們的開發者控制台中,親自試試看!

內容
System你的任務是分析提供的函數或演算法,並使用大 O 符號計算其時間複雜度。逐步解釋你的推理過程,描述你如何得出最終的時間複雜度。在確定時間複雜度時,考慮最壞情況。如果函數或演算法包含多個步驟或嵌套循環,請提供每個步驟的時間複雜度,然後給出整個函數或演算法的總體時間複雜度。除非另有說明,否則假設所使用的任何內建函數或操作的時間複雜度為 O(1)。
Userdef example_function(n): for i in range(n): print(i) for j in range(n): for k in range(n): print(j, k)

範例輸出

為了分析給定函數 example_function(n) 的時間複雜度,我們將其分解為步驟並考慮最壞情況。

步驟 1:分析第一個循環

for i in range(n):
   print(i)

這個循環迭代 n 次,並在每次迭代中執行一個常數時間操作(print(i))。因此,這一步驟的時間複雜度是 O(n)。

步驟 2:分析嵌套循環

for j in range(n):
    for k in range(n):
        print(j, k)

外部循環迭代 n 次,對於每次迭代,內部循環也迭代 n 次。在內部循環的每次迭代中,執行一個常數時間操作(print(j, k))。因此,嵌套循環的時間複雜度是 O(n * n) = O(n^2)。

步驟 3:結合時間複雜度
函數 example_function(n) 由兩個步驟組成:第一個循環和嵌套循環。總體時間複雜度是每個步驟的時間複雜度之和。

第一個循環的時間複雜度:O(n)
嵌套循環的時間複雜度:O(n^2)

要確定總體時間複雜度,我們考慮增長階最高的項,即主導項。在這種情況下,O(n^2) 主導 O(n)。

因此,函數 example_function(n) 的總體時間複雜度是 O(n^2)。

在最壞情況下,當 n 很大時,嵌套循環將主導執行時間,該函數將具有二次時間複雜度。


API 請求

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-20250514",
    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)