赞
踩
目录
Hello 各位小伙伴,要说今年最火爆的 IP 有哪些,那一定少不了人工智能(AI),市面上已经相继出现了我们熟知的 ChatGPT(OpenAI)、ChatGPT 国外镜像网站、文心一言(百度)、New Bing(微软)、通义千问(阿里)等 AI 工具,相信很对的小伙伴都好奇,这几个 AI 到底谁更 AI 呢,很遗憾,博主没有阿里通义千问的资格,所以本文为大家带来的是 ChatGPT、文心一言、New Bing 的较量,我们将从以下几个方面进行客观辩证:【写作】、【数学题目】、【翻译】、【代码编写】、【代码解读】、【绘图能力(如果有)】、【网络热词解释】,我将以同样的话术对不同的 AI 进行发问。
在开始之前,我需要解释这个事情:
ChatGPT 你可以理解为 GPT3.5 版本,为免费版,只要注册就可以使用。
GPT4 为 4 版本,付费,20美刀一个月,据我所知有次数限制,3 小时之内最多只能问 25 个问题。本博客,使用 New Bing 的最具创造力的方式进行对话,以及 ChatGPT。
在后续的图片中,我会删除左侧的图标,至于为啥,相信很多小伙伴都见过这个图片:
那么准备好了吗,开始发车:
请写一篇关于中国大学生就业的文章,800字,逻辑清晰明确。
在给出结果后,我会问上面多少字?
不难看出,需要不断的让他继续才能达到你的要求,当然你也可以选择继续调教,也可以达到一次完成的效果。主打的就是逐渐调教。
我最喜欢用的一个镜像网站,中规中矩,优点在于,响应速度真的快。
没有记忆功能。
综上,不难看出除了 ChatGPT 之外,其余的几种工具都能实现基本的字数要求,未对作品内容进行深入探讨,有兴趣的小伙伴可以自行评价,欢迎在评论区讨论。
计算【\int_{0}^{\pi^{2}}\sqrt{x}\cos\sqrt{x}dx】结果,用π表示。
恭喜恭喜,答案错误,过程看着太唬人了,一顿操作猛如虎。
不出意外,一样的过程唬人,结果错误。
果然如我所料,驴头不对马嘴。
给我整不自信了,小伙伴们觉得答案对吗?欢迎讨论
后续有意思的是,他一直坚信自己算的是对的:
数学计算,几乎是所有 AI 的弱项,我并没有选择简单的方程求解问题,因为市面的题目,暴力解法都可以算出来,还不如来积分实在。
附上答案:
请翻译以下中文文献为英文:
我志愿加入中国共产党,拥护党的纲领,遵守党的章程,履行党员义务,执行党的决定,严守党的纪律,保守党的秘密,对党忠诚,积极工作,为共产主义奋斗终身,随时准备为党和人民牺牲一切,永不叛党。
博主的英文能力实在有限,只能说都挺牛逼!当然你要是想要它们翻译古诗词,怕是有点难度,有兴趣的小伙伴可以自行尝试。
使用 Java 编写一个猜数游戏,给出代码注释,并尽可能的考虑边界条件及异常输入。
代码如下:
- 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对象
- }
- }
代码如下:
- 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(); // 关闭输入流
- }
- }
代码如下:
- // 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();
- }
- }
吐槽一下,他竟然没有一键复制代码的按钮!
编写代码都是可以的,也都可以运行,但是需要你对代码的逻辑 / 注释 / 功能进行调整才能继续使用。一个非常明显的特点就是,你说多少,他就写多少,你不写考虑异常输入,他就不会考虑。如何更加准确的写出你想要的代码,就要看你的描述是否清晰了。
参照我之前的博客,写的一个功能,看看它们对这个功能是怎么解读的,如果是人来解读的话,需要时间,但是一定能准确的解读,我现在很期待它们的表现了。
参考文章地址:指定周起始日计算指定日期是今年的第几周
请解读以下 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
很神奇的是,它在解读完代码之后,会对其重新排版,就出现了最下方的评价。
该说不说,至此为止,都解读对了。
可以看出,文心一言的解读甚是简短。但是主要功能是没错的。
这个比较难受了:
一样的毛病,需要输入继续他才工作,否则直接不动了。
都能解释出具体的功能,但是解释的详略各有千秋,各位小伙伴可以选择自己喜欢的使用。
绘图,这个就只有两位参赛者了:文心一言和 New Bing
画一个水滴石穿的图片,画风古朴为主。
?????Are you kidding me?
这个看着就正常多了。
虽然可看,但是,这是水滴石穿吗?
一个国内的镜像:
勉强能看。
绘画部分,只能说一言难尽,全军覆没。娱乐可以,当然可以选择更加专业的 AI 绘图工具,效果肯定好上很多,我也在尝试搭建。
很多 AI 的数据库截止的时间是 21 年,我们就以 21 年之前的梗来对他们进行考验。
网络热梗【鸡你太美】是怎么来的?
百科:鸡你太美
花花有唱过吗?
我家坤坤不配拥有名字吗
迷糊了,电视剧有这个台词?
呜呜呜,我们一定要远离恶俗烂梗,共同营造一个清朗、健康、有序的网络空间。
看来还是联网的 AI更 AI,数据库的内容不更新就会出现信息不对等的情况。
总的来说,AI 在代码编写及解读方面有着不错的用武之地,但是在绘画等方面显得有些不足,个人还是喜欢国外镜像,综合表现佳,更多有趣功能需要小伙伴们一起探讨。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。