Claude Sonnet 4.6
変動分析 · 2026年 第12週
Claude Sonnet 4.6 2026年 第12週 コード実行次元が 38.3 点上昇。主にDebug:链表反转、Debug:DFS 环检测で得点
スコア比較
42.0
53.0
+11
| 次元 | 前回 | 今回 | 変動 |
|---|---|---|---|
| コード実行 | 20.8 | 59.1 | +38.3 |
| 知識総合 | 37.4 | 43.1 | +5.7 |
| 引用検証 | 66.7 | 76.2 | +9.5 |
| コストパフォーマンス | 13.8 | 19.6 | +5.8 |
| 安定性 | 54.2 | 31.2 | -23 |
| 可用性 | 100 | 100 | 0 |
失点 Top 5
合同条款定位
66.7
35
-31.7
引用検証
citation_grounded
詳細証拠を展開
前回の回答
根据《软件开发服务合同 XC-YF-2026-0318》,我将回答您的两个问题:
## 一、延迟交付的罚款上限
延迟交付的罚款上限为**27万元**,即合同总价的15%。[contract-1, 第五条5.1]
具体规定:
- 乙方每延迟1天应支付合同总价0.5%的违约金
- 违约金累计总额上限为合同总价的15%
- 合同总价为180万元,因此上限为180万×15%=27万元
## 二、甲方可以单方面终止合同的情况
根据合同约定,甲方可以在以下情况下单方面终止合同:[contract-1, 第九条9.1]
1. **乙方连续三次验收不通过**
- 这与第四条4.3的规定一致,即"连续三次验收不通过的,甲方有权终止合同"
2. **乙方延迟交付超过30天**
- 这与第五条5.1的规定一致,即"逾期超过30天的,甲方有权解除合同"
3. **乙方被依法宣告破产或进入清算程序**
4. **乙方将本合同项下的工作未经甲方书面同意转包给第三方**
此外,根据第五条5.3,如果"任何一方严重违约导致合同无法继续履行的,守约方有权解除合同",这也赋予了甲方在乙方严重违约时的解除权。[contract-1, 第五条5.3]
今回の回答
根据《软件开发服务合同 XC-YF-2026-0318》,我为您详细回答这两个问题:
## 一、延迟交付的罚款上限
延迟交付的罚款(违约金)上限为**合同总价的15%,即27万元人民币**。
具体规定为:乙方每延迟1天应向甲方支付合同总价0.5%的违约金,违约金累计总额上限为合同总价的15%。
【依据:contract-1 第五条第5.1款】
## 二、甲方可以单方面终止合同的情况
根据合同约定,甲方有权在以下**四种情况**下单方面终止本合同:
1. **乙方连续三次验收不通过**
- 这与第四条第4.3款的规定一致,该条款明确"连续三次验收不通过的,甲方有权终止合同"
【依据:contract-1 第九条第9.1款第(1)项;第四条第4.3款】
2. **乙方延迟交付超过30天**
- 这与第五条第5.1款后半部分的规定一致,该条款明确"逾期超过30天的,甲方有权解除合同"
【依据:contract-1 第九条第9.1款第(2)项;第五条第5.1款】
3. **乙方被依法宣告破产或进入清算程序**
【依据:contract-1 第九条第9.1款第(3)项】
4. **乙方将本合同项下的工作未经甲方书面同意转包给第三方**
【依据:contract-1 第九条第9.1款第(4)项】
需要注意的是,合同终止后,乙方应将已完成的工作成果移交给甲方,甲方按实际完成的工作量支付相应费用。同时,合同终止不影响保密条款和知识产权条款的继续有效。
【依据:contract-1 第九条第9.2款、第9.3款】
正则表达式编写
20
0
-20
コード実行
python_unit_test
詳細証拠を展開
前回の回答
```python
pattern1 = r'^(\+86|0086)?1\d{10}$'
pattern2 = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
pattern3 = r'^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
```
今回の回答
```python
pattern1 = r'^(?:\+86|0086)?1[3-9]\d{9}$'
pattern2 = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
pattern3 = r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
```
浮点精度陷阱
10
0
-10
コード実行
exact_lines
STRICT
詳細証拠を展開
前回の回答
False
True
True
今回の回答
False
True
True
代码输出:闭包
10
0
-10
コード実行
exact_lines
STRICT
詳細証拠を展開
前回の回答
[2, 2, 2]
今回の回答
[2, 2, 2]
Debug:事件监听泄漏
10
0
-10
コード実行
diff_patch_unit_test
STRICT
詳細証拠を展開
前回の回答
```javascript
const resizeHandler = () => {
console.log(window.innerWidth);
};
function mount() {
window.addEventListener('resize', resizeHandler);
}
function unmount() {
window.removeEventListener('resize', resizeHandler);
}
```
今回の回答
```javascript
let resizeHandler = null;
function mount() {
if (resizeHandler) return;
resizeHandler = () => {
console.log(window.innerWidth);
};
window.addEventListener('resize', resizeHandler);
}
function unmount() {
if (resizeHandler) {
window.removeEventListener('resize', resizeHandler);
resizeHandler = null;
}
}
```
得点 Top 5
Debug:链表反转
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_temp = curr.next # 先保存下一个节点
curr.next = prev
prev = curr
curr = next_temp # 使用保存的下一个节点
return prev
```
**bug原因**:原代码在 `curr.next = prev` 执行后,原本的 `curr.next` 指向的节点引用就丢失了。然后执行 `curr = curr.next` 时,`curr` 会被赋值为 `prev`(因为刚刚已经将 `curr.next` 改为指向 `prev`),导致无法继续遍历原链表的剩余节点。
修复方法是在修改 `curr.next` 之前,先用临时变量保存原本的下一个节点。
今回の回答
```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_temp = curr.next # 先保存下一个节点
curr.next = prev
prev = curr
curr = next_temp # 使用保存的节点继续遍历
return prev
```
**Bug原因**:原代码在 `curr.next = prev` 执行后,`curr.next` 已经指向了 `prev`,此时再执行 `curr = curr.next` 会让 `curr` 指向 `prev`(即向后退),而不是原链表的下一个节点,导致无法继续遍历原链表,从而丢失后续节点。
修正方法是在修改 `curr.next` 之前,先用临时变量保存原来的 `curr.next`。
Debug:DFS 环检测
10
100
+90
コード実行
diff_patch_unit_test
STRICT
詳細証拠を展開
前回の回答
```python
def has_cycle(graph):
visited = set()
rec_stack = set()
def dfs(node):
if node in rec_stack:
return True
if node in visited:
return False
visited.add(node)
rec_stack.add(node)
for nei in graph.get(node, []):
if dfs(nei):
return True
rec_stack.remove(node)
return False
for n in graph:
if n not in visited:
if dfs(n):
return True
return False
```
今回の回答
```python
def has_cycle(graph):
visited = set()
rec_stack = set()
def dfs(node):
if node in rec_stack:
return True
if node in visited:
return False
visited.add(node)
rec_stack.add(node)
for nei in graph.get(node, []):
if dfs(nei):
return True
rec_stack.remove(node)
return False
for n in graph:
if n not in visited:
if dfs(n):
return True
return False
```
异常处理链
10
95
+85
コード実行
python_unit_test
STRICT
詳細証拠を展開
前回の回答
```python
def load_and_apply(path):
try:
config_text = read_config(path)
config = parse_config(config_text)
apply_config(config)
return True
except FileNotFoundError:
print(f"配置文件未找到: {path}")
return False
except json.JSONDecodeError:
print("配置文件解析失败")
return False
except ValueError:
print("配置应用失败")
return False
finally:
print("配置加载流程结束")
```
今回の回答
```python
def load_and_apply(path):
try:
config_text = read_config(path)
config = parse_config(config_text)
apply_config(config)
return True
except FileNotFoundError:
print(f"日志: 配置文件未找到: {path}")
return False
except json.JSONDecodeError:
print("日志: 配置文件格式错误")
return False
except ValueError:
print("日志: 配置应用失败")
return False
finally:
print("配置加载流程结束")
```
二分查找(左边界版)
20
100
+80
コード実行
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
```
位运算:判断2的幂与 bit count
20
100
+80
コード実行
python_unit_test
STRICT
詳細証拠を展開
前回の回答
```python
def is_power_of_2(n):
if n <= 0:
return False
return 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):
# 2的幂次方满足:n > 0 且 n & (n-1) == 0
return n > 0 and (n & (n - 1)) == 0
def count_bits(n):
# 统计二进制中1的个数
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
```