深度揭秘:如何用一句话让 DeepSeek 优化你的代码

原文:深度揭秘:如何用一句话让 DeepSeek 优化你的代码

今天,我以 DeepSeek 的官方提示词文档为例,和大家分享一下如何通过优化提示词,让大模型更好地理解和优化代码。 

🌵https://api-docs.deepseek.com/zh-cn/prompt-library/ 

图片

一、初探:含糊需求与初步尝试

在探索的过程中,我首先参考了 DeepSeek 的官方文档,尝试了一个有问题的斐波那契数列的递归函数的优化需求。我把自己当成一个编程小白,没有明确说明问题及需求,直接将代码给 DeepSeek: 

请先解释这段代码的问题与解决方法,然后进行优化:
```
def fib(n):
    if n <= 2:
        return n
    return fib(n-1) + fib(n-2)
```

DeepSeek 直接判断出这是斐波那契数列的递归函数,并指出当 N=2 时结果不正确,同时存在效率低下的问题。这让我对 DeepSeek 的能力刮目相看,但也引发了我进一步探究的欲望,为什么DeepSeek会判断我提供的函数想实现斐波那契数列? 

图片

二、进阶:增加需求,明确问题

在初步尝试的基础上,我意识到仅仅提出含糊的需求是不够的。于是,我调整了提示词,增加了明确的提示:“下面这段代码的效率很低,且没有处理边界情况。” 再次将代码交给 DeepSeek: 

下面这段的代码的效率很低,且没有处理边界情况。请先解释这段代码的问题与解决方法,然后进行优化:
```
def fib(n):
    if n <= 2:
        return n
    return fib(n-1) + fib(n-2)
```

这次,DeepSeek 的回答明显是根据我提示的两个问题进行分析的。 

图片

然而,它并没有识别出 F(2) 不符合斐波那契数列的定义。我使用“深度思考”模式,看到 DeepSeek 推测过程,DeepSeek将这种不符合斐波那契数列定义的情况视为一种变体,所以保持了原来的逻辑,仅处理了边界及效率问题。但如果我确实是想实现的是斐波那契数列,这不就错了吗? 

图片

三、深入:明确背景,精准优化

为了进一步引导 DeepSeek,我决定明确背景,让其清楚我的目标是实现标准的斐波那契数列,而非某种变种序列。于是,我给出了更清晰的提示:“下面这段代码是斐波那契数列的递归函数,但效率很低,且没有处理边界情况。”再次将代码提交给 DeepSeek: 

下面这段的代码是斐波那契数列的递归函数,但效率很低,且没有处理边界情况。请先解释这段代码的问题与解决方法,然后进行优化:
```
def fib(n):
    if n <= 2:
        return n
    return fib(n-1) + fib(n-2)
```

这次,DeepSeek 成功识别出我的代码不符合标准的斐波那契数列定义,并给出了修复方案。它不仅解决了效率问题,还纠正了 F(2) 的错误,使代码更加符合斐波那契数列的定义。 

图片

最终给出完整的修复方案 

图片

四、总结

通过这次与 DeepSeek 的互动,我发现 DeepSeek 的深度思考非常厉害,但避免让大模型进行过多的猜测,日常使用时还是需要我们提供更准确的提示词。 

还有一点,大模型为我们的编程工作带来了诸多便利,但要充分发挥其效能,还需要我们具备一定的数据结构知识和程序思维,不然如何识别大模型是真的做对呢? 


相关阅读

从爆火到危机四伏,DeepSeek能否熬过这场“生死局”?

手把手教你用 DeepSeek 和 VSCode 开启 AI 辅助编程之旅

零基础小白的编程入门:用 AI 工具轻松加功能、改代码

聊天也能写程序?10 分钟让 AI 帮你编写出文本格式转换的程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值