以梦为马,CodeArts Snap 缩短我与算法的距离【玩转华为云CodeArts Snap】
【摘要】 最近一直在体验华为云的 CodeArts Snap,逐渐掌握了使用方法,代码自动生成的准确程度也大大提高了。自从上次跟着 CodeArts Snap 学习用 Python 编程,逐渐喜欢上了 Python。我还给 CodeArts Snap 起了一个花名——最佳智能学习伴读。本文分享如何跟着 CodeArts Snap 学习算法。
背景
最近一直在体验华为云的 CodeArts Snap,逐渐掌握了使用方法,代码自动生成的准确程度也大大提高了。
自从上次跟着 CodeArts Snap 学习用 Python 编程,逐渐喜欢上了 Python。
我还给 CodeArts Snap 起了一个花名:
最佳智能学习伴读
之前就在看 CodeArts Snap 简介的时候,就注意到它熟悉算法。
而我虽然对算法感兴趣,但是因为时常想不出来实现方案,而很少运用算法。
既然是 CodeArts Snap,我还可以借鉴之前的"借力 CodeArts Snap实现结果倒推过程"学习思路,来学习算法。
关于 CodeArts Snap 的使用,推荐我另一篇文章《念念不忘智能编程,必有回响CodeArts Snap【玩转华为云CodeArts Snap】》
关于"结果倒推过程"学习思路,推荐我另一篇文章《借力 CodeArts Snap,助我打开结果倒推过程新思路【玩转华为云CodeArts Snap】》
CodeArts Snap:缩短与算法的距离
最优装载
我在看算法的题目时,看到一个很有趣的关于轮船装载的题目
一天,一艘货轮正在装货,这艘货轮的载重量是C,每件货物的重量是
。
现在需要装入尽可能多的货物,但是所有的货物总重量不能超过货轮的载重量。
问:最多能装多少件货物?
这个题目挺好懂的,怎么实现呢?
让我来考一考 CodeArts Snap。
功能注释
将题目转换成注释,录入到 py 文件中:
"""
1、假设有一辆轮船正在装货;
2、现在有一组货物需要装上,每个货物的重量为:4,10,7,11,3,5,14,2;
3、装货的限制是,装入的货物重量之和不能超过轮船的载重量30;
4、现在设计一个算法,求出轮船能装入货物的最多的总数量。
:return:
"""
生成代码
在注释下方进行"回车"操作,CodeArts Snap 可以自动生成代码:
def max_weight(weight, goods):
"""
:param weight: 货物重量
:param goods: 货物列表
:return: 最大的货物数量
"""
if len(goods) == 0:
return 0
max_weight = 0
count = 0
for i in range(len(goods)):
if max_weight + goods[i] <= weight:
max_weight = max_weight + goods[i]
count += 1
return count
这次的代码十分漂亮,给出了入参和返回的注释。
调用
我们来按照入参的注释,定义 goods:
goods = [4,10,7,11,3,5,14,2]
这个时候,可以手动输入打印结果的代码,也可以进行"回车"操作,因为回车之后,CodeArts Snap 都会快速的给出下一步的提示,准确度很高。
print(max_weight(weight, goods))
运行结果
最优装载和货轮的载重量有关,不同的载重量会有不同的结果。
先来设置的最大载重量为:30,运行代码,得到结果是:5。
我又观察了一下这组货物的特点,发现一个很妙的载重量:31,于是重新设置了一下,运行代码,得到结果是:6。
小结
CodeArts Snap 给出代码的速度十分迅速,而且上面的代码很好理解。
但是我却有个疑问,CodeArts Snap 给出的算法是最优解吗?
等我深入学习算法之后,再来回答这个问题吧。
结尾小记
经过一段时间的体验,我又解锁了 CodeArts Snap 一重用法——学习算法。
CodeArts Snap 给出代码的速度确实快,但是,有一点使用中不方便的地方:
功能注释要尝试多次,才能得到想要的功能。
未来,我还需要不断摸索"功能描述",让 CodeArts Snap 生成的代码更加准确💐。
作者:非职业「传道授业解惑」的开发者叶一一
简介:「趣学前端」、「CSS畅想」系列作者,华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
我正在参加【有奖征文 第23期】华为云CodeArts Snap是否能助你成为“10倍”开发者?
https://bbs.huaweicloud.com/blogs/399704
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)