惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
MyScale Blog
MyScale Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
MongoDB | Blog
MongoDB | Blog
I
InfoQ
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解
DeepSeek V4 vs Claude 编程实战测评(λ 到希尔伯特证明翻译)
方而静 · 2026-04-26 · via 博客园_首页

这次,我们来测试一下 Deepseek 新发布的 V4 模型到底怎么样。

任务简介

这是一个颇具挑战性的编译原理与逻辑结合的任务:
使用 lex/flexyacc/bison 编写一个 C 程序,将 λ 演算风格的定理证明 翻译为 希尔伯特公理系统的证明序列
程序需要:

  • 解析类似 function<A,B,C>(h: A->B) -> ... 的 λ 项输入;
  • 利用给定的三条公理模式(A1-A3)和三个可直接引用的定理(H1, H3, H5);
  • 通过演绎定理(Deduction Theorem)和 MP 规则,逐步输出带 LaTeX 排版的希尔伯特风格证明;
  • 代码需放置在 src/include/ 中,使用 Makefile 管理构建,并遵循 K&R 代码风格。

提供的样例里,除了一个“蕴涵传递”的基本定理,还有两个需要巧妙调用排中律的 q1q2。 而且,测评方还藏了看不到的隐藏用例,想浑水摸鱼是没门的。

给出的 Prompt 任务原文

给出的 Prompt 任务原文:

使用lex(flex)和yacc(bison),编写一个C程序,将lambda模式的定理证明翻译为希尔伯特证明。
参考example/中的示例代码。example/basics.txt中的定理example有一个输出示例,参考其格式。你的程序不一定要给出一模一样的输出,但是必须是正确的希尔伯特逻辑证明
使用Makefile管理构建。
保持良好的架构,解耦解析模块和翻译输出模块。代码放在src中,头文件放在include中。使用K & R(Linux Kernel)的代码风格。

可以使用的公理模式
- Axiom 1 : A → (B → A)
- Axiom 2 : (A → (B → C)) → ((A → B) → (A → C))
- Axiom 3 : (¬A → ¬B) → (B → A)

可以直接使用的定理(无需再输出证明):
- H1: A → A
- H3: ¬¬A → A
- H5: false -> A

要求:能够验证输入定理的正确性,并输出翻译为正确的希尔伯特证明

example/basics.txt 中的内容:

typedef not<A> = (A -> false);

// axiom: LEM<A>(h: not<not<A>>) -> A;
// axiom: Explode<A>(h: false) -> A;

// ⊢: (A → B) → ((B → C) → (A → C))
theorem example = function<A, B, C>(h: A -> B) -> ((B -> C) -> (A -> C)) {
	return function(h2: B -> C) -> (A -> C) {
		return function(a: A) -> C {
			return h2(h(a));
		}
	}
}
/*
Sample Output:
Proof "example":
1. $\{A \to B, B \to C, A\} \vdash A$  
   Assumption

2. $\{A \to B, B \to C, A\} \vdash A \to B$  
   Assumption

3. $\{A \to B, B \to C, A\} \vdash B$  
   MP 1, 2

4. $\{A \to B, B \to C, A\} \vdash B \to C$  
   Assumption

5. $\{A \to B, B \to C, A\} \vdash C$  
   MP 3, 4

6. $\{A \to B, B \to C\} \vdash A \to C$  
   Deduction 5

7. $\{A \to B\} \vdash [(B \to C) \to (A \to C)]$  
   Deduction 6

8. $\vdash (A \to B) \to [(B \to C) \to (A \to C)]$  
   Deduction 7
*/

/*
• Axiom 1 : A → (B → A)
• Axiom 2 : (A → (B → C)) → ((A → B) → (A → C))
• Axiom 3 : (¬A → ¬B) → (B → A)
Directly usable theorems:
H1: A → A
H3: ¬¬A → A
H5: false -> (anything)
*/

theorem q1 = function<A>(h: not<A> -> A) -> A {
	return LEM<A>(
		function(h2: not<A>) -> false {
			return h2(h(h2));
		}
	)
}

theorem q2 = function<A>(h: not<A> -> false) -> A {
	return LEM<A>(
		function(h2: not<A>) -> false {
			return h(h2);
		}
	)
}

测试方法

