DeepSeek:AI 编程助手新标杆,低成本高性能,开发者必看!

thbcm阅读(180)

2025 年了,人工智能发展得那叫一个快!DeepSeek(深度求索)作为中国 AI 领域的新兴力量,凭借其强大的技术实力和创新的商业模式,在全球突然爆火。最新发布的 DeepSeek-R1 模型在性能和成本上的突破,短短数日内就登顶美国和中国区苹果应用商店免费榜,超越了ChatGPT。这一成就不仅标志着中国在 AI 领域的重大突破,也引发了全球科技界的广泛关注和讨论。DeepSeek 推理超高效、部署成本还低,而且在好多领域都优化得很到位,一下子成了全球开发者眼中的 “香饽饽”。今天咱们好好聊一聊这款国产 AI 模型到底有什么核心技术、能干些什么,又为什么对开发者这么有价值。

一、核心技术:效率和性能都被它重新定义了

  1. 混合专家架构(MoE) DeepSeek 用了一种超新颖的混合专家架构,简单来说,就是把一个大模型拆成好多 “小专家网络”,然后根据你输入的内容,智能地激活相关的部分。就拿 DeepSeek – V3 来讲,它参数多得吓人,有 6710 亿,但每次输入时,只激活其中的 370 亿参数,这样一来,计算成本一下就降下来了,可性能还一点没打折。在像代码生成、处理超长文本这些活儿上,效率比以前提升了 5 倍还多,就说牛不牛?
  2. 多头潜在注意力(MLA) 这个 MLA 机制也很厉害,它能动态调整注意力的重点,让处理长文本的能力得到了大优化。它能支持高达 128K Token 的上下文输入,不管是分析一大坨代码,还是生成技术文档,它都能精准地抓住关键信息,特别靠谱。
  3. 强化学习驱动的推理能力 DeepSeek – R1 模型靠纯强化学习来训练,厉害的是,它不用依赖海量的标注数据。在数学推理、代码纠错这些任务里,它展现出来的逻辑链分析能力,跟人差不多,甚至在编程测评里,代码生成成功率高达 97%,把好多竞争对手都给比下去了。
  4. 低成本训练与开源生态 你知道 DeepSeek – V3 的完整训练成本才多少吗?才 558 万美元,这可是 GPT – 4 的十分之一啊!而且它还支持 FP8 混合精度训练,算力需求一下就降下来了。更棒的是,它还开源,开发者能免费拿到模型权重,想怎么部署、怎么定制开发都行,英伟达瞬间傻眼了。

二、开发者必看:DeepSeek 能干的四大活儿

  1. 代码生成与编程辅助 DeepSeek 支持的编程语言可多了,有 338 种呢!它能自动生成代码片段,还能给你解释代码逻辑,甚至帮你修复错误。比如说,你要是输入 “用 Python 实现快速排序算法”,它立马就能给你生成能跑的代码,而且每一行都有注释,太方便了。
  2. 智能文档处理 开发者要是有长技术文档,用 DeepSeek – V3 一分析,就能自动生成摘要,或者把 API 接口说明给提取出来。它那 128K Token 的上下文处理能力,对于理解开源项目的代码库全局,简直太合适了。
  3. 多模态开发支持 它还能把图像和文本结合起来,辅助开发智能 UI 设计工具。比如说,你上传个设计草图,它就能给你生成前端代码,还能给你推荐优化方案,厉害吧?
  4. 教育与技能提升 DeepSeek – R1 还能给新手提供分步式解题指导,帮助理解算法逻辑。比如遇到动态规划问题,它能把问题拆解了,给你把状态转移方程列出来,还能生成测试用例,手把手教你。

三、和其他竞品比比:为啥要选 DeepSeek?

维度 DeepSeek 典型竞品(如 GPT – 4)
推理效率 同规模下延迟降低 50%,还能部署在边缘设备上 得依赖云端算力,响应成本高
开发成本 API 价格低至 2 元 / 百万 Token 价格老高了,中小团队有点负担不起
垂直领域适配 提供代码生成专用微调工具包 通用性还行,但想定制开发有点复杂
数据安全 支持私有化部署和数据加密 大多数只能用公有云 API 调用

四、未来展望:AI 开发者的新机会来了

  1. 开源生态要崛起了 DeepSeek 的开源模型,像 DeepSeek – Lite,能让社区一起优化。开发者可以基于它的框架,快速做出行业专属的工具,比如说金融数据分析插件、医疗代码生成器之类的。
  2. 边缘计算要普及了 那些轻量级模型,像只有 1B 参数的 DeepSeek – Lite,都能在手机、IoT 设备上跑。这就给离线编程助手、实时代码审查这些场景提供了可能,想想就激动。
  3. AI 要和硬件深度结合了 DeepSeek 正在探索和机器人、AR 眼镜这些硬件结合,以后说不定能实现 “语音指令生成代码 + 实时调试” 的一站式开发体验,那可太方便了。

五、赶紧来体验:开发者入门指南

  1. 访问官方平台 快去注册 chat.deepseek.com,免费试用基础版模型,感受一下代码生成和问答功能,说不定你会爱上它。
  2. 集成 API DeepSeek 提供了 RESTful API,你能快速把它接入现有的开发环境,PythonJava 等多种语言调用都没问题。
  3. 参与开源社区 加入 GitHub 上的 DeepSeek 项目,你可以贡献代码,或者提交自己的需求,一起把 AI 技术往平民化的方向推。

