將此提示複製到我們的開發人員 Console 中,自己嘗試一下!

Content
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 請求

注意: Claude 3 Opus 即將在 Bedrock API 中推出。

import anthropic

client = anthropic.Anthropic(
    # 默認為 os.environ.get("ANTHROPIC_API_KEY")
    api_key="my_api_key",
)
message = client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1000,
    temperature=0,
    system="你的任務是分析提供的函數或算法,並使用大O符號計算其時間複雜度。逐步解釋你的推理過程,描述你是如何得出最終的時間複雜度的。在確定時間複雜度時,考慮最壞情況。如果函數或算法包含多個步驟或嵌套循環,請提供每個步驟的時間複雜度,然後給出整個函數或算法的總體時間複雜度。除非另有說明,否則假設使用的任何內置函數或操作的時間複雜度為O(1)。",
    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)