Deepseek 使用官方的 V4 Pro[1M] 模型,接入 Claude Code 命令行工具。Claude 使用 Github Copilot Pro+ 套餐的 Claude Opus 4.7 模型(高达7.5x倍率qwq),接入 VS Code Copilot 插件使用。二者均先在 Plan 模式规划,然后才开始执行。

评分维度与结果

评测从以下五个维度进行打分(满分 100),同时记录了用时和费用。

维度 DeepSeek V4 Pro Claude Opus 4.7
正确性 (60) 60 60
构建系统 (10) 6 8
输出格式遵循 (10) 5 10
代码质量与格式 (10) 8 8
异常处理 (10) 5 6
总分 84 92
用时 29 分钟 15 分钟
费用 2.1 元(API 直调) 约 2.7 元(订阅点数换算)

核心能力:正确性齐平,均通过全部测试

在最关键的 正确性 上,两个模型均拿到了满分。
无论是标准的蕴涵传递(A→B, B→C 推出 A→C),还是需要巧妙构造排中律的 q1q2,它们都能生成逻辑严密、且通过所有隐藏用例的希尔伯特证明序列。这说明在深层逻辑推理与代码生成能力上,两者都已达到专业开发者水平。

工程细节与格式遵循:Claude 更显“规矩”

差距主要出现在构建系统输出格式两个维度。

  • DeepSeek 生成的 Makefile 没有将 flex/bison 生成的 .c 文件分离到 build 目录,未能体现“解耦解析模块与翻译输出模块”的意图;输出证明也未使用示例中的 LaTeX 排版(如 $...$),内部引用名称也没有完全对齐样例风格。这些虽然不影响程序的正确运行,但在 “按规范交付” 的要求下被扣了分。
  • Claude 则严格遵循了所有显式与隐式约定,Makefile 整洁、输出格式甚至与样例几乎一模一样,展现出更好的 指令细节遵循能力

两者的代码风格得分相同(8分),都未能完美实现 K&R 内核风格、部分函数略长,表明在软性编码规范上还有提升空间。

异常处理:均不够“开发者友好”

Claude 的错误信息偏样板,缺少具体错误原因;DeepSeek 的错误信息则缺少行号,定位困难。在实际工具开发中,精确的错误提示对调试至关重要,两项均只能算是“基本可用”。

成本与灵活性:DeepSeek 的显著优势

本次测评最值得关注的反差,体现在使用成本与灵活性上:

  • DeepSeek 直接通过 API 按量计费,完成一次复杂任务仅需 2.1 元,无需预付费,无每日限额,可随时并发调用。
  • Claude 的测评费用约 2.7 元,但这是建立在 GitHub Copilot Pro+ 订阅(每月 260 元人民币) 的基础之上,且该订阅面临暂停新用户注册和限量等问题。实际开发中很可能遭遇用至半途被限流的窘境,且每月无论是否用完都要支付 260 元。若改为直接调用 Claude 官方 API,同等规模的 token 消耗很可能飙升至 15 元以上,成本增加数倍。

对于需要频繁集成调试、批量处理或者构建自动化流水线的个人开发者和小团队而言,DeepSeek 的定价模型无疑是可推广性的巨大优势。

综合评语

  • Claude Opus 4.7 更像一位经验丰富的“交付专家”:一次生成接近成品,能精准扣住所有格式约束,适合预算充足、追求零修改的直接部署场景。
  • DeepSeek V4 Pro 则是一名逻辑能力顶尖、但细节上稍显粗犷的“效率先锋”:它在核心正确性上毫不逊色,仅因工程规范与格式呈现被扣分,而这些完全可以通过更精细的提示词(例如预先提供理想的 Makefile 模板、明确要求 $...$ 排版)轻松补齐。其 按量计费、无订阅锁定的高性价比,在长期长尾任务中优势明显。

这次对比清晰地表明:AI 代码助手之争已经不是单纯“能不能做对”,而是延伸到了“一次交付的完整度”与“持续使用的经济性”之间的权衡。而 DeepSeek 已经证明,它有能力在硬核逻辑任务中站上第一梯队,同时保持着极具竞争力的价格弹性。

(本文使用 Deepseek V4 Pro 生成:实验数据是真实的,只是让 Deepseek 分析)