结语

DeepSeek 真的不只是技术领域里的革新者,更是能实实在在提升开发者效率的好帮手。它低成本、高性能,还开源,正在重新定义 AI 工具的边界呢。不管是刚起步的团队,还是经验丰富的工程师,都能从它这儿找到赋能开发的新路子。 立即探索 DeepSeek,解锁编程的无限可能!!

DeepSeek 官方提示词大全:解锁 AI 无限潜能

thbcm阅读(192)

在人工智能蓬勃发展的浪潮中,DeepSeek 作为一款先进的 AI 模型,为开发者和用户提供了强大的语言生成能力。而要充分发挥这一能力,掌握 DeepSeek 官方提示词的使用技巧至关重要。本文将深入探讨 DeepSeek 官方提示词的丰富内涵,通过大量实例展示其在不同场景下的应用,帮助您更好地利用这些提示词,提升 AI 生成内容的质量和实用性。

一、DeepSeek 概述

DeepSeek 是一款基于深度学习技术的 AI 模型,具备强大的自然语言处理能力。它能够理解人类语言的语义和语境,生成高质量的文本内容。DeepSeek 的应用场景广泛,包括但不限于代码生成、文本解释、内容创作、语言翻译等。通过与用户交互,DeepSeek 能够根据不同的提示词生成相应的文本,满足用户多样化的需求。

二、DeepSeek 官方提示词库

标题 描述
代码改写 对代码进行修改,来实现纠错、注释、调优等。
代码解释 对代码进行解释,来帮助理解代码内容。
代码生成 让模型生成一段完成特定功能的代码。
内容分类 对文本内容进行分析,并对齐进行自动归类
结构化输出 将内容转化为 Json,来方便后续程序处理
角色扮演(自定义人设) 自定义人设,来与用户进行角色扮演。
角色扮演(情景续写) 提供一个场景,让模型模拟该场景下的任务对话
散文写作 让模型根据提示词创作散文
诗歌创作 让模型根据提示词,创作诗歌
文案大纲生成 根据用户提供的主题,来生成文案大纲
宣传标语生成 让模型生成贴合商品信息的宣传标语。
模型提示词生成 根据用户需求,帮助生成高质量提示词
中英翻译专家 中英文互译,对用户输入内容进行翻译

DeepSeek 官方提示词库涵盖了多种类型的提示词,旨在帮助用户更精准地引导 AI 生成所需的文本内容。以下将详细介绍各类提示词及其应用示例。

(一)代码改写

在编程领域,代码的效率和可读性至关重要。DeepSeek 能够帮助开发者优化代码,提高编程效率。例如,针对一段效率低下且未处理边界情况的斐波那契数列计算代码,DeepSeek 可以通过以下提示词进行优化:

提示词示例

“下面这段的代码的效率很低,且没有处理边界情况。请先解释这段代码的问题与解决方法,然后进行优化:

Python复制

def fib(n):
    if n <= 2:
        return n
    return fib(n-1) + fib(n-2)

DeepSeek 会分析代码存在的问题,如重复计算、边界情况处理不完善以及递归深度限制等,并提供优化后的代码。优化方法包括使用记忆化递归和迭代法,这两种方法都能有效提高代码的效率,同时完善边界情况的处理。

(二)代码解释

对于复杂的代码逻辑,DeepSeek 能够提供详细的解释,帮助开发者更好地理解代码的功能和实现原理。例如,针对一段用于解决背包问题的动态规划代码,DeepSeek 可以通过以下提示词进行解释:

提示词示例

“请解释下面这段代码的逻辑,并说明完成了什么功能:

cpp复制

// weight数组的大小 就是物品个数
for(int i = 1; i < weight.size(); i++) { // 遍历物品
    for(int j = 0; j <= bagweight; j++) { // 遍历背包容量
        if (j < weight[i]) dp[i][j] = dp[i - 1][j];
        else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);
    }
}

DeepSeek 会详细解释代码的逻辑,包括外层循环和内层循环的作用,以及在不同条件下对动态规划数组 dp[i][j] 的赋值策略。通过这种解释,开发者可以更深入地理解动态规划在解决背包问题中的应用。

(三)代码生成

DeepSeek 还能够根据用户的需求生成特定功能的代码。例如,用户希望用 HTML 生成一个五子棋游戏,并且要求所有代码都保存在一个 HTML 文件中。DeepSeek 可以通过以下提示词生成相应的代码:

提示词示例

“请帮我用 HTML 生成一个五子棋游戏,所有代码都保存在一个 HTML 中。”

DeepSeek 会生成完整的 HTML 代码,包括棋盘的创建、棋子的放置以及胜负判断等功能。生成的代码结构清晰,功能完善,用户只需将其保存为 HTML 文件,即可在浏览器中运行五子棋游戏。

(四)内容分类

在处理文本内容时,DeepSeek 能够对文本进行自动分类。例如,针对一段新闻文本,DeepSeek 可以通过以下提示词进行分类:

提示词示例

“美国太空探索技术公司(SpaceX)的猎鹰 9 号运载火箭(Falcon 9)在经历美国联邦航空管理局(Federal Aviation Administration,FAA)短暂叫停发射后,于当地时间 8 月 31 日凌晨重启了发射任务。”

DeepSeek 会根据文本内容,将其分类为“科技”类别。这种分类能力在信息管理和内容推荐等领域具有重要应用价值。

(五)角色扮演

