关于GoWeb(1)
Go Web (1)
一、网络通信与 Socket 编程
(一)Socket 编程基础
Socket 是网络通信的核心,它允许程序之间通过网络进行数据交换。在 Go 中,可以使用标准库 net
来实现 Socket 编程。
(二)Socket 服务端与客户端示例
- 服务端代码 :
package mainimport (
"net"
"log"
)func handleConnection(conn net.Conn) {
defer conn.Close()
for {
buf := make([]byte, 1024)
n, err := conn.Read(buf)
if err != nil {
log.Println("Error reading:", err.Error())
return
}
data := buf[:n]
log.Printf("Received: %s", data)
reply := "Server received your message: " + string(data)
conn.Write([]byte(reply))
}
}func main() {
listener, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatal("Error starting server:", err)
}
defer listener.Close()
log.Println("Server listening on :8080")for {
conn, err := listener.Accept()
if err != nil {
log.Println("Error accepting connection:", err.Error())
continue
}
go handleConnection(conn)
}
}
- 客户端代码 :
package mainimport (
"net"
"log"
)func main() {
conn, err := net.Dial("tcp", "localhost:8080")
if err != nil {
log.Fatal("Error connecting:", err)
}
defer conn.Close()
log.Println("Connected to server")message := "Hello from client!"
_, err = conn.Write([]byte(message))
if err != nil {
log.Fatal("Error sending message:", err)
}buffer := make([]byte, 1024)
n, err := conn.Read(buffer)
if err != nil {
log.Fatal("Error reading response:", err)
}
log.Printf("Server response: %s", buffer[:n])
}
(三)点对点通信
点对点通信是两个网络节点之间的直接通信。通过 Socket 编程,可以实现设备之间的点对点消息传递,常用于即时通讯等场景。
二、MySQL 数据库操作
(一)配置数据库
- 安装 MySQL :在本地或服务器上安装 MySQL 数据库,并创建数据库和表。
- Go 中连接 MySQL :使用
database/sql
包和mysql
驱动来连接 MySQL。
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)func main() {
db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname")
if err != nil {
panic(err.Error())
}
defer db.Close()err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("Connected to database successfully!")
}
(二)数据库增删改查操作
- 插入数据 :
func insertData(db *sql.DB) {
sqlStatement := `INSERT INTO users (name, email) VALUES (?, ?)`
_, err := db.Exec(sqlStatement, "John Doe", "john@example.com")
if err != nil {
panic(err.Error())
}
}
- 查询数据 :
func queryData(db *sql.DB) {
rows, err := db.Query("SELECT id, name, email FROM users")
if err != nil {
panic(err.Error())
}
defer rows.Close()for rows.Next() {
var id int
var name, email string
err := rows.Scan(&id, &name, &email)
if err != nil {
panic(err.Error())
}
fmt.Printf("ID: %d, Name: %s, Email: %s\n", id, name, email)
}
}
- 更新数据 :
func updateData(db *sql.DB) {
sqlStatement := `UPDATE users SET email = ? WHERE id = ?`
_, err := db.Exec(sqlStatement, "newemail@example.com", 1)
if err != nil {
panic(err.Error())
}
}
- 删除数据 :
func deleteData(db *sql.DB) {
sqlStatement := `DELETE FROM users WHERE id = ?`
_, err := db.Exec(sqlStatement, 1)
if err != nil {
panic(err.Error())
}
}
三、Go Web 开发实例
(一)单控制器实例
package mainimport (
"net/http"
"fmt"
)func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
(二)多控制器实例
package mainimport (
"net/http"
"fmt"
)func homeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Home Page")
}func aboutHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "About Page")
}func main() {
http.HandleFunc("/", homeHandler)
http.HandleFunc("/about", aboutHandler)
http.ListenAndServe(":8080", nil)
}
四、获取请求头和请求参数
(一)获取请求头
package mainimport (
"net/http"
"fmt"
)func headerHandler(w http.ResponseWriter, r *http.Request) {
headers := r.Header
fmt.Fprintf(w, "Request Headers:\n")
for key, value := range headers {
fmt.Fprintf(w, "%s: %s\n", key, value)
}
}func main() {
http.HandleFunc("/headers", headerHandler)
http.ListenAndServe(":8080", nil)
}
(二)获取请求参数
package mainimport (
"net/http"
"fmt"
)func paramsHandler(w http.ResponseWriter, r *http.Request) {
name := r.URL.Query().Get("name")
age := r.URL.Query().Get("age")
fmt.Fprintf(w, "Name: %s, Age: %s", name, age)
}func main() {
http.HandleFunc("/params", paramsHandler)
http.ListenAndServe(":8080", nil)
}
五、Cookie 操作
(一)设置 Cookie
package mainimport (
"net/http"
"fmt"
)func setCookieHandler(w http.ResponseWriter, r *http.Request) {
cookie := http.Cookie{Name: "username", Value: "john_doe", Path: "/"}
http.SetCookie(w, &cookie)
fmt.Fprintf(w, "Cookie set")
}func main() {
http.HandleFunc("/setcookie", setCookieHandler)
http.ListenAndServe(":8080", nil)
}
(二)获取 Cookie
package mainimport (
"net/http"
"fmt"
)func getCookieHandler(w http.ResponseWriter, r *http.Request) {
cookie, err := r.Cookie("username")
if err != nil {
fmt.Fprintf(w, "Cookie not found")
return
}
fmt.Fprintf(w, "Cookie value: %s", cookie.Value)
}func main() {
http.HandleFunc("/getcookie", getCookieHandler)
http.ListenAndServe(":8080", nil)
}
六、Restful
使用 Go 框架构建 Restful API
以 Go 的 net/http
包为例,构建一个简单的用户管理 Restful API。
package mainimport (
"net/http"
"fmt"
"encoding/json"
"strconv"
)type User struct {
ID int `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
}var users = []User{
{ID: 1, Name: "John Doe", Email: "john@example.com"},
{ID: 2, Name: "Jane Smith", Email: "jane@example.com"},
}func getUsers(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(users)
}func getUser(w http.ResponseWriter, r *http.Request) {
idStr := r.URL.Query().Get("id")
id, err := strconv.Atoi(idStr)
if err != nil {
http.Error(w, "Invalid ID", http.StatusBadRequest)
return
}for _, user := range users {
if user.ID == id {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(user)
return
}
}
http.Error(w, "User not found", http.StatusNotFound)
}func createUser(w http.ResponseWriter, r *http.Request) {
var newUser User
err := json.NewDecoder(r.Body).Decode(&newUser)
if err != nil {
http.Error(w, "Invalid request body", http.StatusBadRequest)
return
}users = append(users, newUser)
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(newUser)
}func updateUser(w http.ResponseWriter, r *http.Request) {
idStr := r.URL.Query().Get("id")
id, err := strconv.Atoi(idStr)
if err != nil {
http.Error(w, "Invalid ID", http.StatusBadRequest)
return
}for i, user := range users {
if user.ID == id {
var updatedUser User
err := json.NewDecoder(r.Body).Decode(&updatedUser)
if err != nil {
http.Error(w, "Invalid request body", http.StatusBadRequest)
return
}
users[i] = updatedUser
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(updatedUser)
return
}
}
http.Error(w, "User not found", http.StatusNotFound)
}func deleteUser(w http.ResponseWriter, r *http.Request) {
idStr := r.URL.Query().Get("id")
id, err := strconv.Atoi(idStr)
if err != nil {
http.Error(w, "Invalid ID", http.StatusBadRequest)
return
}for i, user := range users {if user.ID == id {users = append(users[:i], users[i+1:]...)fmt.Fprintf(w, "User deleted successfully")return}}http.Error(w, "User not found", http.StatusNotFound)
}func main() {http.HandleFunc("/users", getUsers)http.HandleFunc("/user", getUser)http.HandleFunc("/createuser", createUser)http.HandleFunc("/updateuser", updateUser)http.HandleFunc("/deleteuser", deleteUser)http.ListenAndServe(":8080", nil)
}
相关文章:
关于GoWeb(1)
Go Web (1) 一、网络通信与 Socket 编程 (一)Socket 编程基础 Socket 是网络通信的核心,它允许程序之间通过网络进行数据交换。在 Go 中,可以使用标准库 net 来实现 Socket 编程。 (二&…...
实现从一个微信小程序跳转到另一个微信小程序
前言: 最近在公司完成了一个两个小程序之间进行跳转的需求,将跳转方式与携带参数的方式分享给伙伴们: 代码展示: wx.navigateToMiniProgram({// 另一个程序的appIdappId: "wxbbd...",//你希望跳转到另一个小程序的目标路径&#…...
【教程】Docker运行gitlab容器
Docker运行gitlab容器 前言1.拉取gitlab镜像2.创建挂载数据卷3.运行镜像4 登录Gitalb5 访问linux的gitlab地址,输入用户名与密码 前言 在linux系统中安装gitlab的教程 1.拉取gitlab镜像 不指定 默认拉取最新版镜像 docker pull gitlab/gitlab-ce 2.创建挂载数据…...
微信小程序鲜花销售系统设计与实现
概述 在鲜花电商行业快速发展的背景下,移动端销售平台成为花店拓展业务的重要渠道。幽络源平台今日分享一款功能完善的微信小程序鲜花销售系统,该系统实现了多角色管理、在线订购、会员服务等核心功能,为鲜花行业提供了完整的电商解决方案。…...
嵌入式C设计模式---策略模式
目录 1.策略设计模式动漫详解 2.LVGL策略模式实现详解与应用 3.嵌入式中策略模式应用的优缺点 4.大话设计模式C语言实现 1.策略设计模式动漫详解 2.LVGL策略模式实现详...
打开canoe--点击capl Brower弹出错误,capl打不开
打开canoe–点击capl Brower弹出下图错误,capl打不开,友友们遇到过吗?怎么破?...
ultralytics 目标检测 混淆矩阵 背景图像 没被记录
修改 utils/metrics.py ConfusionMatrix def process_batch(self, detections, gt_bboxes, gt_cls):"""Update confusion matrix for object detection task.Args:detections (Array[N, 6] | Array[N, 7]): Detected bounding boxes and their associated inf…...
C++之map
因为前些天做了一道题:PTA:查询首都或国名-CSDN博客 这道题我和朋友的实现方式不同,想要学习学习她的这种方式,于是乎有了这篇研究 map 的文章。 先学习一下 map 的基本定义吧: map 是标准模板库(STL)中…...
【每天一个知识点】点乘(Dot Product)
点乘(Dot Product)在很多机器学习和图神经网络(GNN)中都有广泛应用,尤其在图结构重构中,它通常用来衡量节点之间的相似性或者关联性。让我们逐步深入理解点乘,尤其是在图结构重构中的应用。 1.…...
2025上海车展| 和芯星通发布覆盖车载全场景的产品方案
2025上海车展充满科技范儿,更加聚焦用户价值与安全性。智能化、电动化进一步深入融合,呈现辅助驾驶成熟量产化、舱驾融合一体化、产业链创新本土化、跨界融合生态化的趋势。 与其他辅助驾驶系统传感器相比,GNSS卫星定位能够提供独立于外部地…...
【Linux网络】构建HTTP响应与请求处理系统 - HttpResponse从理解到实现
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
识破养生假象,拥抱科学健康
在这个全民热衷养生的时代,各种养生理念与方法如潮水般涌来。但其中不少是迷惑大众的 “烟雾弹”,只有识破这些养生假象,我们才能踏上真正的健康之路。 不少人觉得,养生就得靠保健品 “撑腰”。市面上,各类宣称具有…...
设计一个关键字统计程序:利用HashMap存储关键字统计信息,对用户输入的关键字进行个数统计。
思路分析 首先,在KeywordCounter类中,定义了一个包含所有Java关键字的字符串数组KEYWORDS,用于存储所有关键字。然后创建了一个Scanner对象input,用于从标准输入读取用户的输入。接下来创建了一个StringBuilder对象sb,…...
Python文件操作及数据库交互(Python File Manipulation and Database Interaction)
Python文件操作及数据库的交互 在实际开发中,文件操作与数据库交互是非常常见的任务。Python作为一种高效且灵活的编程语言,不仅提供了丰富的文件操作功能,还通过多种库与数据库进行高效交互。本文将详细介绍如何使用Python进行文件操作&…...
Eigen稀疏矩阵类 (SparseMatrix)
1. SparseMatrix 核心属性与初始化 模板参数 cpp SparseMatrix<Scalar, Options, StorageIndex> Scalar:数据类型(如 double, float)。 Options:存储格式(默认 ColMajor,可选 RowMajor࿰…...
【运维】Windows 与 Linux 中实时查看日志的命令对比详解(tail -f)
🔍 Windows 与 Linux 中实时查看日志的命令对比详解(tail -f) 在日常开发、调试、部署过程中,实时查看日志文件的更新内容是非常常见的需求。尤其是在排查后端服务问题、守护进程行为、系统异常等场景下,查看实时日志…...
巧用 Element - UI 实现图片上传按钮的智能隐藏
引言 在前端开发中,使用 Element - UI 组件库来构建用户界面是非常常见的操作。其中图片上传功能更是在许多项目中频繁出现,比如用户头像上传、商品图片上传等场景。有时候,我们会有这样的需求:当上传图片达到一定数量后…...
高级 SQL 技巧:提升数据处理能力的实用方法
在数据驱动的时代,SQL 作为操作和管理关系型数据库的标准语言,其重要性不言而喻。基础的 SQL 语句能满足日常的数据查询需求,但在处理复杂业务逻辑、进行数据分析和优化数据库性能时,就需要掌握一些高级 SQL 技巧。这些技巧不仅能提高查询效率,还能实现复杂的数据处理任务…...
2.4.5goweb项目上传到csdn的git仓库
在开始使用 Git 之前,你需要先安装它。不同操作系统的安装方法不同: (git先实战,能从仓库上传,下载之后,在听课程,记住大致流程。以后使用就知道往哪里查了) Windows:可以从Git 官方网站下载安…...
Eclipse 插件开发 3 菜单栏
Eclipse 插件开发 3 菜单栏 1 增加菜单2 指定位置3 点击事件4 二级菜单 (静态)5 二级菜单 (动态) 位置locationURI备注菜单栏menu:org.eclipse.ui.main.menu添加到传统菜单工具栏toolbar:org.eclipse.ui.main.toolbar添加到工具栏 1 增加菜单 <?xml version"1.0&quo…...
win11右键菜单改回win10模式
win11右键菜单非常不好用,经常需要点击最下方的“显示更多选项”,下面是win11右键菜单改回win10模式的方法。 按下 Win R 组合键,打开“运行”窗口,输入 cmd,此时不要急着按Enter,按 Ctrl Shift Enter …...
SpringBoot 常用注解通俗解释
SpringBoot 常用注解通俗解释 一、启动类相关 1. SpringBootApplication • 作用:这是SpringBoot项目的"总开关",放在主类上 • 通俗理解:相当于对电脑说:"开机!我要用SpringBoot了!…...
26 Arcgis软件常用工具有哪些
一、画图改图工具(矢量编辑) 挪位置工具(移动工具) 干哈的?选中要素(比如地块、道路)直接拖到新位置,或者用坐标X/Y偏移批量移动,适合“整体搬家”。 磁…...
OpenCV --- 图像预处理(七)
OpenCV — 图像预处理(七) 文章目录 OpenCV --- 图像预处理(七)十七,图像轮廓特征查找17.1 外接矩形17.2 最小外接矩形17.3 最小外接圆 十七,图像轮廓特征查找 图像轮廓特征查找其实就是他的外接轮廓。应用…...
【计算机网络】信息时代的数字神经系统
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1:Python TCP服务器案例2:网络带宽测试 运行结果验证 三、性能对比测试…...
Adriuno:编程语言基础
Adriuno主要的编程语言是C语言,使得使用者不需要掌握特殊的编程语言,变得更加容易上手。 一、函数 Arduino提供了许多函数,其功能是控制 Arduino开发板,进行数值计算等,包括数字I/O函数、模拟I/O函数、高级I/O函数、时…...
二叉搜索树的实现与应用场景
本章目标 1.二叉搜索树的概念 2.二叉搜索树的性能分析 3.二叉搜索树的实现 4.二叉搜索树的key/key-value的实现场景 1.二叉搜索树的概念 二叉搜索树又叫二叉排序树,它是具有以下性质的树 1.它的左子树不为空,并且左子树上的值都小于根节点 2.它的右子树不为空,并且右子树上的…...
单例模式介绍
单例模式大家都很清楚,最常见的是饿汉式与懒汉式。也有不常见的静态内部类式与枚举式以及,懒汉式的线程安全版本。 单例模式常被用于全局式的配置管理(数据库连接池,日志管理器),资源共享(线程池…...
Pycharm 代理配置
Pycharm 代理配置 文章目录 Pycharm 代理配置1. 设置系统代理1.1 作用范围1.2 使用场景1.3 设置步骤 2. 设置 python 运行/调试代理2.1 作用范围2.2 使用场景2.3 设置步骤 Pycharm 工具作为一款强大的 IDE,其代理配置在实际开发中也是必不可少的,下面介绍…...
springboot入门-repository数据访问层JPA和mybatis
在 Spring Boot 中,Repository 接口是数据访问层(DAO)的核心抽象,而 JpaRepository 和 MyBatis 的实现方式有显著不同。以下是详细解释: 1. JPA 的 Repository 接口为什么使用 interface? (1) 基于接口的动…...
代码随想录算法训练营Day31 | 56. 合并区间 738.单调递增的数字
56. 合并区间 问题描述: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 解决方式…...
【教学类-102-19】蝴蝶三色图作品1——卡纸蝴蝶(滴颜料按压对称花纹)A4横版最大号22.85CM
背景需求: 前期做了18次实验,基本实现了三色图三线的各种变化效果和16种图纸大小的批量导入 今天开始制作具体可用的学具——黑卡纸蝴蝶(滴颜料按压对撑颜色) 【教学类-102-11】蝴蝶外轮廓01——Python对黑白图片进行PS填充三种颜色+图案描边+图案填充白色+制作1图2图6图…...
Claude系列模型-20250426
文章目录 Claude 3.7 Sonnet - "Our most intelligent model yet"Claude 3.5 Haiku - "Fastest model for daily tasks"Claude 3.5 Sonnet (Oct 2024)Claude 3 Opus总结Claude 3.7 Sonnet - “Our most intelligent model yet” 特点: 这是目前Claude系列…...
ADC单通道采集实验
设置的步骤如下; #include "adc.h"ADC_HandleTypeDef adc_handle {0}; void adc_init(void) {adc_handle.Instance ADC1; //ADC的基地址adc_handle.Init.DataAlign ADC_DATAALIGN_RIGHT; //…...
启动你的RocketMQ之旅(五)-Broker详细——消息传输
前言: 👏作者简介:我是笑霸final。 📝个人主页: 笑霸final的主页2 📕系列专栏:java专栏 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一…...
100个节点的部署,整合Docker、Kubernetes和Jenkins的详细设计
一、架构设计概览 组件角色: Docker:应用容器化封装,确保环境一致性。Kubernetes(K8s):自动化容器编排,管理多节点集群的调度、扩缩容和自愈。Jenkins:CI/CD流水线驱动,实现代码到生产的自动化流程。集群规模: Master节点:3个(高可用,避免单点故障)。Worker节点:…...
神经网络与计算机视觉
2016 年,随着 AlphaGo 在围棋比赛中击败李世石,“人工智能”、“神经网络”、“深度 学习”等字眼便越来越多的出现在大众眼前,智能化好像成为一种不可逆转的趋势,带给大家新奇感的同时也带来了一丝忧惧:在不远的未来,机器是否真的拥有思维和情感?《终结者》中天网大战人…...
openEuler对比CentOS的核心优势分析
openEuler对比CentOS的核心优势分析 在开源操作系统领域,openEuler与CentOS均占据重要地位,但随着CentOS维护策略的调整(如CentOS 8停止维护,转向CentOS Stream),越来越多的用户开始关注国产化替代方案。o…...
高性能电脑系统优化工具Advanced SystemCare PRO v18.3.0.240 解锁永久专业版
软件介绍 IObit Advanced SystemCare,系统清理维护与安全防护软件,大幅提升整体系统性能和安全!一键AI智能模式,全面扫描优化修复系统,拥有性能加速模式、系统优化、网络加速、启动项优化、软件更新、实时监视清理、隐…...
【C语言练习】005. 编写表达式并确定其值
【C语言练习】005. 编写表达式并确定其值 005. 编写表达式并确定其值示例 1:算术表达式计算过程:最终结果:示例 2:关系和逻辑表达式计算过程:最终结果:示例 3:复合赋值和算术表达式计算过程:最终结果:示例 4:位运算表达式计算过程:最终结果:示例 5:综合表达式计算…...
力扣面试150题--合并两个有序链表和随机链表的复制
Day 33 题目描述 思路 常规题目,比较list1和list2节点的值,取出较小值扩展链表,最后其中一个遍历完直接拼接另外一个即可(归并排序) /*** Definition for singly-linked list.* public class ListNode {* int v…...
测试用例的设计
组合原则:多个选项有效数据建议组合使用(正向功能)、单个选项无效数据组合其他选项有效数据使用(逆向功能) 一、针对登录模块设计测试用例: 1.账号:已注册手机号、已注册邮箱、为空、未注册手机号、未注册邮箱 2.密码:注册密码、为空、错误密码 3.验证码:正确、过期、错误 …...
关于TCP三次握手和四次挥手的疑点
参考文章:浅谈TCP三次握手和四次挥手 1、三次握手的作用 (1)确保双方收到对方的初始序列号:客户端发送SYN包,服务器回复SYN-ACK包,客户端再回复ACK包,确保双方都接收到对方的序列号。 …...
逆向|dy|a_bogus|1.0.1.19-fix.01
2025-04-26 请求地址:aHR0cHM6Ly93d3cuZG91eWluLmNvbS91c2VyL01TNHdMakFCQUFBQV96azV6NkoyMG1YeGt0eHBnNkkzRVRKejlyMEs3d2Y2dU9EWlhvd2ttblZWRnB0dlBPMmMwN2J0WFotcVU4V3M 个人主页的视频数据 我们需要逆向这个接口,所以现在需要分析这个请求, 分析这几个数据包可以发现: 只有…...
【软考-架构】13.5、中间件
✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 中间件技术典型应用架构 中间件技术 在分布式系统环境中,出于操作系统和应用程序之间的软件。 主要的中间件有五类: 数据库访问中间件࿱…...
【Redis】基础2:作为缓存
文章目录 1. 一些概念2. 主动更新策略/缓存设计模式2.1 cache-aside pattern(lazy loading)2.2 read-through pattern(针对读操作)2.3 write-through pattern2.4 write behind pattern(write back pattern)…...
豆包,Kim,deepseek对比
以下是豆包、Kimi、DeepSeek的对比与应用: 对比 - 核心技术:DeepSeek-R1完全依赖强化学习驱动,跳过监督微调阶段。Kimi k1.5采用“轻量级SFT预热RL优化”的混合策略。 - 多模态支持:Kimi k1.5支持文本与图像的多模态联合推理。De…...
L2-005 集合相似度
L2-005 集合相似度 - 团体程序设计天梯赛-练习集 给定两个整数集合,它们的相似度定义为:Nc/Nt100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。 …...
33.状态压缩动态规划
一、算法内容 1.简介 若元素数量比较小(不超过 20 20 20)时,想要存储每个元素取或不取的状态时, 可以借助位运算将状态压缩。 需要借助状态压缩过程的动态规划就是状态压缩 DP(很多地方会简称为状压 DP)…...
WSL 中 nvidia-smi: command not found的解决办法
前言 在使用基于 Linux 的 Windows 子系统(WSL)时,当我们执行某些操作后,可能会遇到输入 nvidia-smi 命令却无法被系统识别的情况。 例如,在终端中输入nvidia-smi 后,系统返回提示 -bash: nvidia-smi: co…...