KIMI爆了!对比文心一言和通义千问它到底有多强?

原文:赵侠客

前言

最近国产大模型KIMI爆了大部分人应该都知道了,从我个人的感受来看这次KIMI爆了我不是从技术领域接触到的,而是从各种金融领域接触到的。目前国内大模型可以说是百模大战,前几年新能源大战,今年资本割完韭菜后留给我们的是一家家倒闭或者即将要倒闭的车企,今年有一句话听了让人非常的无奈:"如果前几年你买了房子,又买了车子,你不仅要担心你的房子什么时候会爆雷还要担心你的车子什么时候会爆雷"。过几年大模型爆雷注定是不可避免不的,想想当年火爆的OFO到现在200多块钱的押金还没退给我。每次风口过后资本割完韭菜留给我们的都是一地鸡毛,所以我们一定要有自己的判断力,真正国货之光我们要去支持,那些套壳只为玩资本游戏的产品我们千万不要跟风,不要理会它就好了。关于KIMI在资本市场已经火了,甚至还产生了KIMI概念股。那么KIMI到底怎么样?听别人说1000遍不如自己实际用一下,而且国产是开箱即用,比国外的使用门槛低多了。这次我们也不和外国的对比,也不和收费的对比,我们就和免费的文心一言和通义千问对比。

在此申明:本文6道题目为本人原创,在本文发表前网上是没有的,测试结果只能代表这三家大模型在这六道题目上的好坏,不能全面代表这三家大模型整体的优劣程度。

问题一:我今天陪女朋友去杭州西湖游玩应该穿什么衣服

KIMI

添加图片注释,不超过 140 字(可选)

文心一言

添加图片注释,不超过 140 字(可选)

通义千问

添加图片注释,不超过 140 字(可选)

对比

添加图片注释,不超过 140 字(可选)

今天西湖边实际天气实拍

首先我们看一下杭州西湖今天的天气,温度是18-28度,多云,15点10%概率有雨,空气有点污染,接下来我们对比三家AI给出的答案:

  • 通义千问:最拉垮,主要是没能获取今天杭州西湖的天气,给出的答案只是根据历史经验,所以没有什么参考价值;

  • 文心一言:给出了杭州西湖的天气,包括气温、风力、空气质量为轻度污染都完全符合实际情况,而且建议结果分为1、2、3比较有条理,还对衣服的颜色给出来具体的配色,可以说非常好;

  • KIMI:先从网上找到了三份关于杭州天气的网页,然后根据网页内容给出建议,只不过它所查询的天气并不是今天3月24号的,所以给出的答案也就有问题了,最大错误就是空气质量,它给出的是空气质量很好,实际情况是有点污染的,其次结果也没有百度文心一言有条理,对衣服的颜色也没有给出具体的配色,可以看出在这个问题上KIMI是比文心一言差不少了。

小结

文心一言>KIMI>通义千问

问题二:我和老婆户口在杭州,有三个娃,请问今天我在杭州西湖区可以买几套二手房?

KIMI

添加图片注释,不超过 140 字(可选)

文心一言

添加图片注释,不超过 140 字(可选)

通义千问

添加图片注释,不超过 140 字(可选)

对比

杭州在3月14日取消了二手房限购。

  • 通义千问:最拉垮的还是通义千问题,给出政策还是2022年5月17日的,也没给出具体可以购买几套房;

  • KIMI:唯一给出正确答案。KIMI这得益于他是实时从网上搜索的,而且正确搜索到了杭州取消二手房限购的网页,所以给出了正确的答案。

  • 文心一言:应该没有更新杭州3月14取消二手房限购的内容,所以给出是的3月14日之前的答案,回答是错误的。

小结

KIMI>文心一言>通义千问

问题三、河北邯郸3名不满十四周岁初中生杀害同班同学并掩埋,请问这三名初中生在法律上会受到什么惩罚?

KIMI

添加图片注释,不超过 140 字(可选)

文心一言

添加图片注释,不超过 140 字(可选)

通义千问

添加图片注释,不超过 140 字(可选)

对比