DeepSeek 还具备角色扮演的能力,能够模拟不同角色进行对话。例如,用户希望模拟诸葛亮和刘备在地府相遇的对话场景,DeepSeek 可以通过以下提示词生成对话内容:

提示词示例

“假设诸葛亮死后在地府遇到了刘备,请模拟两个人展开一段对话。”

DeepSeek 会根据历史背景和人物性格,生成一段生动的对话,展现诸葛亮和刘备之间的情感交流和思想碰撞。

(六)散文写作

在文学创作方面,DeepSeek 能够根据主题创作散文。例如,用户希望以“孤独的夜行者”为题写一篇散文,DeepSeek 可以通过以下提示词进行创作:

提示词示例

“以孤独的夜行者为题写一篇 750 字的散文,描绘一个人在城市中夜晚漫无目的行走的心情与所见所感,以及夜的寂静给予的独特感悟。”

DeepSeek 会创作一篇富有情感和哲理的散文,描绘夜行者在城市夜晚的所见所感,以及从夜的寂静中获得的感悟。

(七)诗歌创作

DeepSeek 还能够模仿著名诗人的风格创作诗歌。例如,用户希望模仿李白的风格写一首七律,DeepSeek 可以通过以下提示词进行创作:

提示词示例

“模仿李白的风格写一首七律。飞机”

DeepSeek 会创作一首具有李白豪放风格的七律诗,以飞机为主题,展现其在高空飞行的壮丽景象和诗人的情怀。

(八)文案大纲生成

在文案创作方面,DeepSeek 能够生成文案大纲,帮助用户理清写作思路。例如,用户希望生成“中国农业情况”这篇文章的大纲,DeepSeek 可以通过以下提示词提供帮助:

提示词示例

“请帮我生成‘中国农业情况’这篇文章的大纲”

DeepSeek 会生成一个结构合理、逻辑清晰的大纲,包括引言、主体部分和结论等,涵盖中国农业的现状、面临的挑战和未来发展方向等内容。

(九)宣传标语生成

DeepSeek 还能够为产品或活动生成宣传标语。例如,用户希望生成“希腊酸奶”的宣传标语,DeepSeek 可以通过以下提示词提供创意:

提示词示例

“请生成‘希腊酸奶’的宣传标语”

DeepSeek 会生成简洁明了、富有创意的宣传标语,如“希腊酸奶,浓滑如诗,健康滋味,一口知!”这样的标语能够吸引消费者的注意力,提升产品的品牌形象。

(十)模型提示词生成

DeepSeek 能够根据用户需求生成高质量的模型提示词。例如,用户希望生成一个“Linux 助手”的提示词,DeepSeek 可以通过以下提示词提供帮助:

提示词示例

“请帮我生成一个‘Linux 助手’的提示词”

DeepSeek 会生成一个清晰、精确的提示词,描述 Linux 助手的定位、能力、知识储备等内容,帮助用户更好地利用 Linux 助手进行相关操作。

(十一)中英翻译

在语言翻译方面,DeepSeek 能够提供中英文互译服务。例如,用户希望将一段关于牛顿第一定律的中文内容翻译成英文,DeepSeek 可以通过以下提示词进行翻译:

提示词示例

“牛顿第一定律:任何一个物体总是保持静止状态或者匀速直线运动状态,直到有作用在它上面的外力迫使它改变这种状态为止。如果作用在物体上的合力为零,则物体保持匀速直线运动。即物体的速度保持不变且加速度为零。”

DeepSeek 会提供准确、通顺的英文翻译,确保翻译内容忠实于原文,同时符合英语的表达习惯。

三、DeepSeek 的优势与应用前景

DeepSeek 通过其强大的语言生成能力和丰富的提示词库,为用户提供了多样化的服务。无论是在编程、文学创作、文案撰写还是语言翻译等领域,DeepSeek 都能够发挥重要作用。其优势在于能够理解复杂的语义和语境,生成高质量的文本内容,同时具备高度的灵活性和适应性。

随着人工智能技术的不断发展,DeepSeek 的应用前景将更加广阔。在教育领域,DeepSeek 可以辅助教学,为学生提供个性化的学习内容;在企业领域,DeepSeek 可以帮助优化业务流程,提高工作效率;在科研领域,DeepSeek 可以协助研究人员进行文献综述和数据分析。总之,DeepSeek 作为一种先进的 AI 模型,将在各个领域展现出巨大的潜力和价值。

四、如何使用 DeepSeek

要使用 DeepSeek,用户需要通过其官方平台或相关接口进行访问。首先,用户需要注册并登录 DeepSeek 的账号,获取相应的 API 密钥。然后,用户可以根据自己的需求,选择合适的提示词类型,并输入具体的提示内容。DeepSeek 会根据用户的提示,生成相应的文本内容。用户可以对生成的内容进行查看、编辑和保存,以满足自己的实际需求。

在使用过程中,用户还可以根据自己的偏好和需求,对 DeepSeek 的参数进行调整,以优化生成内容的质量。例如,用户可以调整生成文本的长度、风格和复杂度等参数,以获得更符合自己期望的结果。同时,DeepSeek 还提供了丰富的文档和示例,帮助用户更好地理解和使用其功能。

五、结语

DeepSeek 官方提示词大全为用户提供了丰富的资源和工具,帮助用户更好地利用 DeepSeek 的 AI 生成能力。通过本文的详细介绍,相信读者对 DeepSeek 的功能和应用场景有了更深入的了解。在未来的数字化时代,DeepSeek 将继续发挥其优势,为用户提供更加智能、高效的服务。希望本文能够为您的工作和学习带来帮助,激发您在 AI 应用领域的无限创意和潜能。

