目录
ChatGPT 和 GPT4 什么关系?
1. 写作
题目
ChatGPT
ChatGPT 国外镜像网站
文心一言
New Bing
总结
2. 数学题目
题目
ChatGPT
ChatGPT 国外镜像网站
文心一言
New Bing
总结
3. 翻译
题目
ChatGPT
编辑
ChatGPT 国外镜像网站
文心一言
New Bing
总结
4. 代码编写
题目
ChatGPT
ChatGPT 国外镜像网站
文心一言
New Bing
总结
5. 代码解读
题目
ChatGPT
ChatGPT 国外镜像网站
文心一言
New Bing
总结
6. 绘图能力(如果有)
题目
文心一言
New Bing
新成员
总结
7. 网络热词解释
题目
ChatGPT
编辑
ChatGPT 国外镜像网站
文心一言
New Bing
总结
总结
Hello 各位小伙伴,要说今年最火爆的 IP 有哪些,那一定少不了人工智能(AI),市面上已经相继出现了我们熟知的 ChatGPT(OpenAI)、ChatGPT 国外镜像网站、文心一言(百度)、New Bing(微软)、通义千问(阿里)等 AI 工具,相信很对的小伙伴都好奇,这几个 AI 到底谁更 AI 呢,很遗憾,博主没有阿里通义千问的资格,所以本文为大家带来的是 ChatGPT、文心一言、New Bing 的较量,我们将从以下几个方面进行客观辩证:【写作】、【数学题目】、【翻译】、【代码编写】、【代码解读】、【绘图能力(如果有)】、【网络热词解释】,我将以同样的话术对不同的 AI 进行发问。
在开始之前,我需要解释这个事情:
ChatGPT 和 GPT4 什么关系?
ChatGPT 你可以理解为 GPT3.5 版本,为免费版,只要注册就可以使用。
GPT4 为 4 版本,付费,20美刀一个月,据我所知有次数限制,3 小时之内最多只能问 25 个问题。本博客,使用 New Bing 的最具创造力的方式进行对话,以及 ChatGPT。
在后续的图片中,我会删除左侧的图标,至于为啥,相信很多小伙伴都见过这个图片:
那么准备好了吗,开始发车:
1. 写作
题目
请写一篇关于中国大学生就业的文章,800字,逻辑清晰明确。
在给出结果后,我会问上面多少字?
ChatGPT
不难看出,需要不断的让他继续才能达到你的要求,当然你也可以选择继续调教,也可以达到一次完成的效果。主打的就是逐渐调教。
ChatGPT 国外镜像网站
我最喜欢用的一个镜像网站,中规中矩,优点在于,响应速度真的快。
文心一言
New Bing
没有记忆功能。
总结
综上,不难看出除了 ChatGPT 之外,其余的几种工具都能实现基本的字数要求,未对作品内容进行深入探讨,有兴趣的小伙伴可以自行评价,欢迎在评论区讨论。
2. 数学题目
题目
计算【\int_{0}^{\pi^{2}}\sqrt{x}\cos\sqrt{x}dx】结果,用π表示。
ChatGPT
恭喜恭喜,答案错误,过程看着太唬人了,一顿操作猛如虎。
ChatGPT 国外镜像网站
不出意外,一样的过程唬人,结果错误。
文心一言
果然如我所料,驴头不对马嘴。
New Bing
给我整不自信了,小伙伴们觉得答案对吗?欢迎讨论
后续有意思的是,他一直坚信自己算的是对的:
总结
数学计算,几乎是所有 AI 的弱项,我并没有选择简单的方程求解问题,因为市面的题目,暴力解法都可以算出来,还不如来积分实在。
附上答案:
3. 翻译
题目
请翻译以下中文文献为英文:
我志愿加入中国共产党,拥护党的纲领,遵守党的章程,履行党员义务,执行党的决定,严守党的纪律,保守党的秘密,对党忠诚,积极工作,为共产主义奋斗终身,随时准备为党和人民牺牲一切,永不叛党。
ChatGPT
ChatGPT 国外镜像网站
文心一言
New Bing
总结
博主的英文能力实在有限,只能说都挺牛逼!当然你要是想要它们翻译古诗词,怕是有点难度,有兴趣的小伙伴可以自行尝试。
4. 代码编写
题目
使用 Java 编写一个猜数游戏,给出代码注释,并尽可能的考虑边界条件及异常输入。
ChatGPT
代码如下:
import java.util.Scanner;
import java.util.Random;public class GuessNumberGame {public static void main(String[] args) {Random rand = new Random();int numToGuess = rand.nextInt(100) + 1; // 生成随机数int numTries = 0; // 统计猜测次数Scanner input = new Scanner(System.in); // 创建Scanner对象while (true) { // 循环直到猜对try {System.out.print("请猜一个 1~100 的整数:");int guess = input.nextInt(); // 获取玩家输入的数字if (guess < 1 || guess > 100) { // 判断输入是否合法System.out.println("输入不合法,请重新输入一个 1~100 的整数!");continue; // 跳过后续操作,回到循环开头}numTries++; // 猜测次数加1if (guess < numToGuess) { // 判断玩家猜测的数字与实际数字的大小关系System.out.println("猜小了,再试一次!");} else if (guess > numToGuess) {System.out.println("猜大了,再试一次!");} else {System.out.println("恭喜你猜对了!你一共猜了" + numTries + "次。");break; // 退出循环}} catch (Exception e) { // 处理输入异常System.out.println("输入有误,请重新输入一个整数!");input.nextLine(); // 清空输入缓冲区}}input.close(); // 关闭Scanner对象}
}
ChatGPT 国外镜像网站
代码如下:
import java.util.Random;
import java.util.Scanner;public class GuessingGame {public static void main(String[] args) {int max = 100; // 猜测的最大值int numberToGuess = new Random().nextInt(max) + 1; // 生成一个 1 到 max 的随机数int numberOfTries = 0; // 猜测的次数Scanner input = new Scanner(System.in);// 输出欢迎信息和游戏规则System.out.println("欢迎来到猜数游戏!");System.out.println("我已经想好了一个 1 到 " + max + " 之间的整数,请你猜一下它是多少。");while (true) {// 提示用户输入猜测数System.out.println("请输入你的猜测(输入 Q/q 退出游戏):");// 获取用户输入String guessStr = input.nextLine();// 处理用户输入为 Q/q 的情况,退出游戏if (guessStr.equalsIgnoreCase("q")) {System.out.println("谢谢参与,再见!");break;}int guess;try {// 将用户输入的字符串转换为整数guess = Integer.parseInt(guessStr);} catch (NumberFormatException e) {// 处理用户输入非整数的异常情况System.out.println("输入错误,请输入一个整数或 Q/q 退出游戏。");continue;}// 处理用户输入超出范围的情况if (guess < 1 || guess > max) {System.out.println("输入错误,请输入一个 1 到 " + max + " 之间的整数或 Q/q 退出游戏。");continue;}numberOfTries++; // 记录猜测次数if (guess == numberToGuess) {// 处理猜测正确的情况System.out.println("恭喜你猜对了!你一共猜了 " + numberOfTries + " 次。");break;} else if (guess < numberToGuess) {// 处理猜测数小于答案的情况System.out.println("你猜的数太小了,请再试一次。");} else {// 处理猜测数大于答案的情况System.out.println("你猜的数太大了,请再试一次。");}}input.close(); // 关闭 Scanner 对象}
}
文心一言
代码如下:
import java.util.Scanner; public class GuessNumberGame { public static void main(String[] args) { Scanner input = new Scanner(System.in); int numberToGuess = (int) (Math.random() * 100) + 1; // 生成1到100之间的随机数 int numberOfTries = 0; // 猜测次数计数器 boolean win = false; // 是否猜对了 System.out.println("猜数游戏开始!"); while (!win) { // 无限循环,直到猜对为止 System.out.print("请输入你猜测的数字:"); int guess; try { guess = input.nextInt(); } catch (Exception e) { System.out.println("输入有误,请重新输入:"); continue; } numberOfTries++; // 猜测次数加1 if (guess == numberToGuess) { // 猜对了 win = true; System.out.println("恭喜你猜对了!你一共猜了" + numberOfTries + "次。"); } else if (guess < numberToGuess) { // 猜小了 System.out.println("你猜小了!数字是 " + numberToGuess + ",你还剩下" + numberOfTries + "次机会。"); } else { // 猜大了 System.out.println("你猜大了!数字是 " + numberToGuess + ",你还剩下" + numberOfTries + "次机会。"); } } input.close(); // 关闭输入流 }
}
New Bing
代码如下:
// A guessing game program in Java
// The program generates a random number between 1 and 100
// The user tries to guess the number in 10 attempts
// The program gives feedback on whether the guess is too high, too low, or correct
// The program ends when the user guesses the number or runs out of attemptsimport java.util.Scanner; // Import the Scanner class for user input
import java.util.Random; // Import the Random class for generating random numberspublic class GuessingGame {public static void main(String[] args) {// Create a Scanner object for user inputScanner scanner = new Scanner(System.in);// Create a Random object for generating random numbersRandom random = new Random();// Generate a random number between 1 and 100int number = random.nextInt(100) + 1;// Initialize the number of attempts to 10int attempts = 10;// Initialize a boolean variable to indicate whether the user has guessed the number or notboolean guessed = false;// Print a welcome message and instructionsSystem.out.println("Welcome to the guessing game!");System.out.println("I have chosen a number between 1 and 100.");System.out.println("You have 10 attempts to guess it.");// Loop until the user guesses the number or runs out of attemptswhile (!guessed && attempts > 0) {// Prompt the user to enter a guessSystem.out.print("Enter your guess: ");// Try to read an integer from the user inputtry {int guess = scanner.nextInt();// Check if the guess is valid (between 1 and 100)if (guess < 1 || guess > 100) {// Print an error message and continue the loopSystem.out.println("Invalid input. Please enter a number between 1 and 100.");continue;}// Compare the guess with the numberif (guess == number) {// The user has guessed the number correctly// Set the guessed variable to true to end the loopguessed = true;// Print a congratulatory message and the number of attempts usedSystem.out.println("Congratulations! You guessed the number in " + (11 - attempts) + " attempts.");} else if (guess < number) {// The user has guessed too low// Decrement the number of attempts by oneattempts--;// Print a hint message and the remaining attemptsSystem.out.println("Your guess is too low. You have " + attempts + " attempts left.");} else {// The user has guessed too high// Decrement the number of attempts by oneattempts--;// Print a hint message and the remaining attemptsSystem.out.println("Your guess is too high. You have " + attempts + " attempts left.");}} catch (Exception e) {// The user has entered an invalid input (not an integer)// Print an error message and continue the loopSystem.out.println("Invalid input. Please enter a number between 1 and 100.");// Clear the scanner buffer by reading the next linescanner.nextLine();}}// Check if the user has not guessed the number after running out of attemptsif (!guessed) {// Print a farewell message and reveal the numberSystem.out.println("Sorry, you have used up all your attempts. The number was " + number + ".");}// Close the scanner objectscanner.close();}
}
吐槽一下,他竟然没有一键复制代码的按钮!
总结
编写代码都是可以的,也都可以运行,但是需要你对代码的逻辑 / 注释 / 功能进行调整才能继续使用。一个非常明显的特点就是,你说多少,他就写多少,你不写考虑异常输入,他就不会考虑。如何更加准确的写出你想要的代码,就要看你的描述是否清晰了。
5. 代码解读
题目
参照我之前的博客,写的一个功能,看看它们对这个功能是怎么解读的,如果是人来解读的话,需要时间,但是一定能准确的解读,我现在很期待它们的表现了。
参考文章地址:指定周起始日计算指定日期是今年的第几周
请解读以下 VB 代码:
Private Sub Form_Load()Dim res As Integerres = DateToWorkWeek("2023/07/06", 4)End SubPublic Function DateToWorkWeek(dateVal As String, startDay As Integer) As IntegerDim sFirstDay As IntegerDim iDayOfYear As IntegerDim iDayOfFirstWeek As IntegersFirstDay = Weekday(CDate(Year(dateVal) & "/01/01"), 2)iDayOfYear = CInt(DateDiff("d", CDate(Year(dateVal) & "/01/01"), dateVal)) + 1iDayOfFirstWeek = IIf((sFirstDay - startDay) >= 0, 7 + startDay - sFirstDay, Abs(sFirstDay - startDay))DateToWorkWeek = IIf(iDayOfYear <= iDayOfFirstWeek, 1, -(Int(-((iDayOfYear - iDayOfFirstWeek) / 7))) + 1)End Function
ChatGPT
很神奇的是,它在解读完代码之后,会对其重新排版,就出现了最下方的评价。
ChatGPT 国外镜像网站
该说不说,至此为止,都解读对了。
文心一言
可以看出,文心一言的解读甚是简短。但是主要功能是没错的。
New Bing
这个比较难受了:
一样的毛病,需要输入继续他才工作,否则直接不动了。
总结
都能解释出具体的功能,但是解释的详略各有千秋,各位小伙伴可以选择自己喜欢的使用。
6. 绘图能力(如果有)
题目
绘图,这个就只有两位参赛者了:文心一言和 New Bing
画一个水滴石穿的图片,画风古朴为主。
文心一言
?????Are you kidding me?
New Bing
这个看着就正常多了。
虽然可看,但是,这是水滴石穿吗?
新成员
一个国内的镜像:
勉强能看。
总结
绘画部分,只能说一言难尽,全军覆没。娱乐可以,当然可以选择更加专业的 AI 绘图工具,效果肯定好上很多,我也在尝试搭建。
7. 网络热词解释
题目
很多 AI 的数据库截止的时间是 21 年,我们就以 21 年之前的梗来对他们进行考验。
网络热梗【鸡你太美】是怎么来的?
百科:鸡你太美
ChatGPT
花花有唱过吗?
ChatGPT 国外镜像网站
我家坤坤不配拥有名字吗
文心一言
迷糊了,电视剧有这个台词?
New Bing
呜呜呜,我们一定要远离恶俗烂梗,共同营造一个清朗、健康、有序的网络空间。
总结
看来还是联网的 AI更 AI,数据库的内容不更新就会出现信息不对等的情况。
总结
总的来说,AI 在代码编写及解读方面有着不错的用武之地,但是在绘画等方面显得有些不足,个人还是喜欢国外镜像,综合表现佳,更多有趣功能需要小伙伴们一起探讨。