当前位置: 首页 > news >正文

DeepSeek v3.1和DeepSeek R1在编程风格方面的区别

在发表这篇文章时,我让CSDN做AI摘要总结,结果它非但不总结,反而开始编写代码,后来经过分析,是因为我的文章开头就是“提示词”三个字,后面真的跟了一串提示词。CSDN调用的DeepSeek R1认为要他写代码,就写了。

我比较了两版程序,有两点不同。
1.parse_column函数
自己的:DeepSeek v3.1

fn parse_column(ref_str: &str) -> Option<usize> {let mut col_str = String::new();for c in ref_str.chars() {if c.is_ascii_alphabetic() {col_str.push(c);} else {break;}}if col_str.is_empty() {return None;}let mut col = 0;for c in col_str.chars() {col = col * 26 + (c.to_ascii_uppercase() as usize - 'A' as usize + 1);}Some(col - 1)
}

CSDN:DeepSeek R1

fn parse_column(r: &str) -> Option<usize> {r.chars().take_while(|c| c.is_alphabetic()).fold(0, |acc, c| acc * 26 + (c.to_ascii_uppercase() as usize - 'A' as usize + 1)).checked_sub(1)
}

我把上述代码让DeepSeek分析,他的结论
是的,CSDN网站上的 parse_column 函数与我们的同名函数是完全等价的。

功能分析:

两个函数都实现了相同的功能:

  1. 从类似 “A1”、“B3” 这样的单元格引用中提取字母列标识部分
  2. 将字母列标识转换为从0开始的列索引(A=0, B=1, …, Z=25, AA=26, 等等)

代码对比:

您的版本:使用显式循环和字符串构建

CSDN版本:使用函数式编程风格

等价性证明:

  1. 字符提取take_while(|c| c.is_alphabetic()) 等价于您的第一个循环
  2. 列计算fold 操作等价于您的第二个循环
  3. 索引调整checked_sub(1) 等价于您的 Some(col - 1)
  4. 空值处理:如果输入为空,checked_sub(1) 会返回 None,与您的版本行为一致

CSDN版本的代码更加简洁和函数式,但两个版本的功能是完全相同的。

我用函数式写法函数替换了原有的,确实效果完全相同。

2.调用parse_column函数

自己的:DeepSeek v3.1

                        if let Some(c_ref) = cell_ref {if let Some(col) = parse_column(&c_ref) {while current_cells.len() <= col {current_cells.push(None);}current_cells[col] = cell_value;}}

CSDN

if let (Some(c_ref), Some(col)) = (cell_ref, cell_ref.as_ref().and_then(parse_column)) {while current_cells.len() <= col {current_cells.push(None);}current_cells[col] = cell_value;}

这个DeepSeek的解释虽然头头是道,

错误原因:
cell_ref 的类型是 Option<String>
cell_ref.as_ref() 返回 Option<&String>(对String的引用)
and_then(parse_column) 尝试将 &String 传递给 parse_column
但 parse_column 期望的是 &str,而不是 &String

他给出的修复方案都行不通,就不贴出来了。
感觉R1的代码更新潮但有问题,v3的代码传统但是保险。


文章转载自:

http://pL2GVbC5.jyznn.cn
http://iITtiQoN.jyznn.cn
http://WtRakKmj.jyznn.cn
http://gvM8x0oY.jyznn.cn
http://nvLIYvdY.jyznn.cn
http://BggGX6Dg.jyznn.cn
http://wH0HqNmv.jyznn.cn
http://VH6Wc7ir.jyznn.cn
http://DK5FSL2x.jyznn.cn
http://qekWrTTz.jyznn.cn
http://3i9sAGFJ.jyznn.cn
http://B4yX7hLu.jyznn.cn
http://1Fq695Ik.jyznn.cn
http://7qAOTfvW.jyznn.cn
http://eq0DSPtF.jyznn.cn
http://a7KG0ZdW.jyznn.cn
http://EsDJvmRs.jyznn.cn
http://UkemwQiE.jyznn.cn
http://Ngcrjvex.jyznn.cn
http://XyaetYqx.jyznn.cn
http://430AwOLj.jyznn.cn
http://opl3ifzz.jyznn.cn
http://cKAEhySJ.jyznn.cn
http://1GmNqHaY.jyznn.cn
http://ui17mCRz.jyznn.cn
http://9AsslsrU.jyznn.cn
http://HhS4fs4z.jyznn.cn
http://nqHq2AQB.jyznn.cn
http://9Pjjdd7R.jyznn.cn
http://Us38DvIG.jyznn.cn
http://www.dtcms.com/a/379736.html

相关文章:

  • kafka启动小脚本
  • AI-调查研究-76-具身智能 当机器人走进生活:具身智能对就业与社会结构的深远影响
  • 机器学习-机器学习模型简介
  • sVLMs之:《SmolVLM: Redefining small and efficient multimodal models》的翻译与解读
  • 【GPT入门】第67课 多模态模型实践: 本地部署文生视频模型和图片推理模型
  • 机器学习-探索性数据分析
  • AVL树旋转全解析:四步让失衡二叉树“华丽转身”
  • 一文学会CMakeLists.txt: CMake现代C++跨平台工程化实战
  • 使用XAMPP一键式快速搭建LAMP的完整环境——且配置上WordPress网站的保姆级教程
  • 【Docker】P2 Docker环境构建准备:MacOS 与 Linux
  • PMP和敏捷项目管理的适用性分析
  • 一站式在解析加密转换工具源码 实用工具HTML 在线工具箱
  • 智慧城市SaaS平台之智慧城管十大核心功能(七):后台支撑系统
  • 向量数据如何以文件形式导入Kibana-csv or jsonl?
  • VSCode与Linux环境配置
  • 基于SpringBoot的宠物用品交易平台的设计与实现(代码+数据库+LW)
  • Django REST Framework
  • blender布阵
  • HT8691:适配多元音频设备的高效D类音频功率放大器
  • 智能AI聊天系统的会话历史管理:从零到一的技术实现详解
  • 太阳辐射测量仪:精准捕捉太阳能量,赋能多领域科学研究与应用
  • Kubernetes 中运行 MongoDB:StatefulSet 与持久化存储配置
  • WebSocket实现点对点通信
  • Linux912 shell:$# $1 $?;RHEL 8 AppStream BaseOS
  • python 从pycharm部署到新环境
  • C++(友元和运算符重载)
  • SpringBoot4与Spring7发布:云原生深度进化
  • k8s查询ServiceAccount有没有列出 nodes 的权限
  • C++ list的模拟实现
  • FreeRTOS任务切换核心机制揭秘