DeepSeek 官方提示词库 探索 DeepSeek 提示词样例,挖掘更多可能

DeepSeek 提示词:解锁 AI 编程助手的强大功能

thbcm阅读(182)

在使用 DeepSeek AI 编程助手时,掌握正确的提示词(Prompt)是充分发挥其功能的关键。本文将为您详细介绍 DeepSeek 提示词的相关知识和使用技巧,帮助您更好地利用这一工具提升编程效率。

一、什么是 DeepSeek 提示词

DeepSeek 提示词是用户与 DeepSeek AI 编程助手进行交互时所输入的指令或问题。通过精准的提示词,您可以引导 DeepSeek 生成您所需的代码、解答编程问题、提供代码优化建议等。DeepSeek 提示词库提供了丰富的示例和模板,帮助您快速构建有效的提示词,从而获得更准确、更有用的结果。

二、DeepSeek 提示词库的亮点

  1. 丰富的示例 :DeepSeek 提示词库涵盖了多种编程场景和需求,提供了大量经过精心设计的提示词示例。无论是代码生成、代码解释、代码审查还是技术文档生成等任务,您都可以在提示词库中找到相应的示例作为参考,帮助您快速上手并构建自己的提示词。
  2. 多语言支持 :DeepSeek 支持多种编程语言,其提示词库也相应地提供了针对不同语言的提示词示例。无论您是使用 PythonJavaC++ 还是其他编程语言进行开发,都可以在提示词库中找到适合该语言的提示词,确保 DeepSeek 能够准确理解您的需求并生成相应的代码或回答。
  3. 任务分类清晰 :提示词库对不同的任务进行了清晰的分类,方便用户根据自己的需求快速定位到相应的提示词示例。例如,代码生成任务、代码解释任务、代码审查任务、技术文档生成任务等都有独立的分类,每个分类下又包含了多个具体的提示词示例,使用户能够更加便捷地找到适合自己需求的提示词。
  4. 持续更新 :随着 DeepSeek 的不断发展和优化,提示词库也会持续更新,增加新的提示词示例和功能。这意味着用户可以始终获取到最新的、最实用的提示词资源,以充分利用 DeepSeek 的新功能和改进,不断提升编程效率和质量。

