admin管理员组文章数量:1599900
今天注册了openAI账号,并且体验了以下chatGPT。体验过程中,我明显感觉到chatGPT不是所谓的“人工智障”,比起原来简单的问答机器人有了巨大的进步。
我主要体验的是chatGPT自动编写代码的功能。
下面两段是由chatGPT生成的代码:
提问:用python写冒泡排序算法和C++编写快速排序算法
//冒泡排序
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
arr = [6, 2, 4, 3, 5, 1]
res = bubble_sort(arr)
print(res) # [1, 2, 3, 4, 5, 6]
//快速排序
#include<iostream>
using namespace std;
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
/* partition */
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
int main() {
int arr[] = { 5, 3, 8, 6, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
下面是我输入指令,chatGPT回答的视频链接:
chatCPT问答
上面两个问答有确切的关键词,还不能充分展现chatGPT的智能水平。
下面是一道蓝桥杯考试真题,我直接以文本的形式输入到了对话框,并要求chatGPT给出回答。下面是具体的输入:
小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。例如,对于字符串 lan 排序,只需要 1次交换。对于字符串 qiao 排序,总共需要 4次交换。小蓝的幸运数字是 V,他想找到一个只包含小写英文字母的字符串,对这个串中的字符进行冒泡排序,正好需要 V次交换。请帮助小蓝找一个这样的字符串。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。请注意字符串中可以包含相同的字符。输入数字为数字V,输出为字符串。请用python写出解决该问题的代码并添加注释
chatGPT对应的输出:
# 定义一个函数,传入参数为数字V
def findString(V):
# 创建一个空列表,用于存放所有可能的字符串
all_string = []
# 创建一个列表,存放所有可能的小写英文字母
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
# 使用itertools库的permutations函数,生成所有可能的组合
# 返回的结果是元组的列表
permutations = list(itertools.permutations(letters, V))
# 遍历元组的列表
for p in permutations:
# 将元组转换为字符串
s = ''.join(p)
# 计算字符串排序所需要的交换次数
count = 0
for i in range(len(s)-1):
if s[i] > s[i+1]:
count += 1
# 如果交换次数正好为V,则添加进结果列表
if count == V:
all_string.append(s)
# 如果结果列表不为空,则返回最短的字符串
if all_string:
return min(all_string)
# 否则返回空字符串
else:
return ''
# 调用函数,传入数字V
V = 5
print(findString(V)) # abcef
从这个问答可以看出:
比起前些年的问答机器人,chatGPT在自然语言处理方面进步显著,它可以清晰的从文本中提取语义、正确理解并且做出对应的应答,而且chatGPT做出的回答是完全与问题相对应的,不会毫无逻辑。chatGPT对该问题进行理解并且尝试提出算法解决该问题。
chatGPT不仅可以自动生成代码解决问题,同时可以生成注释,大大增强了代码的可解释性。
chatGPT生成的代码也有一些不足,比如, chatGPT主要采取的方法是穷举法,即通过遍历的方法来解决问题,将所有的可能性列举出来,最后找到符合题意的方法。注释的生成具有模式化、套路化的特点,也就是说,虽然chatGPT已经可以自动根据要求生成代码,具有一定的创造性,但是这种创造性目前仍然限制在一定模式内,是遵循了一定的套路的。
虽然还有一定的不足,但显而易见的是,在自动化生成代码方面,chatGPT已经取得了巨大的成就,无论是正确快速理解题目要求还是高效快速生成无bug代码。
体验chatGPT发现的事情:😂
好家伙,直接好家伙,川宝赢麻了,看到官方的解释是:
版权声明:本文标题:体验chatGPT编写代码 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728331659a1154583.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论