跳到主要内容

文心一言 4.0

变化分析 · 2026 第12周

文心一言 4.0 2026 第12周代码执行 (v5) 维度上涨 41.4 分,主要在Debug:链表反转、Debug:DFS 环检测题目上得分

分数对比

49.5 64.2 +14.7
维度 上次 本次 变化
代码执行 (v5) 20.2 61.6 +41.4
知识综合 (v5) 28.2 38 +9.8
材料约束 (v5) 62.3 78.1 +15.8
性价比 86.6 97.1 +10.5
稳定性 52.1 30 -22.1
可用性 99 100 +1

丢分 Top 5

浮点精度陷阱 代码执行 (v5)
10 0 -10
exact_lines STRICT
展开查看详细证据
上次回答
False True True
本次回答
False True True
代码输出:闭包 代码执行 (v5)
10 0 -10
exact_lines STRICT
展开查看详细证据
上次回答
[2, 2, 2]
本次回答
[2, 2, 2]
Debug:事件监听泄漏 代码执行 (v5)
10 0 -10
diff_patch_unit_test STRICT
展开查看详细证据
上次回答
```javascript let resizeListener; function mount() { if (!resizeListener) { resizeListener = () => { console.log(window.innerWidth); }; window.addEventListener('resize', resizeListener); } } function unmount() { if (resizeListener) { window.removeEventListener('resize', resizeListener); resizeListener = null; } } ```
本次回答
```javascript let resizeHandler; function mount() { if (!resizeHandler) { resizeHandler = () => { console.log(window.innerWidth); }; window.addEventListener('resize', resizeHandler); } } function unmount() { if (resizeHandler) { window.removeEventListener('resize', resizeHandler); resizeHandler = null; } } ```
供应商推荐与未知项 材料约束 (v5)
66.7 57.5 -9.2
citation_grounded
展开查看详细证据
上次回答
1. 推荐理由:Gamma 满足所有硬性要求,峰值处理图片数19,200张/小时高于18,000张/小时,误报率1.6%略高于1.5%但漏报率0.6%低于0.8%,支持私有化部署且数据可境内落地,能在90天内上线,且支持边缘推理这一加分项。 2. 不推荐另外两家的关键原因: - Alpha:漏报率1.1%高于0.8%,不满足硬性要求,且边缘推理尚未量产,存在风险。 - Beta:仅公有云托管,不支持私有化部署,且数据未明确承诺在中国境内落地,不满足硬性要求。 3. 在签约前必须澄清的未知项:Gamma的接口文档不完整,需要明确打磨接口文档的具体时间、责任方以及打磨后的质量标准。
本次回答
1. 推荐理由:推荐供应商Alpha。其方案满足所有硬性要求,包括峰值处理能力、误报率、漏报率、私有化部署、境内数据存储、上线周期和预算。此外,其上线周期较短,价格在预算范围内。 2. 不推荐另外两家的关键原因: - Beta:不支持私有化部署,数据存储未明确承诺在中国境内,不满足硬性要求。 - Gamma:误报率高于1.5%,不满足硬性要求。 3. 在签约前必须澄清的未知项:Alpha的边缘推理功能尚未量产,需确认其量产时间和稳定性。
根因判断与证据边界 材料约束 (v5)
66.7 62 -4.7
citation_grounded
展开查看详细证据
上次回答
已较强支持: 1. 当前最可能的主根因是打开的优惠券预校验开关触发 Redis 未命中回源放大效应,导致数据库 CPU 飙升和支付 API 错误率升高(doc_id: sec-3 二版 RCA 草稿、sec-2 附加观察、sec-1 时间线关联)。 尚未证实: 1. 13:48 部署的新版本是否扩大了问题暴露面(doc_id: sec-3 二版 RCA 草稿); 2. 初版 RCA 中提到的低效 SQL 是否为根因(doc_id: sec-3 初版 RCA 草稿); 3. 是否存在缓存击穿问题(doc_id: sec-3 Slack 摘录)。
本次回答
已较强支持: 1. 当前最可能的主根因是 13:52 打开的优惠券预校验开关触发 Redis 未命中回源放大效应,导致数据库 CPU 升高和支付 API 错误率上升(doc_id: sec-2, sec-3)。 尚未证实: 1. 13:48 部署的新版本扩大了问题暴露面,但不是唯一根因(doc_id: sec-3)。 2. 直接根因是新版本引入了低效 SQL(doc_id: sec-3)。