法律问题应该是送分题。

  • 通义千问:还是最拉垮,没有给出答案;

  • 文心一言:和KIMI回答结果是一样的,但是在细节还是文心一言更强一点,给了具体的法律依据是《刑法》第十七条;

  • KIMI:回答的和文心一言基本差不多。

小结

文心一言>KIMI>通义千问

问题四、使用JAVA代码合成部门树

[{"id": 1,"pid": 0,"name": "产品研发中心"
},{"id": 2,"pid": 1,"name": "后端"
},{"id": 3,"pid": 1,"name": "前端"
},{"id": 4,"pid": 2,"name": "JAVA"
},{"id": 5,"pid": 3,"name": "JS"
}{"id": 6,"name": "测试数据"
}]
帮我通过id=pid合成部门树,请给出JAVA代码

注意这里最后一条是故意造的错误数据。

KIMI

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;class Department {int id;String name;List<Department> children = new ArrayList<>();public Department(int id, String name) {this.id = id;this.name = name;}public void addChild(Department child) {children.add(child);}public static Department fromJson(Map<String, Object> jsonMap) {return new Department((Integer) jsonMap.get("id"), (String) jsonMap.get("name"));}
}
public class DepartmentTreeBuilder {public static Department buildTree(List<Map<String, Object>> departments) {Map<Integer, Department> departmentMap = new HashMap<>();List<Department> roots = new ArrayList<>();for (Map<String, Object> deptJson : departments) {int id = (Integer) deptJson.get("id");String name = (String) deptJson.get("name");Department dept = Department.fromJson(deptJson);departmentMap.put(id, dept);if (deptJson.get("pid").equals(0)) {roots.add(dept);}}for (Map<String, Object> deptJson : departments) {int id = (Integer) deptJson.get("id");int pid = (Integer) deptJson.get("pid");if (pid != 0 && departmentMap.containsKey(pid)) {Department dept = departmentMap.get(id);Department parent = departmentMap.get(pid);if (parent != null) {parent.addChild(dept);}}}return roots.isEmpty() ? null : roots.get(0); // Assuming there is only one root}public static void main(String[] args) {List<Map<String, Object>> departments = new ArrayList<>();departments.add(Map.of("id", 1, "pid", 0, "name", "产品研发中心"));departments.add(Map.of("id", 2, "pid", 1, "name", "后端"));departments.add(Map.of("id", 3, "pid", 1, "name", "前端"));departments.add(Map.of("id", 4, "pid", 2, "name", "JAVA"));departments.add(Map.of("id", 5, "pid", 3, "name", "JS"));Department root = buildTree(departments);String json = new Gson().toJson(root);System.out.println(json);}
}

文心一言

public class DepartmentTreeBuilder {  public static void main(String[] args) {  List<Department> departments = new ArrayList<>();  departments.add(new Department(1, 0, "产品研发中心"));  departments.add(new Department(2, 1, "后端"));  departments.add(new Department(3, 1, "前端"));  departments.add(new Department(4, 2, "JAVA"));  departments.add(new Department(5, 3, "JS"));  departments.add(new Department(6, 0, "测试数据")); // 注意这里pid应为0或其他实际父节点id,否则无法正确构建树形结构  List<Department> tree = buildDepartmentTree(departments);  for (Department dept : tree) {  printDepartmentTree(dept, 0);  }  }  public static List<Department> buildDepartmentTree(List<Department> departments) {  Map<Integer, Department> idMap = new HashMap<>();  List<Department> tree = new ArrayList<>();  // 首先,将所有部门按照id放入Map中,方便后续查找  for (Department dept : departments) {  idMap.put(dept.getId(), dept);  }  // 遍历所有部门,构建树形结构  for (Department dept : departments) {  if (dept.getPid() == 0) {  // pid为0的作为树的根节点  tree.add(dept);  } else {  // 查找父节点,并添加到父节点的子节点列表中  Department parent = idMap.get(dept.getPid());  if (parent != null) {  if (parent.getChildren() == null) {  parent.setChildren(new ArrayList<>());  }  parent.getChildren().add(dept);  }  }  }  return tree;  }  public static void printDepartmentTree(Department dept, int level) {  for (int i = 0; i < level; i++) {  System.out.print("--");  }  System.out.println(dept.getName());  if (dept.getChildren() != null) {  for (Department child : dept.getChildren()) {  printDepartmentTree(child, level + 1);  }  }  }  static class Department {  private int id;  private int pid;  private String name;  private List<Department> children;  public Department(int id, int pid, String name) {  this.id = id;  this.pid = pid;  this.name = name;  }  public int getId() {  return id;  }  public int getPid() {  return pid;  }  public String getName() {  return name;  }  public List<Department> getChildren() {  return children;  }  public void setChildren(List<Department> children) {  this.children = children;  }  }  
}

通义千问

class Department {int id;int pid;String name;List<Department> children = new ArrayList<>();Department(int id, int pid, String name) {this.id = id;this.pid = pid;this.name = name;}@Overridepublic String toString() {return "Department{" +"id=" + id +", pid=" + pid +", name='" + name + ''' +", children=" + children +'}';}static Department buildDepartmentTree(List<Department> depts) {Map<Integer, Department> map = new HashMap<>();for (Department dept : depts) {map.put(dept.id, dept);}for (Department dept : depts) {if (map.containsKey(dept.pid)) {map.get(dept.pid).children.add(dept);}}// 返回根节点(pid为0的部门)return map.values().stream().filter(d -> d.pid == 0).findFirst().orElse(null);}public static void main(String[] args) {List<Department> depts = new ArrayList<>();depts.add(new Department(1, 0, "产品研发中心"));depts.add(new Department(2, 1, "后端"));depts.add(new Department(3, 1, "前端"));depts.add(new Department(4, 2, "JAVA"));depts.add(new Department(5, 3, "JS"));depts.add(new Department(6, -1, "测试数据")); // 设置无效的pid为-1,表示该节点无父节点Department root = buildDepartmentTree(depts);System.out.println(root);}
}

对比

  • 通义千问:代码能正确执行,从写法上面来看通义千问代码量最少,还用了lambda表达示,看起来更高级,在代码生成领域终于胜出了;

  • KIMI:这一题只有KIMI给出答案是错的,Department少了pid;

  • 文心一言:代码能正确执行,没有通义千问生成的好。

小结

通义千问>文心一言>KIMI

问题五、使用JAVA处理数据

帮我把这两条部门数据去除根组织和部门ID,将部门名用-分隔输出,请给出基于JDK8的JAVA代码 
EveryOne#根组织/50#侠客集团/96332#工作机动/103965#cy专属组织/103967#策划部门十一个非常厉害的部门你知道吗 
EveryOne#根组织/50#侠客集团/96332#工作机动/103965#cy专属组织/104014#技术部门懂技术会生活的好部门呢你想来吗

KIMI

添加图片注释,不超过 140 字(可选)

运行结果:

侠客集团-96332#工作机动-103965#cy专属组织-103967#策划部门十一个非常厉害的部门你知道吗
侠客集团-96332#工作机动-103965#cy专属组织-104014#技术部门懂技术会生活的好部门呢你想来吗

文心一言

添加图片注释,不超过 140 字(可选)

运行结果:

根组织-侠客集团-工作机动-cy专属组织-策划部门十一个非常厉害的部门你知道吗
根组织-侠客集团-工作机动-cy专属组织-技术部门懂技术会生活的好部门呢你想来吗

通义千问

添加图片注释,不超过 140 字(可选)

运行结果:

cy专属组织-策划部门十一个非常厉害的部门你知道吗
cy专属组织-技术部门懂技术会生活的好部门呢你想来吗

对比

  • 通义千问:多去除了“侠客集团”和工作动机部门;

  • 文心一言:只是没有去除根组织,其它都是正确了,表现最好;

  • KIMI:输出错误,没有去除部门ID,表现最差。

小结

文心一言>通义千问>KIMI

问题六、多线程图片下载

输入:
http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg
http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg
要求:请基本JDK8编写代码将输入的URL使用下载到 C://img下,文件名从URL中获取,要考虑URL中获取文件名重复问题,要求使用多线程下载

KIMI

import java.io.*;
import java.net.URL;
import java.nio.file.*;
import java.util.*;
import java.util.concurrent.*;public class ImageDownloader {private static final String DOWNLOAD_DIR = "C://img"; // 下载目录public static void main(String[] args) {List<String> imageUrls = Arrays.asList("http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg","http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg");ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());try {List<Future<Path>> futures = new ArrayList<>();for (String imageUrl : imageUrls) {Path path = Paths.get(DOWNLOAD_DIR, getFileNameFromUrl(imageUrl));futures.add(executorService.submit(() -> downloadImage(imageUrl, path)));}for (Future<Path> future : futures) {future.get(); // 等待所有下载任务完成}} catch (InterruptedException | ExecutionException e) {e.printStackTrace();} finally {executorService.shutdown();}}private static String getFileNameFromUrl(String url) {String fileName = url.substring(url.lastIndexOf('/') + 1);return fileName;}private static Path downloadImage(String imageUrl, Path path) throws IOException, InterruptedException {URL url = new URL(imageUrl);try (InputStream in = url.openStream();OutputStream out = new FileOutputStream(path.toFile())) {byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = in.read(buffer)) != -1) {out.write(buffer, 0, bytesRead);}Files.createDirectories(path.getParent()); // 确保父目录存在Files.move(path, path.resolveSibling(getUniqueFileName(path.getFileName().toString()))); // 重命名文件以避免重复}return path;}private static String getUniqueFileName(String fileName) {Path path = Paths.get(DOWNLOAD_DIR, fileName);int counter = 1;while (Files.exists(path)) {path = Paths.get(DOWNLOAD_DIR, fileName.replace(".jpg", "(" + counter + ").jpg"));counter++;}return path.getFileName().toString();}
}

文心一言

import java.io.BufferedInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.net.HttpURLConnection;  
import java.net.URL;  
import java.nio.file.Files;  
import java.nio.file.Path;  
import java.nio.file.Paths;  
import java.security.MessageDigest;  
import java.security.NoSuchAlgorithmException;  
import java.util.ArrayList;  
import java.util.List;  
import java.util.concurrent.ExecutorService;  
import java.util.concurrent.Executors;  public class ImageDownloader {  private static final String TARGET_DIRECTORY = "C://img";  private static final int THREAD_POOL_SIZE = 5; // 可以根据需要调整线程池大小  public static void main(String[] args) {  // 输入的URL列表  List<String> urls = new ArrayList<>();  urls.add("http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg");  urls.add("http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg");  ExecutorService executor = Executors.newFixedThreadPool(THREAD_POOL_SIZE);  for (String url : urls) {  executor.submit(() -> downloadImage(url));  }  executor.shutdown();  try {  while (!executor.isTerminated()) {  // 等待所有任务完成  Thread.sleep(100);  }  System.out.println("All images downloaded.");  } catch (InterruptedException e) {  e.printStackTrace();  }  }  private static void downloadImage(String urlString) {  try {  URL url = new URL(urlString);  HttpURLConnection connection = (HttpURLConnection) url.openConnection();  connection.setRequestMethod("GET");  try (InputStream in = new BufferedInputStream(connection.getInputStream());  FileOutputStream fos = getUniqueFileOutputStream(urlString)) {  byte[] buffer = new byte[1024];  int bytesRead;  while ((bytesRead = in.read(buffer)) != -1) {  fos.write(buffer, 0, bytesRead);  }  } finally {  connection.disconnect();  }  } catch (IOException e) {  e.printStackTrace();  }  }  private static FileOutputStream getUniqueFileOutputStream(String urlString) throws IOException {  String fileName = getFileNameFromUrl(urlString);  String filePath = Paths.get(TARGET_DIRECTORY, fileName).toString();  // 确保文件名的唯一性  Path path = Paths.get(filePath);  if (Files.exists(path)) {  fileName = getUniqueFileName(fileName);  filePath = Paths.get(TARGET_DIRECTORY, fileName).toString();  }  Path targetPath = Paths.get(filePath);  Files.createDirectories(targetPath.getParent());  return new FileOutputStream(targetPath.toFile());  }  private static String getFileNameFromUrl(String url) {  String[] parts = url.split("/");  return parts[parts.length - 1];  }  private static String getUniqueFileName(String fileName) throws NoSuchAlgorithmException {  MessageDigest md = MessageDigest.getInstance("MD5");  byte[] hashBytes = md.digest(fileName.getBytes());  StringBuilder hexString = new StringBuilder();  for (byte b : hashBytes) {  String hex = Integer.toHexString(0xff & b);  if (hex.length() == 1) hexString.append('0');  hexString.append(hex);  }  return fileName + "_" + hexString.toString();  }  
}

通义千问

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ImageDownloader {private static final String DOWNLOAD_DIR = "C://img";public static void main(String[] args) throws IOException {String[] imageUrls = {"http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg",   "http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg"};ExecutorService executor = Executors.newFixedThreadPool(2); // 创建固定大小的线程池for (String imageUrl : imageUrls) {Runnable worker = () -> downloadImage(imageUrl);executor.execute(worker);}executor.shutdown(); // 关闭线程池,等待所有任务完成while (!executor.isTerminated()) {// 等待所有线程执行完毕}System.out.println("所有图片下载完成!");}private static void downloadImage(String imageUrl) {try {URL url = new URL(imageUrl);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setConnectTimeout(5000);connection.connect();if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {String fileName = extractFileNameFromUrl(url);Path targetPath = Paths.get(DOWNLOAD_DIR, ensureUniqueFileName(fileName));Files.createDirectories(targetPath.getParent()); // 如果目录不存在则创建try (ReadableByteChannel rbc = Channels.newChannel(connection.getInputStream());FileOutputStream fos = new FileOutputStream(targetPath.toFile())) {fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);}System.out.println("成功下载图片: " + targetPath.toString());} else {System.out.println("无法下载图片,响应码: " + connection.getResponseCode());}} catch (IOException e) {System.err.println("图片下载失败: " + imageUrl);e.printStackTrace();}}// 从URL中提取文件名private static String extractFileNameFromUrl(URL url) {String path = url.getPath();return path.substring(path.lastIndexOf('/') + 1);}// 确保文件名唯一,比如通过添加时间戳后缀private static String ensureUniqueFileName(String fileName) {Path path = Paths.get(DOWNLOAD_DIR, fileName);if (!Files.exists(path)) {return fileName;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss_SSS");LocalDateTime now = LocalDateTime.now();String timestamp = now.format(formatter);String extension = fileName.substring(fileName.lastIndexOf('.'));return fileName.replace(extension, "_" + timestamp + extension);}
}

对比

  • 结果来看KIMI代码有错误,无法运行,文心一言少了一个异常抛出,修改可以运行下载,通义千问能正常运行下载,处理的逻辑也非常好;

  • 目录不存在处理:KIMI没有考虑下载目录C://img不存在报错问题,文心一言和通义千问都考虑了;

  • 文件名重复问题:KIMI使用后缀加(N),文心一言是使用文件名MD5,通义千问使用时间戳。KIMI思路最正确可是写法错了,文心一言使用文件名MD5思路就错了,通义千问使用时间虽然不完美,但是是可以解决大部分URL文件名相同问题。

小结

通义千问>文心一言>KIMI

总结

从这六道题目来看KIMI并没有多么的让人惊艳,大体上我们可以得出以下结论:

  • 依赖数据源;可能是KIMI自己没有能力收集大量数据和花大价钱买显卡去训练,所以回答结果非常依赖它得到的数据;

  • 通用问题依赖搜索引擎;想做通用大模型肯定要有大量数据,KIMI使用实时搜索去获取数据源,再给出结果。目前不知道它使用的是哪家搜索引擎,如果非常依赖搜索引擎那在通用大模型领域可能是硬伤,因为国内搜索引擎老大是谁大家都知道;

  • 在代码生成领域不是很成熟;这一点应该不用太担心,国为程序员是第一波接触大模型的人,谁手上还没有几个墙外的产品,根本看不上国内的这些产品;

  • “百模大战”中的一员;给我的感觉它只是“百模大战”中的一员,并没有鹤立鸡群,能从“百模大战“中脱颖而出的惊艳。

最后关于它为什么会火起来这个就不得而知了,不过大家可以思考一下去年火起来的淄博烧烤、过年期间火起来的哈尔滨、最近正在火的天水麻辣烫,表明上看谁能火起来是门玄学,不过如果真的去深挖这些现象级火起来网红城市,你会发现玄学后面都是人(资本)在操控。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/768066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简述TCP的三次握手与四次挥手

A表示客户client&#xff0c;即主动发起连接的应用程序&#xff1b;B表示服务器&#xff0c;即被动等待连接建立的应用进程。 TCP建立连接&#xff0c;三报文握手&#xff0c;也可以是四报文握手。 总流程可以简化为&#xff1a;A向B发送连接请求&#xff0c;B向A确认&#xf…

JAVA学习-NIO.Files工具类

Java NIO&#xff08;New IO&#xff09;提供了一组用于处理文件和文件系统的工具类&#xff0c;其中包含了Files工具类。Files工具类提供了对文件和目录进行操作的静态方法&#xff0c;如创建、复制、删除、移动、重命名等等。以下是Files工具类的特点、常用方法以及与其他类的…

面试宝典:MySQL索引进阶深度分析

在数据库高级开发的面试中&#xff0c;索引是一个绕不开的重点话题。MySQL中的索引机制对于查询性能有着决定性的影响。本文将深入探讨MySQL索引的高级特性和优化策略&#xff0c;帮助开发者在面试中展现出对数据库索引机制的深刻理解和高级应用能力。 索引的基本概念 MySQL中…

Linux:Prometheus的源码包安装及操作(2)

环境介绍 三台centos 7系统&#xff0c;运行内存都2G 1.prometheus监控服务器&#xff1a;192.168.6.1 主机名&#xff1a;pm 2.grafana展示服务器:192.168.6.2 主机名&#xff1a;gr 3.被监控服务器&#xff1a;192.168.6.3 …

C++之循环中使用auto关键字

在C中&#xff0c;auto是一个类型说明符&#xff0c;用于自动推导变量的类型。编译器会根据初始化表达式的类型来自动推断变量的类型。使用auto可以使代码更加简洁&#xff0c;并减少手动键入类型信息的需要&#xff0c;尤其是在处理复杂类型或模板时。 在C中&#xff0c;使用…

codeTop102:二叉树的层序遍历

前言 在已知BFS的方式后&#xff0c;知道每次从队列中取一个节点&#xff0c;就要将这个节点的所有子节点按照顺序放入队列。 难点在于怎么确定将同一层的节点放在一个数组里面的输出&#xff0c;也就是输出一个二维数组&#xff1f; 解决方法: 每次while循环将队列上轮放入的…

android四大组件之一ContentProvider

ContentProvider ContentProvider 是 Android 中用于实现数据共享的一种组件&#xff0c;它可以让不同的应用程序之间共享数据。数据通常以表格的形式组织&#xff0c;类似于数据库的表。其他应用程序可以通过 ContentResolver 来查询或修改这些数据。 ContentProvider、Conten…

什么是C++中的指针和引用?它们有什么区别?/ 数组名和指针(这里为指向数组首元素的指针)区别?

一、什么是C中的指针和引用&#xff1f;它们有什么区别&#xff1f; 在C中&#xff0c;指针和引用都是重要的概念&#xff0c;它们用于处理内存地址和变量之间的关系&#xff0c;但两者之间存在明显的区别。 指针是一个特殊的变量&#xff0c;其值为另一个变量的地址。换句话…

【课程】Mysql优化

Mysql优化教程01-关键技术.wmvMysql优化教程02-表的设计.wmvMysql优化教程03-慢查询(一).wmvMysql优化教程04-慢查询(二).wmvMysql优化教程05-慢查询(三).wmv Mysql优化教程06-索引(一).wmv Mysql优化教程07-索(二).wmv Mysql优化教程08-索引(三).wmv Mysql优化教程09-索(四).w…

Vue2(十):全局事件总线、消息订阅与发布、TodoList的编辑功能、$nextTick、动画

一、全局事件总线&#xff01;&#xff01; 任意组件间通信 比如a想收到别的组件的数据&#xff0c;那么就在a里面给x绑定一个demo自定义事件&#xff0c;所以a里面就得有一个回调函数吧&#xff0c;然后我要是想让d组件给a穿数据&#xff0c;那就让d去触发x的自定义事件&…

洛谷_P2678 [NOIP2015 提高组] 跳石头_python写法

P2678 [NOIP2015 提高组] 跳石头 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) d, n, m map(int,input().split())data [0] for i in range(n):value int(input())data.append(value) data.append(d)def check(mid):now 0cnt 0for i in range(1,n2):if abs(data[now]-da…

【课程】Nginx核心知识100讲

02.Nginx 适用于哪些场景 ?.mp4 03.Nginx 出现的历史背景.mp4 04.为什么用 Nginx : 它的 5 个主要优点mp4 05.Nginx 的四个主要组成部分.mp4 06.Nginx 的版本发布历史.mp4 07.选择哪一个 Nginx 发行版本 ?.mp4 08.编译出适合自己的 Nginx.mp4 09.Nginx 配置文件的通用语法介绍…

机器学习(27)

文章目录 文献阅读1. 题目2. abstract3. 网络架构3.1 Theoretical Results 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 数据集4.3.2 参数设置 4.4 结论 三、实现GAN1. 任务要求2. 实验结果3.实验代码3.1数据准备3.2 模型构建3.3 展示函数3.4 训练过程 小结本周内…

从0写一个问卷调查APP的第13天-1

1.今日任务 我也只是一个大学生&#xff0c;有什么思路不对的地方给我指出来哟! 分析&#xff1a;上次我们实现了任务调查的插入。但是我们插入的问卷调查只有它的标题&#xff0c;也就是这个问卷调查是什么我们告诉数据库了&#xff0c;但是现在我们还没有给它添加任何问题&…

蓝桥杯真题:幸运数字

这道题可以用 integer.string&#xff08;&#xff09;求每个进制的数&#xff0c;但这里要每一位数相加&#xff0c;所以用这个方法会比较麻烦&#xff0c;如下 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scan new Sc…

图像去噪与增强技术

图像去噪与增强技术是数字图像处理领域中的两个重要方面&#xff0c;它们分别关注消除图像中的噪声和改善图像的质量。 图像去噪技术的主要目的是从受噪声干扰的图像中去除不必要的随机信号&#xff0c;以恢复图像的真实内容。这对于图像的进一步分析和理解至关重要。去噪技术包…

华为OD机试真题-推荐多样性-2024年OD统一考试(C卷)

题目描述: 推荐多样性需要从多个列表中选择元素,一次性要返回N屏数据(窗口数量),每屏展示K个元素(窗口大小),选择策略: 1. 各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一个元素,再从第二个列表中为每屏选择一个元素,依次类推 2. 每个列表的元素尽量均…

spring注解驱动系列--AOP探究二

上篇中记录了AnnotationAwareAspectJAutoProxyCreator的创建以及注册&#xff0c;主要是 1、EnableAspectJAutoProxy 注解会开启AOP功能 2、然后这个注解会往容器中注册一个AnnotationAwareAspectJAutoProxyCreator组件。 3、之后在容器创建过程中&#xff0c;注册后置处理器&a…

蓝桥杯刷题_day1_回文数_水仙花数_进制转换

文章目录 特殊的回文数回文数水仙花数十六进制转八进制_n次 特殊的回文数 问题描述   123321是一个非常特殊的数&#xff0c;它从左边读和从右边读是一样的。   输入一个正整数n&#xff0c; 编程求所有这样的五位和六位十进制数&#xff0c;满足各位数字之和等于n 。 解题…

关于四篇GNN论文的阅读笔记PPT:包括GATNE,AM-GCN,HGSL和coGSL

关于四篇GNN论文的阅读笔记PPT&#xff1a;包括GATNE&#xff0c;AM-GCN&#xff0c;HGSL和coGSL 前言GATNEAM-GCNHGSLcoGSL 前言 这里的PPT主要是在跟Graph Transformer一起的&#xff1a; 【图-注意力笔记&#xff0c;篇章1】Graph Transformer&#xff1a;包括Graph Trans…