ChatGPT教你用Python实现BinarySearchTree详解
ZzT 人气:0前言
至今,ChatGPT 已经火了很多轮,我在第一轮的时候注册了账号,遗憾的是,没有彻头彻尾好好地体验过一次。最近这一次火爆,ChatGPT 确实出圈了,各行各业的人们都在晒,趁着周末,我也小试了一把。
这篇文会介绍我使用 ChatGPT 的过程以及使用时的一些感悟,最后浅谈下我对 ChatGPT 的一些理解,不喜勿喷哈~
我的问题是:我是一个 Java 程序员,现在想了解 Python,切入点是如何用 Python 实现 BinarySearchTree,我想在这个过程中更多的了解 Python 的语法,不注重算法实现。
下面给大家看下我问 ChatGPT 的过程。(多图预警!!!)
ChatGPT 截图
我会挑选一些有代表性的内容展示给大家,事实上我问了更多的语法细节
首先,ChatGPT 直接"意识"到我想知道 python 中的泛型要如何写,并给出了相应的解释。
然后,代码上,ChatGPT 不仅给出了 BinarySearchTree 的定义,还附加了 insert 等一些操作方法,注意,这里并没有算法的实现,是 ChatGPT 知道我问题的重点在语法,不是算法实现?(细思极恐)
最后有个小瑕疵是,Comparable 需要 import,代码中没写。
我们继续看
这里对 Optional 的上下文关联没有做好,如果还是根据 Optional[BinaryNode[AnyTyple]] 做解释,会更好。但有一说一,还是清楚的解决了我的问题。
至此,我迅速了解了 python 的 Class 如何定义,泛型如何定义,Comparable 怎么用,以及一些附加的语法(大概耗费了 1.5 小时)
然后,我开始尝试自己实现方法细节,比如 contains 方法,在这个过程中仍会遇到一些小问题
这里可以看到,我的问题没有主动帮忙断句,是一段代码混着我的问题一起问的(因为我不知道怎么换行,一按 enter\command + enter 就直接提问题 - -)
但是,ChatGPT 回答的情况依然令我满意,我们工作中遇到这种问题可能会卡一会,因为这个问题太具体了,现在的搜索引擎无法解决这么具体的问题,如果身边有懂 python 的人可能会瞬间帮你解答,但现在有了 ChatGPT,这种具体的问题也能被瞬间解答了,很优秀。
对 ChatGPT 的一些感悟
首先声明,我对 ChatGPT 的原理只是略知一二,技术细节还没详细调研。相信详细调研后,感悟上会少一些惊艳,毕竟我们对未知的、不了解的领域会保留敬畏之心。
下面我只谈一谈我作为一个 chatGPT 用户,使用上的体验:
1、ChatGPT 成为下一代搜索引擎,毋庸置疑
通过这次体验,一个最直接的感受是,我能直截了当地问我当下遇到问题,省去了将问题抽象成通用的问题的步骤,比如我就想知道 public class BinarySearchTree<AnyType extends Comparable<? super AnyType>> 用 python 要怎么写
用 Google 搜索,你不可能直接在搜索框输入 将下面 java 代码用 python 实现 public class BinarySearchTree<AnyType extends Comparable<? super AnyType>>
如果直接输入,会得到
因为 Google 无法理解你真正的诉求是什么,只会根据问题中的关键字检索出你需要的信息,所以更多的结果是 Java 实现的 BinarySearchTree
假如我就是要用 Google 解决这个问题,我可能需要问的是:
- Python 中如何使用泛型
- Python 中的 Comparable 具体如何使用?
- 根据检索的知识碎片自己加以理解并组合起来
- 尝试写出 Python 代码
- 解决各种 IDE 中提示的编译问题,遗憾的是,每遇到一个问题,我又要重复上面的过程
但对 ChatGPT 来说,他似乎更懂你想要问什么,省去了你在用 Google 搜索的 12345 步,大大提升了解决问题的效率。
2、上下文关联能力强
顺着 ChatGPT 更懂你 的话题说,我们遇到的问题通常不是一次性就能找到答案的,更多是一个问题链,需要一环扣一环的解决。ChatGPT 做到了在一个 Chat 中,让你的所有问题关联起来,好像他帮你抽象出了话题的主题是什么,让你不需要在问每个问题的时候都把背景交代的非常清楚,这也是一种提效。
3、未来的可能性
首先,ChatGPT 的回答并不是 100% 正确的,仍需要人去甄别是否是自己想要的答案。但我相信随着用户越来越多,ChatGPT 会被进一步训练,继续进化,正确率会持续上升。
下一代搜索引擎就不多说了,微软已经开始推出 new bing 了。
另外想说的是,ChatGPT 能赋能语音交互,进一步提效,由于 ChatGPT 还不涉及图片视频领域,并且目前文字转语音以及语音转文字的技术已经成熟,如果将 ChatGPT 做成语音机器人,我觉得成为初代钢铁侠中的贾维斯不是问题。
再有就是,openAI 的部分模型是开放的,垂直业务完全可以利用模型的能力,解决当下的重复劳动问题,例如客服。
整体来说,ChatGPT 的出现让我们获取知识的效率进一步提升,后面对很多行业都会有冲击,反正我是被这东西搞的瑟瑟发抖了。那么,大家觉得什么样的程序员不会被 chatGPT 取代?
加载全部内容