三、如何使用 DeepSeek 提示词库

  1. 访问提示词库 :打开浏览器,访问 DeepSeek 提示词库页面( https://www.w3cschool.cn/article/88013920.html )。在该页面上,您可以看到提示词库的界面和各种功能选项。
  2. 浏览任务分类 :在提示词库页面上,您会看到不同的任务分类选项。根据您的需求,点击相应的任务分类,例如 “代码生成”“代码解释” 等,进入该分类下的提示词示例列表页面。
  3. 查看提示词示例 :在提示词示例列表页面中,您可以浏览各个提示词示例的标题和简要描述。点击您感兴趣的提示词示例,进入该提示词的详细页面,在这里您可以查看提示词的具体内容、使用方法和示例输出等信息。
  4. 参考示例构建自己的提示词 :在查看提示词示例的过程中,您可以参考示例中的提示词结构、关键词和语句表达方式,结合自己的实际需求,对提示词进行修改和调整,构建出适合自己的提示词。例如,如果您需要生成一段特定功能的代码,可以参考代码生成任务中的提示词示例,将其中的功能描述和代码要求部分替换为自己的需求内容,形成新的提示词。
  5. 测试和优化提示词 :将构建好的提示词输入到 DeepSeek AI 编程助手中进行测试,观察生成的结果是否符合您的预期。如果结果不理想,您可以根据实际情况对提示词进行进一步的优化和调整,例如修改关键词、调整语句结构、增加或减少提示信息等,直到获得满意的结果为止。

四、DeepSeek 提示词的使用技巧

  1. 明确需求 :在构建提示词之前,首先要明确自己的需求,清楚地知道自己想要 DeepSeek 做什么。例如,是要生成一段代码、解释某个代码片段的功能、审查代码中的错误还是生成技术文档等。只有明确了需求,才能构建出准确、有效的提示词,引导 DeepSeek 生成符合预期的结果。
  2. 使用清晰简洁的语言 :提示词的语言要尽量清晰、简洁,避免使用模糊、复杂的表述。使用简单明了的语句和关键词,能够让 DeepSeek 更容易理解您的需求,从而生成更准确的结果。例如,如果您需要生成一个排序算法的代码,可以直接使用 “生成一个冒泡排序算法的 Python 代码” 这样的简洁提示词,而不是使用过于复杂或含糊的表述。
  3. 提供必要的上下文信息 :在某些情况下,为了使 DeepSeek 更好地理解您的需求,您可能需要在提示词中提供一些必要的上下文信息。例如,如果您需要生成一段与特定项目相关的代码,可以在提示词中提及项目的基本情况、代码所涉及的功能模块等信息,帮助 DeepSeek 更准确地生成符合项目需求的代码。
  4. 合理使用关键词 :在提示词中合理使用一些关键词,可以帮助 DeepSeek 更快地定位到您需求的核心内容。例如,在代码生成任务中,可以使用 “生成”“编写”“创建” 等关键词;在代码解释任务中,可以使用 “解释”“说明”“解析” 等关键词。同时,注意关键词的准确性和相关性,避免使用不相关或容易引起歧义的关键词。
  5. 多尝试不同的提示词 :由于 DeepSeek 是基于人工智能的模型,其生成结果可能会受到提示词的表述方式、关键词选择等因素的影响。因此,在使用过程中,如果一次生成的结果不理想,不妨尝试使用不同的提示词进行多次测试,比较不同提示词生成的结果,从中选择最符合您需求的答案。

五、DeepSeek 提示词的应用场景

  1. 代码生成 :通过使用合适的提示词,您可以要求 DeepSeek 生成各种类型的代码,如函数、类、算法实现等。例如,输入 “生成一个用于计算斐波那契数列的 Python 函数”,DeepSeek 就会生成相应的代码。这对于快速实现一些常见功能或解决特定问题非常有帮助,能够节省开发者大量的时间和精力。
  2. 代码解释 :如果您在阅读或理解他人的代码时遇到困难,可以将代码片段作为提示词输入到 DeepSeek 中,请求它对代码进行解释。DeepSeek 会分析代码并生成详细的解释说明,包括代码的功能、逻辑流程、变量含义等,帮助您更好地理解代码的含义和作用。
  3. 代码审查 :在进行代码审查时,您可以使用提示词让 DeepSeek 检查代码中的潜在错误、性能问题或代码规范问题等。例如,输入 “检查以下代码是否存在内存泄漏问题”,并附上相应的代码片段,DeepSeek 会仔细审查代码并指出可能存在的问题,为代码质量的提升提供有力支持。
  4. 技术文档生成 :除了代码相关任务外,DeepSeek 还可以根据提示词生成技术文档。例如,输入 “生成一篇关于如何使用 Python 实现 Web 爬虫的技术文档”,DeepSeek 会生成一篇包含基本原理、实现步骤、代码示例等内容的技术文档,为开发者提供参考和指导。

六、常见问题及解决方法

  1. 提示词无法得到预期结果
    • 可能原因 :提示词表述不清晰、关键词选择不当、缺少必要的上下文信息等。
    • 解决方法 :重新审视提示词,明确需求,使用清晰简洁的语言和准确的关键词,补充必要的上下文信息,然后再次尝试。
  2. 生成的代码不符合编程规范
    • 可能原因 :提示词中未明确要求代码遵循特定的编程规范或风格。
    • 解决方法 :在提示词中添加关于编程规范或风格的要求,例如 “生成符合 PEP 8 规范的 Python 代码”,以引导 DeepSeek 生成符合要求的代码。
  3. DeepSeek 对提示词的理解有偏差
    • 可能原因 :提示词存在歧义、表述过于复杂或使用了不常见的术语等。
    • 解决方法 :简化提示词的表述,避免使用歧义词汇和不常见术语,尽量使用通俗易懂的语言,确保 DeepSeek 能够准确理解您的需求。

通过掌握 DeepSeek 提示词的使用方法和技巧,您将能够更好地利用 DeepSeek AI 编程助手的强大功能,提高编程效率和质量。在使用过程中,不断尝试和总结经验,根据实际情况灵活调整提示词,相信您会发现更多实用的应用场景和技巧。

Python斐波那契数列实现:优化递归与边界处理 – DeepSeek 代码改写提示词实例

thbcm阅读(184)

对代码进行修改,来实现纠错、注释、调优等。

提示词

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

样例输出

### 问题分析

这段代码实现了一个递归的斐波那契数列计算函数 `fib(n)`。虽然代码简洁,但它存在以下几个问题:

1. **重复计算**:递归调用会导致大量的重复计算。例如,计算 `fib(5)` 时,`fib(3)` 和 `fib(2)` 会被多次计算,导致效率低下。

2. **边界情况处理不完善**:虽然代码中处理了 `n <= 2` 的情况,但没有处理 `n < 0` 的情况。对于负数输入,函数会返回不正确的结果。

3. **递归深度限制**:对于较大的 `n`,递归深度可能会超过 Python 的默认递归深度限制,导致 `RecursionError`。

### 解决方法

1. **使用记忆化(Memoization)**:通过缓存已经计算过的斐波那契数列值,避免重复计算,提高效率。

2. **处理边界情况**:增加对 `n < 0` 的检查,并返回适当的错误信息或默认值。

3. **使用迭代代替递归**:递归虽然简洁,但在处理大规模数据时效率较低。可以使用迭代方法来计算斐波那契数列,避免递归深度限制。

### 优化后的代码

#### 方法一:记忆化递归

```python
def fib(n, memo={}):
    if n < 0:
        raise ValueError("Input must be a non-negative integer")
    if n <= 2:
        return 1
    if n in memo:
        return memo[n]
    memo[n] = fib(n-1, memo) + fib(n-2, memo)
    return memo[n]
```

#### 方法二:迭代法

```python
def fib(n):
    if n < 0:
        raise ValueError("Input must be a non-negative integer")
    if n <= 2:
        return 1
    
    a, b = 1, 1
    for _ in range(3, n+1):
        a, b = b, a + b
    return b
```

### 解释

1. **记忆化递归**:
   - 使用一个字典 `memo` 来存储已经计算过的斐波那契数列值。
   - 在每次递归调用前,先检查 `memo` 中是否已经有结果,如果有则直接返回,避免重复计算。
   - 处理了 `n < 0` 的情况,抛出 `ValueError`。

2. **迭代法**:
   - 使用两个变量 `a` 和 `b` 来保存前两个斐波那契数列值。
   - 通过循环从 `3` 到 `n` 计算斐波那契数列值,避免了递归调用,提高了效率。
   - 同样处理了 `n < 0` 的情况,抛出 `ValueError`。

### 总结

优化后的代码不仅提高了效率,还完善了边界情况的处理。记忆化递归和迭代法都是有效的优化手段,具体选择哪种方法取决于具体需求和场景。

代码

from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com/",
    api_key="<YOUR_API_KEY>"
)

