实践记录及工具使用-AI在刷题中的作用 | 豆包MarsCode AI刷题

133 阅读4分钟

AI 刷题的优势及案例分析

大语言模型在编程领域的惊艳表现让几乎所有程序员注意到了它。多家公司着手研发自己的LLM以在这片领域开疆扩土,豆包MarsCode便是这其中一员。MarsCode不仅能快速地提供解题方案,还能够以交互式方式帮助用户深入理解问题并优化解法。本文着眼于分析AI刷题的优势,并通过一个徒步旅行规划问题的案例,深入探讨AI是以什么样的逻辑帮助学习者提升解决问题的能力的。


AI 刷题的优势

先简单地总结一下AI刷题的直接优势:

  1. 高效性:
    AI 能在短时间内从大量知识库中调用最优的解决方案,快速生成可执行代码,并高效解决问题。
  2. 可解释性:
    AI 能以清晰的步骤解释解题思路和算法逻辑,帮助学习者理解关键环节。
  3. 个性化学习:
    根据学习者的实际需求和水平,AI 可提供不同层次的解题策略和优化建议。
  4. 多样性:
    AI 能为同一问题生成多种解法,如暴力搜索、动态规划、贪心算法等,全面展示问题解决的多样性。
  5. 持续改进:
    通过与用户交互,AI 不仅能解决问题,还能在用户的反馈中优化自身能力,为后续问题提供更优的帮助。

案例分析:徒步旅行规划问题

问题描述

小U计划从地点A徒步到地点B,旅行需要M天。为了安全,她每天都需要消耗一份食物。在路途中,小U可以在若干补给站购买食物,但每个补给站的价格不同。小U的目标是花费最少的钱购买足够的食物完成旅程。

问题建模

该问题可建模为贪心算法问题:在每个补给站,根据未来的价格走势决定购买食物的数量,以最小化总成本。

输入:

  • MM:总天数。
  • NN:补给站数量。
  • pp:补给站分布及价格。

目标:

  • 最小化花费。

分析 AI 的功能和帮助

对这样的题目,如果初学者没有建立起对子问题分解的嗅觉,将有些难以下手,但通过向MarsCode提问,我们可以获得一个良好的思路并引导自身实现问题。 向豆包发出需要一点思路提示的问题,其返回如下

小U需要在旅行的每一天都有食物供应,而食物可以在不同的补给站购买,每个补给站的食物价格不同。目标是找到一种购买策略,使得总花费最小。

  • 我们可以使用一个数组来存储每个补给站的信息,包括补给站的天数和食物价格。
  • 由于补给站是按顺序出现的,我们可以直接遍历这个数组来规划购买策略。
  1. 初始化变量
  • totalCost 用于记录总花费。

  • passedDay 用于记录已经购买食物的天数。

  • index 用于记录当前遍历到的补给站索引。

  1. 遍历补给站

  • 对于每个补给站,计算从当前补给站到下一个更便宜的补给站之间的天数。

  • 如果找不到更便宜的补给站,则计算到旅行结束的天数。

  1. 计算花费

  • 根据找到的天数和当前补给站的价格,计算并累加到 totalCost 中。

  • 更新 passedDay 和 index

  1. 结束条件

  • 当 passedDay 达到 M 时,表示已经购买了足够的食物,结束循环。

关键点

  • 需要找到下一个更便宜的补给站,如果没有更便宜的补给站,则计算到旅行结束的天数。
  • 每次购买食物时,需要考虑从当前补给站到下一个补给站之间的天数。

可以看到,MarsCode提供了非常详细的思路帮助,包括问题分解与算法框架乃至具体实现。


AI 在学习中的角色

由这个案例,我们不难发现AI在刷题中扮演的是什么样的角色。

1. 辅导者

AI 能实时提供问题解析,尤其是针对复杂问题,分步指导用户完成解答。

2. 练习伙伴

通过生成多样化的测试用例,AI 帮助用户验证算法的正确性和鲁棒性。

3. 优化专家

不仅提供解决方案,还能根据用户代码反馈提出改进建议,帮助学习者提高代码质量。


总结

AI 刷题的优势已经不止于“解题”,更重要的是“启发”。未来,随着 AI 技术的进步,它将更深入地融入学习者的成长之路。


作者:AWM