得分 Top 5

Debug:链表反转 代码执行 (v5)
10 100 +90
diff_patch_unit_test STRICT
展开查看详细证据
上次回答
```python class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def reverse_list(head): prev = None curr = head while curr: next_node = curr.next # 保存下一个节点 curr.next = prev prev = curr curr = next_node # 移动到下一个节点 return prev ``` 原因:原代码在更新`curr`指针时直接使用了`curr = curr.next`,但在前一步已经将`curr.next`指向了`prev`,导致`curr.next`丢失了原始链表的下一个节点信息。修正后的代码在改变`curr.next`指针前,先保存了下一个节点`next_node`,然后再更新`curr`指针,从而避免了节点丢失。
本次回答
```python class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def reverse_list(head): prev = None curr = head while curr: next_node = curr.next # 保存下一个节点 curr.next = prev prev = curr curr = next_node # 移动到下一个节点 return prev ``` 原因:原代码在修改`curr.next`指向`prev`后,丢失了原链表中`curr`的下一个节点信息,导致无法继续遍历链表。修正后的代码在修改`curr.next`前,先保存了下一个节点`next_node`,然后再进行反转操作和节点移动。
Debug:DFS 环检测 代码执行 (v5)
10 100 +90
diff_patch_unit_test STRICT
展开查看详细证据
上次回答
```python def has_cycle(graph): visited = set() recursion_stack = set() def dfs(node): if node in recursion_stack: return True if node in visited: return False visited.add(node) recursion_stack.add(node) for nei in graph.get(node, []): if dfs(nei): return True recursion_stack.remove(node) return False for n in graph: if dfs(n): return True return False ```
本次回答
```python def has_cycle(graph): visited = set() recursion_stack = set() def dfs(node): if node in recursion_stack: return True if node in visited: return False visited.add(node) recursion_stack.add(node) for nei in graph.get(node, []): if dfs(nei): return True recursion_stack.remove(node) return False for n in graph: if dfs(n): return True return False ```
二叉树序列化(稳定格式版) 代码执行 (v5)
10 95 +85
python_unit_test STRICT
展开查看详细证据
上次回答
```python class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def serialize(root): if not root: return "#" return f"{root.val},{serialize(root.left)},{serialize(root.right)}" def deserialize(data): def helper(nodes): val = next(nodes) if val == "#": return None node = TreeNode(int(val)) node.left = helper(nodes) node.right = helper(nodes) return node nodes = iter(data.split(",")) return helper(nodes) ```
本次回答
```python class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def serialize(root): if not root: return '#' return f"{root.val},{serialize(root.left)},{serialize(root.right)}" def deserialize(data): def helper(nodes): val = next(nodes) if val == '#': return None node = TreeNode(int(val)) node.left = helper(nodes) node.right = helper(nodes) return node nodes = iter(data.split(',')) return helper(nodes) ```
位运算:判断2的幂与 bit count 代码执行 (v5)
20 100 +80
python_unit_test STRICT
展开查看详细证据
上次回答
```python def is_power_of_2(n): return n > 0 and (n & (n - 1)) == 0 def count_bits(n): count = 0 while n: count += n & 1 n >>= 1 return count print(is_power_of_2(0)) print(is_power_of_2(8)) print(is_power_of_2(12)) print(count_bits(15)) ``` 实际输出: ``` False True False 4 ```
本次回答
```python def is_power_of_2(n): return n > 0 and (n & (n - 1)) == 0 def count_bits(n): count = 0 while n: count += n & 1 n >>= 1 return count print(is_power_of_2(0)) print(is_power_of_2(8)) print(is_power_of_2(12)) print(count_bits(15)) ``` 实际输出: ``` False True False 4 ```
二分查找(左边界版) 代码执行 (v5)
20 95 +75
python_unit_test STRICT
展开查看详细证据
上次回答
```python def binary_search(arr, target): left, right = 0, len(arr) - 1 result = -1 while left <= right: mid = left + (right - left) // 2 if arr[mid] == target: result = mid right = mid - 1 elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return result ```
本次回答
```python def binary_search(arr, target): left, right = 0, len(arr) - 1 result = -1 while left <= right: mid = left + (right - left) // 2 if arr[mid] == target: result = mid right = mid - 1 elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return result ```
返回升降榜