============================================================
千问AI模型性能基准测试报告
生成时间: 2026-02-26 14:44:37
API地址: https://coding.dashscope.aliyuncs.com/apps/anthropic/v1/messages
测试摘要
模型: kimi-k2.5
成功率: 100.0% (4/4)
平均延迟: 24.735秒
最小延迟: 1.420秒
最大延迟: 86.028秒
平均tokens: 328
模型: qwen3.5-plus
成功率: 100.0% (4/4)
平均延迟: 32.542秒
最小延迟: 14.081秒
最大延迟: 78.021秒
平均tokens: 2467
模型: glm-5
成功率: 100.0% (4/4)
平均延迟: 33.340秒
最小延迟: 17.291秒
最大延迟: 54.944秒
平均tokens: 1108
模型: MiniMax-M2.5
成功率: 100.0% (4/4)
平均延迟: 61.487秒
最小延迟: 40.689秒
最大延迟: 77.484秒
平均tokens: 860
详细测试结果
============================================================
模型: qwen3.5-plus
测试: 简单问答
提示词: 什么是Python?请用一句话解释。
状态: ✅ 成功
延迟: 21.368秒
Tokens: 1779
完成原因: end_turn
回复:
Python 是一种广泛使用的、简洁易读的高级通用编程语言。
测试: 代码生成
提示词: 写一个计算斐波那契数列的Python函数。
状态: ✅ 成功
延迟: 16.698秒
Tokens: 1413
完成原因: end_turn
回复:
下面是几种用 Python 实现斐波那契数列的方法,涵盖从基础到优化的不同场景,您可以根据需求选择适合的方式:
1. 递归实现(简单但效率低)
def fib_recursive(n):
"""
使用递归计算第 n 个斐波那契数。
时间复杂度:O(2^n),空间复杂度:O(n)
适用于教学和小规模计算。
"""
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fib_recursive(n - 1) + fib_recursive(n - 2)
2. 迭代实现(推荐,效率高)
def fib_iterative(n):
"""
使用迭代计算第 n 个斐波那契数。
时间复杂度:O(n),空间复杂度:O(1)
适用于大多数实际场景。
"""
if n <= 0:
return 0
elif n == 1:
return 1
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
3. 带缓存的递归实现(优化递归)
from functools import lru_cache
@lru_cache(maxsize=None)
def fib_cached(n):
"""
使用缓存优化递归,避免重复计算。
时间复杂度:O(n),空间复杂度:O(n)
适用于需要递归风格但希望提升性能的场景。
"""
if n <= 0:
return 0
elif n == 1:
return 1
return fib_cached(n - 1) + fib_cached(n - 2)
4. 生成器实现(生成序列)
def fib_generator(n):
"""
生成前 n 个斐波那契数。
时间复杂度:O(n),空间复杂度:O(1)(逐个生成)
适用于需要遍历整个序列的场景。
"""
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
5. 完整工具类(多功能集成)
class Fibonacci:
@staticmethod
def get_nth(n):
"""获取第 n 个斐波那契数(从 0 开始)"""
if n < 0:
raise ValueError("n 必须是非负整数")
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
@staticmethod
def get_sequence(n):
"""获取前 n 个斐波那契数"""
if n <= 0:
return []
seq = [0, 1]
for i in range(2, n):
seq.append(seq[-1] + seq[-2])
return seq[:n]
@staticmethod
def get_until(max_value):
"""获取所有不超过 max_value 的斐波那契数"""
if max_value < 0:
return []
seq = [0, 1]
while True:
next_val = seq[-1] + seq[-2]
if next_val > max_value:
break
seq.append(next_val)
return seq if max_value >= 1 else [0]
示例用法
# 获取第 10 个斐波那契数
print(Fibonacci.get_nth(10)) # 输出: 55
# 获取前 10 个斐波那契数
print(Fibonacci.get_sequence(10)) # 输出: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
# 获取所有不超过 100 的斐波那契数
print(Fibonacci.get_until(100)) # 输出: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
# 使用生成器
for num in fib_generator(10):
print(num, end=' ') # 输出: 0 1 1 2 3 5 8 13 21 34
方法选择建议
| 方法 | 时间复杂度 | 空间复杂度 | 适用场景 |
|---|---|---|---|
| 递归 | O(2^n) | O(n) | 教学、小规模计算 |
| 迭代 | O(n) | O(1) | 推荐,通用高效 |
| 缓存递归 | O(n) | O(n) | 想保留递归结构时 |
| 生成器 | O(n) | O(1) | 遍历序列、节省内存 |
| 工具类 | O(n) | O(n) | 多功能、工程化使用 |
✅ 推荐优先使用迭代法或工具类,它们效率高、易维护,适用于大多数实际场景。
测试: 逻辑推理
提示词: 如果所有的猫都是动物,而且所有的动物都需要食物,那么所有的猫都需要食物吗?请解释你的推理。
状态: ✅ 成功
延迟: 14.081秒
Tokens: 1143
完成原因: end_turn
回复:
是的,所有的猫都需要食物。
这是一个非常经典的逻辑推理,称为三段论(Syllogism)。以下是详细的推理过程:
-
分析前提:
- 前提一(小前提): 所有的猫都是动物。这意味着“猫”这个群体完全包含在“动物”这个更大的群体之内(猫是动物的子集)。
- 前提二(大前提): 所有的动物都需要食物。这意味着“动物”这个群体中的每一个成员都具有“需要食物”这一属性。
-
逻辑推导:
- 既然每一只猫都属于“动物”这一类别,而“动物”这一类别的所有成员都需要食物,那么作为该类别成员的猫,必然也继承了这个属性。
- 用集合论的语言来说:如果集合 A(猫)包含于集合 B(动物),且集合 B 中的所有元素都具有属性 P(需要食物),那么集合 A 中的所有元素也必然具有属性 P。
-
结论:
- 因此,所有的猫都需要食物。
这个推理在逻辑上是有效的,因为如果两个前提都为真,那么结论必然为真。
测试: 创意写作
提示词: 写一个关于时间旅行的微型故事(不超过100字)。
状态: ✅ 成功
延迟: 78.021秒
Tokens: 5532
完成原因: end_turn
回复:
老人启动时光机,回到五十年前。
他拦住年轻的自己:“别登上那艘船!”
年轻人困惑地看他:“为什么?”
“因为你会遇见她,然后失去她。”
年轻人笑了:“哪怕只有一瞬,我也愿意。”
老人消失,历史未变。
爱比时间更坚固。
============================================================
模型: kimi-k2.5
测试: 简单问答
提示词: 什么是Python?请用一句话解释。
状态: ✅ 成功
延迟: 1.420秒
Tokens: 22
完成原因: end_turn
回复:
Python是一种简洁易学、功能强大的高级编程语言,广泛应用于数据分析、人工智能、Web开发等领域。
测试: 代码生成
提示词: 写一个计算斐波那契数列的Python函数。
状态: ✅ 成功
延迟: 86.028秒
Tokens: 990
完成原因: end_turn
回复:
我来写一个计算斐波那契数列的Python函数,并提供几种不同的实现方式:
1. 递归法(最直观但效率低)
def fibonacci_recursive(n):
"""递归实现 - 时间复杂度 O(2^n)"""
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
2. 记忆化递归(优化版)
from functools import lru_cache
@lru_cache(maxsize=None)
def fibonacci_memoized(n):
"""带缓存的递归 - 时间复杂度 O(n)"""
if n <= 0:
return 0
elif n == 1:
return 1
return fibonacci_memoized(n - 1) + fibonacci_memoized(n - 2)
3. 动态规划(推荐)
def fibonacci_dp(n):
"""动态规划 - 时间复杂度 O(n),空间复杂度 O(1)"""
if n <= 0:
return 0
elif n == 1:
return 1
a, b = 0, 1 # 分别代表 F(n-2) 和 F(n-1)
for _ in range(2, n + 1):
a, b = b, a + b # 同时更新两个变量
return b
4. 生成器(适合获取数列)
def fibonacci_generator():
"""无限生成斐波那契数列"""
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# 使用示例:获取前 n 个斐波那契数
def get_fibonacci_sequence(n):
fib_gen = fibonacci_generator()
return [next(fib_gen) for _ in range(n)]
5. 矩阵快速幂(超大数,O(log n))
def matrix_mult(A, B):
"""2x2 矩阵乘法"""
return [
[A[0][0]*B[0][0] + A[0][1]*B[1][0], A[0][0]*B[0][1] + A[0][1]*B[1][1]],
[A[1][0]*B[0][0] + A[1][1]*B[1][0], A[1][0]*B[0][1] + A[1][1]*B[1][1]]
]
def matrix_pow(M, n):
"""矩阵快速幂"""
if n == 1:
return M
if n % 2 == 0:
half = matrix_pow(M, n // 2)
return matrix_mult(half, half)
else:
return matrix_mult(M, matrix_pow(M, n - 1))
def fibonacci_fast(n):
"""矩阵快速幂 - 时间复杂度 O(log n)"""
if n <= 0:
return 0
M = [[1, 1], [1, 0]]
result = matrix_pow(M, n)
return result[0][1]
测试对比
if __name__ == "__main__":
# 测试各方法
n = 10
print(f"F({n}) = {fibonacci_dp(n)}") # 55
print(f"前{n}项: {get_fibonacci_sequence(n)}") # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
# 大数测试
print(f"\nF(100) = {fibonacci_dp(100)}") # 354224848179261915075
print(f"F(1000) 位数: {len(str(fibonacci_dp(1000)))}") # 209位
推荐使用场景
| 方法 | 适用场景 |
|---|---|
fibonacci_dp |
日常使用,平衡效率和简洁 |
fibonacci_generator |
需要逐个产生数列时 |
fibonacci_fast |
n 极大时(如 n > 10^6) |
fibonacci_recursive |
仅教学演示,避免实际使用 |
推荐:一般情况下使用 动态规划版本 (fibonacci_dp),代码简洁且效率高。
测试: 逻辑推理
提示词: 如果所有的猫都是动物,而且所有的动物都需要食物,那么所有的猫都需要食物吗?请解释你的推理。
状态: ✅ 成功
延迟: 7.055秒
Tokens: 220
完成原因: end_turn
回复:
是的,所有的猫都需要食物。
推理过程
这是一个典型的三段论(Syllogism),可以用逻辑形式表示:
| 前提 | 内容 |
|---|---|
| 大前提 | 所有动物都需要食物 (动物 → 需要食物) |
| 小前提 | 所有猫都是动物 (猫 → 动物) |
| 结论 | 所有猫都需要食物 (猫 → 需要食物) |
为什么成立
用集合关系来看:
- 猫 ⊂ 动物(猫是动物的子集)
- 动物 ⊂ 需要食物的生物
- 因此:猫 ⊂ 需要食物的生物
这就像说:"所有人都会死,苏格拉底是人,所以苏格拉底会死"——结构完全相同,是有效的演绎推理。
关键要点
这种推理的可靠性在于:
- 如果前提为真,结论必然为真
- 不涉及经验观察,纯靠逻辑结构保证
(当然,现实中这个结论也为真——猫确实需要食物!😺)
测试: 创意写作
提示词: 写一个关于时间旅行的微型故事(不超过100字)。
状态: ✅ 成功
延迟: 4.439秒
Tokens: 79
完成原因: end_turn
回复:
最后一秒
她按下按钮,回到丈夫车祸前一分钟。
"别走那条路。"她拦住他。
他笑着摇头:"会迟到。"
再次穿越,她砸坏了他的车。他坐出租车离开——在同一路口被撞。
第三次,她在那个时间自杀。
醒来时,他在床边哭泣:"你昏迷三年了。"
窗外,那辆卡车正驶向医院。
============================================================
模型: glm-5
测试: 简单问答
提示词: 什么是Python?请用一句话解释。
状态: ✅ 成功
延迟: 17.291秒
Tokens: 541
完成原因: end_turn
回复:
Python是一种简单易学、功能强大且应用广泛的通用高级编程语言。
测试: 代码生成
提示词: 写一个计算斐波那契数列的Python函数。
状态: ✅ 成功
延迟: 54.944秒
Tokens: 1990
完成原因: end_turn
回复:
这里有几种实现斐波那契数列的方法,你可以根据具体需求选择最合适的一种。
方法一:迭代法(推荐)
这是最常用且效率最高的方法,时间复杂度为 O(n),空间复杂度取决于你需要返回列表还是单个值。
返回前 n 个数的列表:
def fibonacci_list(n):
"""
返回前n个斐波那契数的列表
"""
if n <= 0:
return []
elif n == 1:
return [0]
result = [0, 1]
for i in range(2, n):
result.append(result[-1] + result[-2])
return result
# 测试
print(fibonacci_list(10))
# 输出: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
只返回第 n 个数(节省内存):
def fibonacci_nth(n):
"""
返回第n个斐波那契数 (从0开始计数,即第0个是0,第1个是1)
"""
if n < 0:
raise ValueError("输入必须为非负整数")
if n == 0:
return 0
if n == 1:
return 1
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
# 测试
print(fibonacci_nth(9))
# 输出: 34
方法二:生成器(适合大数据流)
如果你需要处理大量的数据,但不希望一次性占用大量内存,可以使用生成器。
def fibonacci_generator(n):
"""
生成器函数,生成前n个斐波那契数
"""
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
# 测试:逐个打印
for num in fibonacci_generator(10):
print(num, end=" ")
# 输出: 0 1 1 2 3 5 8 13 21 34
方法三:递归法(不推荐用于大数)
这是数学定义的直接翻译,代码简洁,但效率极低(指数级时间复杂度),计算 n=40 以上时会非常慢。
def fibonacci_recursive(n):
"""
递归实现(仅作教学演示,效率低)
"""
if n <= 0:
return 0 # 或者抛出异常
elif n == 1:
return 1
else:
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
# 测试
print(fibonacci_recursive(10))
# 输出: 55
总结
- 日常使用:选择 方法一。
- 处理海量数据:选择 方法二。
- 学习算法原理:可以参考 方法三,但实际生产环境中避免使用。
测试: 逻辑推理
提示词: 如果所有的猫都是动物,而且所有的动物都需要食物,那么所有的猫都需要食物吗?请解释你的推理。
状态: ✅ 成功
延迟: 19.261秒
Tokens: 785
完成原因: end_turn
回复:
是的,所有的猫都需要食物。
这是一个典型的逻辑推理过程,称为三段论。以下是我的推理步骤:
-
前提一(大前提):所有的猫都是动物。
- 这意味着“猫”这个群体被完全包含在“动物”这个更大的群体之中。
-
前提二(小前提):所有的动物都需要食物。
- 这意味着“需要食物”这个属性适用于“动物”这个群体中的每一个成员。
-
推理(结论):
- 既然“猫”在“动物”这个群体里,而“动物”这个群体里的每一个成员都需要食物,那么“猫”自然也必须需要食物。
用集合的角度来看:
- 猫的集合包含在动物的集合中。
- 动物的集合包含在“需要食物的事物”集合中。
- 因此,猫的集合必然包含在“需要食物的事物”集合中。
所以,这个结论在逻辑上是完全成立的。
测试: 创意写作
提示词: 写一个关于时间旅行的微型故事(不超过100字)。
状态: ✅ 成功
延迟: 41.864秒
Tokens: 1114
完成原因: end_turn
回复:
他回到三十年前,试图阻止那场火灾。黑暗中,他慌乱地撞翻了煤油灯。看着腾起的烈焰,他绝望地明白:原来自己才是那场灾难的始作俑者。
============================================================
模型: MiniMax-M2.5
测试: 简单问答
提示词: 什么是Python?请用一句话解释。
状态: ✅ 成功
延迟: 73.871秒
Tokens: 272
完成原因: end_turn
回复:
Python 是一种易于学习、跨平台且拥有丰富库支持的解释型高级编程语言,广泛用于 Web 开发、数据分析和人工智能等领域。
测试: 代码生成
提示词: 写一个计算斐波那契数列的Python函数。
状态: ✅ 成功
延迟: 77.484秒
Tokens: 1150
完成原因: end_turn
回复:
下面给出几种常见的实现方式,供你挑选使用。
1. 返回第 n 项(迭代版)
def fib(n: int) -> int:
"""返回斐波那契数列第 n 项(从 0 开始计数)"""
if n < 0:
raise ValueError("n 必须为非负整数")
if n == 0:
return 0
if n == 1:
return 1
a, b = 0, 1 # a = F(0), b = F(1)
for _ in range(2, n + 1):
a, b = b, a + b # 迭代更新
return b
说明
- 时间复杂度
O(n),空间复杂度O(1)。 - 适用于需要获得单个斐波那契数的场景。
2. 返回前 n 项(列表版)
def fib_list(n: int) -> list[int]:
"""返回斐波那契数列的前 n 项(从 0 开始)"""
if n < 0:
raise ValueError("n 必须为非负整数")
result = [0, 1] if n > 0 else []
if n <= 1:
return result[:n]
for i in range(2, n):
result.append(result[-1] + result[-2])
return result
示例
>>> fib_list(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
3. 生成器版(可遍历任意长度)
def fib_gen():
"""无限生成斐波那契数列的生成器"""
a, b = 0, 1
while True:
yield a
a, b = b, a + b
使用方式
g = fib_gen()
for i, f in enumerate(g):
if i == 10: # 只取前 10 项
break
print(f, end=' ') # 0 1 1 2 3 5 8 13 21 34
4. 递归 + 记忆化(装饰器版)
如果想练习递归,可以利用 functools.lru_cache 做 memoization,避免指数级的重复计算:
from functools import lru_cache
@lru_cache(maxsize=None)
def fib_rec(n: int) -> int:
"""递归实现(第 n 项),带记忆化"""
if n < 0:
raise ValueError("n 必须为非负整数")
if n == 0:
return 0
if n == 1:
return 1
return fib_rec(n - 1) + fib_rec(n - 2)
说明
- 同样返回第 n 项,时间复杂度降至
O(n),但递归深度随n增大,最好只在n较小(< 1000)时使用。
小结
| 方法 | 适用场景 | 时间复杂度 | 空间复杂度 |
|---|---|---|---|
fib(n)(迭代) |
取单个斐波那契数 | O(n) |
O(1) |
fib_list(n) |
获得前 n 项 | O(n) |
O(n) |
fib_gen() |
需要流式/无限序列 | O(1) 生成每项 |
O(1)(生成器状态) |
fib_rec(n)(记忆化) |
递归练习且 n 较小 | O(n) |
O(n)(缓存) |
根据你的实际需求挑选合适的实现即可。祝编码愉快!
测试: 逻辑推理
提示词: 如果所有的猫都是动物,而且所有的动物都需要食物,那么所有的猫都需要食物吗?请解释你的推理。
状态: ✅ 成功
延迟: 53.903秒
Tokens: 848
完成原因: end_turn
回复:
是的,依据所给的前提可以推出“所有的猫都需要食物”。下面一步一步说明推理过程:
-
前提 1:所有的猫都是动物。
用逻辑符号表示就是
[
\forall x,( \text{Cat}(x) \rightarrow \text{Animal}(x) )
] -
前提 2:所有的动物都需要食物。
用逻辑符号表示就是
[
\forall x,( \text{Animal}(x) \rightarrow \text{NeedsFood}(x) ) ] -
使用蕴含传递(Hypothetical Syllogism)
从这两个全称命题可以得到:
[
\forall x,( \text{Cat}(x) \rightarrow \text{Animal}(x) ) \quad\text{且}\quad
\forall x,( \text{Animal}(x) \rightarrow \text{NeedsFood}(x) )
]
于是可以推出:
[
\forall x,( \text{Cat}(x) \rightarrow \text{NeedsFood}(x) )
]
也就是说,对每一个个体 (x),如果 (x) 是猫,那么 (x) 必然需要食物。 -
结论:所有的猫都需要食物。
推理的关键点
- 这是一种演绎推理(deductive reasoning),只要前提为真,结论必然为真。
- 使用的逻辑规则是全称蕴含的传递(如果 A→B 且 B→C,则 A→C)。
- 只要“所有的猫都是动物”和“所有的动物都需要食物”这两个前提成立,结论就必然成立。