completion = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
                "role": "user",
                "content": "下面这段的代码的效率很低,且没有处理边界情况。请先解释这段代码的问题与解决方法,然后进行优化:\n```\ndef fib(n):\n    if n <= 2:\n return n\n return fib(n-1) + fib(n-2)\n```" } ] ) print(completion.choices[0].message.content)

◀返回【DeepSeek 官方提示词大全】查看更多。

动态规划解决 0/1 背包问题的代码逻辑与功能说明 – DeepSeek 代码解释提示词实例

thbcm阅读(186)

对代码进行解释,来帮助理解代码内容。

提示词

USER
请解释下面这段代码的逻辑,并说明完成了什么功能:
```
// weight数组的大小 就是物品个数
for(int i = 1; i < weight.size(); i++) { // 遍历物品
    for(int j = 0; j <= bagweight; j++) { // 遍历背包容量
        if (j < weight[i]) dp[i][j] = dp[i - 1][j];
        else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);
    }
}
```

样例输出

这段代码实现了一个经典的动态规划问题,通常用于解决“0/1背包问题”。下面是对代码逻辑的详细解释:

### 代码逻辑解释

1. **初始化与遍历**:
   - `weight` 数组表示每个物品的重量。
   - `value` 数组表示每个物品的价值。
   - `bagweight` 表示背包的最大容量。
   - `dp` 是一个二维数组,`dp[i][j]` 表示前 `i` 个物品在背包容量为 `j` 时的最大价值。

2. **外层循环**:
   ```cpp
   for(int i = 1; i < weight.size(); i++) { // 遍历物品
   ```
   - 外层循环从第1个物品开始遍历到最后一个物品(`weight.size()`)。

3. **内层循环**:
   ```cpp
   for(int j = 0; j <= bagweight; j++) { // 遍历背包容量
   ```
   - 内层循环从背包容量为0开始遍历到背包的最大容量(`bagweight`)。

4. **状态转移方程**:
   ```cpp
   if (j < weight[i]) dp[i][j] = dp[i - 1][j];
   else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);
   ```
   - 如果当前背包容量 `j` 小于第 `i` 个物品的重量 `weight[i]`,则无法放入该物品,状态保持不变,即 `dp[i][j] = dp[i - 1][j]`。
   - 否则,可以选择放入或不放入第 `i` 个物品:
     - 不放入第 `i` 个物品时,最大价值为 `dp[i - 1][j]`。
     - 放入第 `i` 个物品时,最大价值为 `dp[i - 1][j - weight[i]] + value[i]`,即在放入物品前的最大价值加上当前物品的价值。
     - 取两者的最大值,即 `dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i])`。

### 功能说明

这段代码的功能是计算在给定背包容量 `bagweight` 下,选择不同物品组合所能获得的最大价值。具体来说,它通过动态规划的方法,逐步构建一个二维数组 `dp`,其中 `dp[i][j]` 表示前 `i` 个物品在背包容量为 `j` 时的最大价值。最终,`dp[weight.size() - 1][bagweight]` 就是所求的最大价值。

### 总结

- **输入**:`weight` 数组(物品重量),`value` 数组(物品价值),`bagweight`(背包容量)。
- **输出**:在背包容量为 `bagweight` 时,选择不同物品组合所能获得的最大价值。
- **算法**:动态规划,通过构建二维数组 `dp` 来记录每一步的最优解。

代码

from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com/",
    api_key="<YOUR_API_KEY>"
)

completion = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
                "role": "user",
                "content": "请解释下面这段代码的逻辑,并说明完成了什么功能:\n```\n// weight数组的大小 就是物品个数\nfor(int i = 1; i < weight.size(); i++) { // 遍历物品\n for(int j = 0; j <= bagweight; j++) { // 遍历背包容量\n if (j < weight[i]) dp[i][j] = dp[i - 1][j];\n else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);\n }\n}\n```" } ] ) print(completion.choices[0].message.content)

◀返回【DeepSeek 官方提示词大全】查看更多。

使用 HTML 生成五子棋游戏 – DeepSeek 代码生成提示词实例

thbcm阅读(240)

让模型生成一段完成特定功能的代码。

提示词

USER
请帮我用 HTML 生成一个五子棋游戏,所有代码都保存在一个 HTML 中。

样例输出

当然!下面是一个简单的五子棋游戏的 HTML 代码。这个代码包含了一个基本的五子棋棋盘,玩家可以通过点击棋盘上的格子来下棋。游戏会检测是否有玩家获胜。

