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. 数学题目
题目
![](https://img-blog.csdnimg.cn/20ae942112b24fb3bf41082df4e71596.png)
计算【\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++; // 猜测次数加1
if (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 attempts
import java.util.Scanner; // Import the Scanner class for user input
import java.util.Random; // Import the Random class for generating random numbers
public class GuessingGame {
public static void main(String[] args) {
// Create a Scanner object for user input
Scanner scanner = new Scanner(System.in);
// Create a Random object for generating random numbers
Random random = new Random();
// Generate a random number between 1 and 100
int number = random.nextInt(100) + 1;
// Initialize the number of attempts to 10
int attempts = 10;
// Initialize a boolean variable to indicate whether the user has guessed the number or not
boolean guessed = false;
// Print a welcome message and instructions
System.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 attempts
while (!guessed && attempts > 0) {
// Prompt the user to enter a guess
System.out.print("Enter your guess: ");
// Try to read an integer from the user input
try {
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 loop
System.out.println("Invalid input. Please enter a number between 1 and 100.");
continue;
}
// Compare the guess with the number
if (guess == number) {
// The user has guessed the number correctly
// Set the guessed variable to true to end the loop
guessed = true;
// Print a congratulatory message and the number of attempts used
System.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 one
attempts--;
// Print a hint message and the remaining attempts
System.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 one
attempts--;
// Print a hint message and the remaining attempts
System.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 loop
System.out.println("Invalid input. Please enter a number between 1 and 100.");
// Clear the scanner buffer by reading the next line
scanner.nextLine();
}
}
// Check if the user has not guessed the number after running out of attempts
if (!guessed) {
// Print a farewell message and reveal the number
System.out.println("Sorry, you have used up all your attempts. The number was " + number + ".");
}
// Close the scanner object
scanner.close();
}
}
吐槽一下,他竟然没有一键复制代码的按钮!
总结
编写代码都是可以的,也都可以运行,但是需要你对代码的逻辑 / 注释 / 功能进行调整才能继续使用。一个非常明显的特点就是,你说多少,他就写多少,你不写考虑异常输入,他就不会考虑。如何更加准确的写出你想要的代码,就要看你的描述是否清晰了。
5. 代码解读
题目
参照我之前的博客,写的一个功能,看看它们对这个功能是怎么解读的,如果是人来解读的话,需要时间,但是一定能准确的解读,我现在很期待它们的表现了。
参考文章地址:指定周起始日计算指定日期是今年的第几周
请解读以下 VB 代码:
Private Sub Form_Load()
Dim res As Integer
res = DateToWorkWeek("2023/07/06", 4)
End Sub
Public Function DateToWorkWeek(dateVal As String, startDay As Integer) As Integer
Dim sFirstDay As Integer
Dim iDayOfYear As Integer
Dim iDayOfFirstWeek As Integer
sFirstDay = Weekday(CDate(Year(dateVal) & "/01/01"), 2)
iDayOfYear = CInt(DateDiff("d", CDate(Year(dateVal) & "/01/01"), dateVal)) + 1
iDayOfFirstWeek = 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 在代码编写及解读方面有着不错的用武之地,但是在绘画等方面显得有些不足,个人还是喜欢国外镜像,综合表现佳,更多有趣功能需要小伙伴们一起探讨。
本文转载自: https://blog.csdn.net/qq_57163366/article/details/130496817
版权归原作者 Roki Zhang 所有, 如有侵权,请联系我们删除。
版权归原作者 Roki Zhang 所有, 如有侵权,请联系我们删除。