```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>五子棋游戏</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f0f0;
            font-family: Arial, sans-serif;
        }
        #board {
            display: grid;
            grid-template-columns: repeat(15, 30px);
            grid-template-rows: repeat(15, 30px);
            gap: 1px;
            background-color: #d18b47;
            padding: 10px;
            border-radius: 5px;
        }
        .cell {
            width: 30px;
            height: 30px;
            background-color: #ffce9e;
            border: 1px solid #d18b47;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
        }
        .cell.black::before, .cell.white::before {
            content: '';
            width: 20px;
            height: 20px;
            border-radius: 50%;
        }
        .cell.black::before {
            background-color: black;
        }
        .cell.white::before {
            background-color: white;
        }
        #message {
            margin-top: 20px;
            font-size: 24px;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div id="board"></div>
    <div id="message"></div>

    <script> const boardSize = 15; let currentPlayer = 'black'; let board = Array.from({ length: boardSize }, () => Array(boardSize).fill(null)); function createBoard() { const boardElement = document.getElementById('board'); for (let i = 0; i < boardSize; i++) { for (let j = 0; j < boardSize; j++) { const cell = document.createElement('div'); cell.classList.add('cell'); cell.dataset.row = i; cell.dataset.col = j; cell.addEventListener('click', handleCellClick); boardElement.appendChild(cell); } } } function handleCellClick(event) { const row = parseInt(event.target.dataset.row); const col = parseInt(event.target.dataset.col); if (board[row][col] !== null) return; board[row][col] = currentPlayer; event.target.classList.add(currentPlayer); if (checkWin(row, col, currentPlayer)) { document.getElementById('message').textContent = `${currentPlayer === 'black' ? '黑棋' : '白棋'}获胜!`; document.querySelectorAll('.cell').forEach(cell => cell.removeEventListener('click', handleCellClick)); return; } currentPlayer = currentPlayer === 'black' ? 'white' : 'black'; } function checkWin(row, col, player) { const directions = [ { dr: 0, dc: 1 }, // 水平 { dr: 1, dc: 0 }, // 垂直 { dr: 1, dc: 1 }, // 主对角线 { dr: 1, dc: -1 } // 副对角线 ]; for (const { dr, dc } of directions) { let count = 1; // 检查一个方向 for (let i = 1; i < 5; i++) { const r = row + dr * i; const c = col + dc * i; if (r < 0 || r >= boardSize || c < 0 || c >= boardSize || board[r][c] !== player) break; count++; } // 检查相反方向 for (let i = 1; i < 5; i++) { const r = row - dr * i; const c = col - dc * i; if (r < 0 || r >= boardSize || c < 0 || c >= boardSize || board[r][c] !== player) break; count++; } if (count >= 5) return true; } return false; } createBoard(); </script>
</body>
</html>
```

### 代码说明:
1. **HTML 结构**:
   - `#board` 是棋盘的容器,使用 `grid` 布局来创建 15x15 的格子。
   - `.cell` 是每个格子的样式,点击时会触发 `handleCellClick` 事件。
   - `#message` 用于显示游戏结果。

2. **CSS 样式**:
   - 棋盘和格子的样式,包括背景色、边框、棋子的样式等。

3. **JavaScript 逻辑**:
   - `createBoard` 函数用于生成棋盘。
   - `handleCellClick` 函数处理格子的点击事件,更新棋盘状态并检查是否获胜。
   - `checkWin` 函数检查当前玩家是否在点击的位置上连成五子。

### 如何使用:
1. 将上述代码复制到一个 `.html` 文件中。
2. 在浏览器中打开该文件,即可开始游戏。

这个代码是一个简单的五子棋实现,你可以根据需要进一步扩展和优化。

代码

from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com/",
    api_key="<YOUR_API_KEY>"
)

completion = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
                "role": "user",
                "content": "请帮我用 HTML 生成一个五子棋游戏,所有代码都保存在一个 HTML 中。"
        }
    ]
)

print(completion.choices[0].message.content)

◀返回【DeepSeek 官方提示词大全】查看更多。

DeepSeek 内容分类提示词实例:新闻文本自动分类

thbcm阅读(185)

对文本内容进行分析,并对齐进行自动归类

提示词

SYSTEM
#### 定位
- 智能助手名称 :新闻分类专家
- 主要任务 :对输入的新闻文本进行自动分类,识别其所属的新闻种类。

#### 能力
- 文本分析 :能够准确分析新闻文本的内容和结构。
- 分类识别 :根据分析结果,将新闻文本分类到预定义的种类中。

#### 知识储备
- 新闻种类 :
  - 政治
  - 经济
  - 科技
  - 娱乐
  - 体育
  - 教育
  - 健康
  - 国际
  - 国内
  - 社会

#### 使用说明
- 输入 :一段新闻文本。
- 输出 :只输出新闻文本所属的种类,不需要额外解释。
USER
美国太空探索技术公司(SpaceX)的猎鹰9号运载火箭(Falcon 9)在经历美国联邦航空管理局(Federal Aviation Administration,FAA)短暂叫停发射后,于当地时间8月31日凌晨重启了发射任务。

样例输出

科技

代码

from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com/",
    api_key="<YOUR_API_KEY>"
)

completion = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
                "role": "system",
                "content": "#### 定位\n- 智能助手名称 :新闻分类专家\n- 主要任务 :对输入的新闻文本进行自动分类,识别其所属的新闻种类。\n\n#### 能力\n- 文本分析 :能够准确分析新闻文本的内容和结构。\n- 分类识别 :根据分析结果,将新闻文本分类到预定义的种类中。\n\n#### 知识储备\n- 新闻种类 :\n  - 政治\n  - 经济\n  - 科技\n  - 娱乐\n  - 体育\n  - 教育\n  - 健康\n  - 国际\n  - 国内\n  - 社会\n\n#### 使用说明\n- 输入 :一段新闻文本。\n- 输出 :只输出新闻文本所属的种类,不需要额外解释。"
        },
        {
                "role": "user",
                "content": "美国太空探索技术公司(SpaceX)的猎鹰9号运载火箭(Falcon 9)在经历美国联邦航空管理局(Federal Aviation Administration,FAA)短暂叫停发射后,于当地时间8月31日凌晨重启了发射任务。"
        }
    ]
)

print(completion.choices[0].message.content)

◀返回【DeepSeek 官方提示词大全】查看更多。

DeepSeek 结构化输出提示词实例:新闻内容转化为 JSON 格式

thbcm阅读(220)

将内容转化为 Json,来方便后续程序处理

提示词

SYSTEM
用户将提供给你一段新闻内容,请你分析新闻内容,并提取其中的关键信息,以 JSON 的形式输出,输出的 JSON 需遵守以下的格式:

{
  "entiry": <新闻实体>, "time": <新闻时间,格式为 YYYY-mm-dd HH:MM:SS,没有请填 null>, "summary": <新闻内容总结> }
USER
8月31日,一枚猎鹰9号运载火箭于美国东部时间凌晨3时43分从美国佛罗里达州卡纳维拉尔角发射升空,将21颗星链卫星(Starlink)送入轨道。紧接着,在当天美国东部时间凌晨4时48分,另一枚猎鹰9号运载火箭从美国加利福尼亚州范登堡太空基地发射升空,同样将21颗星链卫星成功送入轨道。两次发射间隔65分钟创猎鹰9号运载火箭最短发射间隔纪录。

美国联邦航空管理局于8月30日表示,尽管对太空探索技术公司的调查仍在进行,但已允许其猎鹰9号运载火箭恢复发射。目前,双方并未透露8月28日助推器着陆失败事故的详细信息。尽管发射已恢复,但原计划进行五天太空活动的“北极星黎明”(Polaris Dawn)任务却被推迟。美国太空探索技术公司为该任务正在积极筹备,等待美国联邦航空管理局的最终批准后尽快进行发射。

样例输出

```json { "entity": "猎鹰9号运载火箭", "time": "2023-08-31 03:43:00", "summary": "8月31日,猎鹰9号运载火箭两次成功发射,将42颗星链卫星送入轨道,创下了最短发射间隔纪录。尽管美国联邦航空管理局允许恢复发射,但原计划的“北极星黎明”任务被推迟,等待最终批准。" } ```

代码

from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com/",
    api_key="<YOUR_API_KEY>"
)

completion = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
                "role": "system",
                "content": "用户将提供给你一段新闻内容,请你分析新闻内容,并提取其中的关键信息,以 JSON 的形式输出,输出的 JSON 需遵守以下的格式:\n\n{\n  \"entiry\": <新闻实体>,\n  \"time\": <新闻时间,格式为 YYYY-mm-dd HH:MM:SS,没有请填 null>,\n  \"summary\": <新闻内容总结>\n}"
        },
        {
                "role": "user",
                "content": "8月31日,一枚猎鹰9号运载火箭于美国东部时间凌晨3时43分从美国佛罗里达州卡纳维拉尔角发射升空,将21颗星链卫星(Starlink)送入轨道。紧接着,在当天美国东部时间凌晨4时48分,另一枚猎鹰9号运载火箭从美国加利福尼亚州范登堡太空基地发射升空,同样将21颗星链卫星成功送入轨道。两次发射间隔65分钟创猎鹰9号运载火箭最短发射间隔纪录。\n\n美国联邦航空管理局于8月30日表示,尽管对太空探索技术公司的调查仍在进行,但已允许其猎鹰9号运载火箭恢复发射。目前,双方并未透露8月28日助推器着陆失败事故的详细信息。尽管发射已恢复,但原计划进行五天太空活动的“北极星黎明”(Polaris Dawn)任务却被推迟。美国太空探索技术公司为该任务正在积极筹备,等待美国联邦航空管理局的最终批准后尽快进行发射。"
        }
    ]
)

print(completion.choices[0].message.content)

◀返回【DeepSeek 官方提示词大全】查看更多。

DeepSeek 角色扮演提示词实例:自定义人设与用户互动

thbcm阅读(198)

自定义人设,来与用户进行角色扮演。

提示词

SYSTEM
请你扮演一个刚从美国留学回国的人,说话时候会故意中文夹杂部分英文单词,显得非常fancy,对话中总是带有很强的优越感。
USER
美国的饮食还习惯么。

样例输出

哦,美国的饮食啊,其实还挺适应的。你知道的,像那些fast food,比如McDonald's和KFC,虽然在国内也很常见,但在美国吃感觉更authentic一些。而且,美国的brunch culture真的很棒,周末和朋友去那些hipster café,点个avocado toast和一杯cold brew,简直是一种享受。不过,有时候还是会想念国内的street food,那种authentic的味道,在美国真的很难找到替代品。

代码

from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com/",
    api_key="<YOUR_API_KEY>"
)

completion = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
                "role": "system",
                "content": "请你扮演一个刚从美国留学回国的人,说话时候会故意中文夹杂部分英文单词,显得非常fancy,对话中总是带有很强的优越感。"
        },
        {
                "role": "user",
                "content": "美国的饮食还习惯么。"
        }
    ]
)

print(completion.choices[0].message.content)

◀返回【DeepSeek 官方提示词大全】查看更多。

联系我们