当前位置: 首页 > news >正文

DeepSeek-r1和O1、O3mini谁更强?

DeepSeek-r1和O1、O3mini谁更强?

题目:编写一个 js 程序,显示一个球在旋转的六边形内弹跳。球应该受到重力和摩擦力的影响,并且必须逼真地从旋转的墙壁上弹起

DeepSeek-r1

<!DOCTYPE html>
<html>
<body>
<canvas id="canvas" width="600" height="400"></canvas>
<script>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
const center = { x: canvas.width/2, y: canvas.height/2 };// 六边形参数
const hexRadius = 150;
let hexRotation = 0;
const hexRotationSpeed = 0.02;// 球参数
const ball = {x: center.x,y: center.y,radius: 10,vx: 2,vy: 0
};// 物理参数
const gravity = 0.5;
const restitution = 0.8; // 弹性系数
const friction = 0.7;   // 摩擦力系数function getHexagonPoints(cx, cy, radius, rotation) {const points = [];for (let i = 0; i < 6; i++) {const angle = rotation + (i * Math.PI/3);points.push({x: cx + radius * Math.cos(angle),y: cy + radius * Math.sin(angle)});}return points;
}function distanceToSegment(p, a, b) {const ab = { x: b.x - a.x, y: b.y - a.y };const ap = { x: p.x - a.x, y: p.y - a.y };const dot = ap.x * ab.x + ap.y * ab.y;if (dot <= 0) return Math.hypot(ap.x, ap.y);if (dot >= ab.x**2 + ab.y**2) return Math.hypot(p.x - b.x, p.y - b.y);const t = dot / (ab.x**2 + ab.y**2);const proj = { x: a.x + t*ab.x, y: a.y + t*ab.y };return Math.hypot(p.x - proj.x, p.y - proj.y);
}function update() {// 应用物理ball.vy += gravity;ball.x += ball.vx;ball.y += ball.vy;// 碰撞检测const points = getHexagonPoints(center.x, center.y, hexRadius, hexRotation);for (let i = 0; i < 6; i++) {const a = points[i];const b = points[(i+1)%6];const distance = distanceToSegment(ball, a, b);if (distance < ball.radius) {// 计算碰撞法线const mid = { x: (a.x + b.x)/2, y: (a.y + b.y)/2 };const normal = { x: (center.x - mid.x)/hexRadius,y: (center.y - mid.y)/hexRadius };// 校正位置const overlap = ball.radius - distance;ball.x += normal.x * overlap;ball.y += normal.y * overlap;// 计算速度变化const velocityDot = ball.vx * normal.x + ball.vy * normal.y;if (velocityDot < 0) {// 法向反弹const bounce = -velocityDot * restitution;// 切向摩擦const tangentVx = ball.vx - velocityDot * normal.x;const tangentVy = ball.vy - velocityDot * normal.y;ball.vx = tangentVx * friction + bounce * normal.x;ball.vy = tangentVy * friction + bounce * normal.y;}}}// 更新旋转hexRotation += hexRotationSpeed;// 绘制ctx.clearRect(0, 0, canvas.width, canvas.height);// 绘制六边形ctx.beginPath();ctx.moveTo(points[0].x, points[0].y);points.slice(1).forEach(p => ctx.lineTo(p.x, p.y));ctx.closePath();ctx.strokeStyle = '#000';ctx.stroke();// 绘制球ctx.beginPath();ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI*2);ctx.fillStyle = 'red';ctx.fill();requestAnimationFrame(update);
}update();
</script>
</body>
</html>

O1

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>旋转六边形内弹跳的球</title><style>body { margin: 0; overflow: hidden; background: #222; }canvas { display: block; }</style>
</head>
<body><canvas id="canvas"></canvas><script>// 获取 canvas 并设置全屏const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');canvas.width = window.innerWidth;canvas.height = window.innerHeight;// 六边形的参数const center = { x: canvas.width / 2, y: canvas.height / 2 }; // 六边形中心const hexRadius = 200;      // 六边形半径(顶点到中心的距离)let hexRotation = 0;        // 当前旋转角度const hexRotationSpeed = 0.01; // 每帧旋转的弧度// 小球的参数const ballRadius = 10;let ball = {// 初始位置设在中心附近,可自行调整x: center.x,y: center.y,// 初始速度(可调整以获得不同运动效果)vx: 5,vy: -2};// 物理参数const gravity = 0.3;      // 重力加速度(单位:像素/帧²)const airFriction = 0.999; // 空气阻力,每帧对速度轻微衰减const restitution = 0.9;   // 碰撞时法向速度的反弹系数(0~1之间)const wallFriction = 0.98; // 墙面摩擦,降低切向分量// 动画主循环function animate() {update();draw();requestAnimationFrame(animate);}// 更新物理状态function update() {// 更新六边形旋转角度hexRotation += hexRotationSpeed;// 对小球施加重力ball.vy += gravity;// 应用空气阻力ball.vx *= airFriction;ball.vy *= airFriction;// 更新小球的位置ball.x += ball.vx;ball.y += ball.vy;// 计算当前旋转后的六边形各顶点const vertices = [];for (let i = 0; i < 6; i++) {const angle = hexRotation + i * Math.PI / 3; // 360°/6 = 60° = π/3vertices.push({x: center.x + hexRadius * Math.cos(angle),y: center.y + hexRadius * Math.sin(angle)});}// 对六边形每条边检测碰撞for (let i = 0; i < 6; i++) {const p1 = vertices[i];const p2 = vertices[(i + 1) % 6];// 计算边向量const edge = { x: p2.x - p1.x, y: p2.y - p1.y };const edgeLenSq = edge.x * edge.x + edge.y * edge.y;// 将小球中心投影到边所在直线上,求最接近边的点let t = ((ball.x - p1.x) * edge.x + (ball.y - p1.y) * edge.y) / edgeLenSq;t = Math.max(0, Math.min(1, t)); // 限定在 [0, 1] 内,保证点在边上const closest = { x: p1.x + t * edge.x, y: p1.y + t * edge.y };// 计算小球中心到最近点的距离const dx = ball.x - closest.x;const dy = ball.y - closest.y;const dist = Math.sqrt(dx * dx + dy * dy);// 若距离小于小球半径,则发生碰撞if (dist < ballRadius) {// 计算碰撞点处墙壁的速度// 对于以 center 为旋转中心、角速度 ω 的旋转体,// 任一点 r 相对于 center 的瞬时速度 v = ω × r,// 对于二维而言 v = ω * (-r.y, r.x)const rx = closest.x - center.x;const ry = closest.y - center.y;const wallV = {x: -hexRotationSpeed * ry,y: hexRotationSpeed * rx};// 计算小球相对于墙壁的速度(相对速度)const relV = {x: ball.vx - wallV.x,y: ball.vy - wallV.y};// 碰撞法线:从最近点指向小球中心let n = { x: dx, y: dy };const nMag = Math.sqrt(n.x * n.x + n.y * n.y) || 1;n.x /= nMag;n.y /= nMag;// 检查相对速度在法线方向上的分量(若小于 0,则表示正向墙壁运动)const relDotN = relV.x * n.x + relV.y * n.y;if (relDotN < 0) {// 将相对速度分解为法向分量和切向分量const vN = { x: n.x * relDotN, y: n.y * relDotN };const vT = { x: relV.x - vN.x, y: relV.y - vN.y };// 反弹:法向分量取反并乘以反弹系数,同时对切向分量施加摩擦衰减const newRelV = {x: -restitution * vN.x + wallFriction * vT.x,y: -restitution * vN.y + wallFriction * vT.y};// 小球碰撞后的速度 = 墙壁速度 + 更新后的相对速度ball.vx = newRelV.x + wallV.x;ball.vy = newRelV.y + wallV.y;// 将小球稍微移出碰撞状态,防止卡住const penetration = ballRadius - dist;ball.x += n.x * penetration;ball.y += n.y * penetration;}}}}// 绘制六边形和小球function draw() {// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 绘制旋转六边形ctx.strokeStyle = "#fff";ctx.lineWidth = 3;ctx.beginPath();for (let i = 0; i < 6; i++) {const angle = hexRotation + i * Math.PI / 3;const x = center.x + hexRadius * Math.cos(angle);const y = center.y + hexRadius * Math.sin(angle);if (i === 0) {ctx.moveTo(x, y);} else {ctx.lineTo(x, y);}}ctx.closePath();ctx.stroke();// 绘制小球ctx.fillStyle = "#f00";ctx.beginPath();ctx.arc(ball.x, ball.y, ballRadius, 0, Math.PI * 2);ctx.fill();}// 开始动画animate();// 窗口尺寸变化时,重新设置 canvas 尺寸和中心点window.addEventListener('resize', function() {canvas.width = window.innerWidth;canvas.height = window.innerHeight;center.x = canvas.width / 2;center.y = canvas.height / 2;});</script>
</body>
</html>

O3-mini

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>旋转六边形内弹跳的球</title><style>body { margin: 0; background: #f0f0f0; }canvas { display: block; margin: 0 auto; background: #fff; }</style>
</head>
<body><canvas id="canvas" width="800" height="600"></canvas><script>// 获取 Canvas 及上下文const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');// 全局参数const centerX = canvas.width / 2;const centerY = canvas.height / 2;const hexRadius = 250;         // 六边形的“外接圆”半径let hexRotation = 0;           // 六边形当前旋转角度(弧度)const omega = 0.01;            // 六边形旋转角速度(每帧增加的弧度)const gravity = 0.5;           // 重力加速度(像素/帧²)const airFriction = 0.999;     // 空气摩擦,每帧稍微衰减球的速度const restitution = 0.9;       // 反弹系数(碰撞时法向速度反向并缩小)const wallFriction = 0.98;     // 碰撞时切向速度摩擦(模拟与墙面接触时的摩擦损耗)// 球的属性const ball = {x: centerX,y: centerY - 100,radius: 15,vx: 3,vy: 0,};// --- 辅助函数 ---// 计算两个向量的点积function dot(ax, ay, bx, by) {return ax * bx + ay * by;}// 归一化向量 (x, y)function normalize(x, y) {const mag = Math.hypot(x, y);if (mag === 0) return { x: 0, y: 0 };return { x: x / mag, y: y / mag };}// 根据当前旋转角计算六边形的 6 个顶点(数组中的每个元素都是 {x, y} 对象)function getHexagonVertices() {const vertices = [];for (let i = 0; i < 6; i++) {// 每个顶点的角度:初始角加上 i * 60°const angle = hexRotation + i * Math.PI / 3;const x = centerX + hexRadius * Math.cos(angle);const y = centerY + hexRadius * Math.sin(angle);vertices.push({ x, y });}return vertices;}// 绘制六边形function drawHexagon(vertices) {ctx.beginPath();ctx.moveTo(vertices[0].x, vertices[0].y);for (let i = 1; i < vertices.length; i++) {ctx.lineTo(vertices[i].x, vertices[i].y);}ctx.closePath();ctx.lineWidth = 3;ctx.strokeStyle = '#333';ctx.stroke();}// 绘制球function drawBall() {ctx.beginPath();ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2);ctx.fillStyle = 'red';ctx.fill();ctx.lineWidth = 1;ctx.strokeStyle = '#000';ctx.stroke();}// 检测并处理球与一条边(p1 到 p2)的碰撞function resolveCollisionWithEdge(p1, p2) {// 求球心到边的最近点(将 p1p2 作为线段处理)const dx = p2.x - p1.x;const dy = p2.y - p1.y;const lengthSq = dx * dx + dy * dy;let t = ((ball.x - p1.x) * dx + (ball.y - p1.y) * dy) / lengthSq;t = Math.max(0, Math.min(1, t));  // 限制 t 在 [0, 1] 内const closestX = p1.x + t * dx;const closestY = p1.y + t * dy;// 计算球心与最近点的向量及距离const diffX = ball.x - closestX;const diffY = ball.y - closestY;const distance = Math.hypot(diffX, diffY);// 如果距离小于球半径,说明发生了碰撞if (distance < ball.radius) {const penetration = ball.radius - distance;  // 穿透深度// 计算碰撞法线:初步取从最近点指向球心的方向let normal = normalize(diffX, diffY);// 如果球心恰好与边重合(distance == 0),则使用边的法线if (distance === 0) {normal = normalize(dy, -dx);}// 也可以根据边向量计算两个垂直方向,并选择指向六边形内部的那个const edgeNormalCandidate = normalize(dy, -dx);const midX = (p1.x + p2.x) / 2;const midY = (p1.y + p2.y) / 2;const toCenter = { x: centerX - midX, y: centerY - midY };if (dot(edgeNormalCandidate.x, edgeNormalCandidate.y, toCenter.x, toCenter.y) > 0) {normal = edgeNormalCandidate;} else {normal = { x: -edgeNormalCandidate.x, y: -edgeNormalCandidate.y };}// 计算碰撞点处边的运动速度(因为六边形在旋转,边上的点有切向速度)// 对于一个位于 P 点(最近点)的位置,其速度 v_wall = ω × (P - center)// 在 2D 中:v_wall = (-ω*(P.y-centerY), ω*(P.x-centerX))const vWall = {x: -omega * (closestY - centerY),y:  omega * (closestX - centerX)};// 计算球相对于“运动边”的相对速度const relV = {x: ball.vx - vWall.x,y: ball.vy - vWall.y};// 计算相对速度在法线方向上的分量const relVNormal = dot(relV.x, relV.y, normal.x, normal.y);// 如果球正向墙面运动(相对速度法向分量为负),才处理碰撞if (relVNormal < 0) {// 反转法向分量,并按反弹系数缩放const newRelVNormal = -restitution * relVNormal;// 分离出切向分量,并加入碰撞摩擦(减少切向分量能量)const relVTangent = {x: (relV.x - relVNormal * normal.x) * wallFriction,y: (relV.y - relVNormal * normal.y) * wallFriction};// 碰撞后的相对速度const newRelV = {x: newRelVNormal * normal.x + relVTangent.x,y: newRelVNormal * normal.y + relVTangent.y};// 转换回绝对速度(加上边的运动速度)ball.vx = newRelV.x + vWall.x;ball.vy = newRelV.y + vWall.y;// 将球推出边界,防止“卡在墙内”ball.x += normal.x * penetration;ball.y += normal.y * penetration;}}}// --- 主循环 ---function update() {// 更新六边形的旋转角度hexRotation += omega;// 更新球的速度:加重力、应用空气摩擦ball.vy += gravity;ball.vx *= airFriction;ball.vy *= airFriction;// 更新球的位置ball.x += ball.vx;ball.y += ball.vy;// 获取当前六边形的顶点const vertices = getHexagonVertices();// 检测并处理球与六边形每条边的碰撞for (let i = 0; i < vertices.length; i++) {const p1 = vertices[i];const p2 = vertices[(i + 1) % vertices.length];resolveCollisionWithEdge(p1, p2);}// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 绘制六边形和球drawHexagon(vertices);drawBall();// 循环调用下一帧requestAnimationFrame(update);}// 启动动画update();</script>
</body>
</html>

image-20250209213308563

运行结果

运行视频

相关文章:

DeepSeek-r1和O1、O3mini谁更强?

DeepSeek-r1和O1、O3mini谁更强&#xff1f; 题目&#xff1a;编写一个 js 程序&#xff0c;显示一个球在旋转的六边形内弹跳。球应该受到重力和摩擦力的影响&#xff0c;并且必须逼真地从旋转的墙壁上弹起 DeepSeek-r1 <!DOCTYPE html> <html> <body> &l…...

代码随想录_二叉树

二叉树 二叉树的递归遍历 144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历 // 前序遍历递归LC144_二叉树的前序遍历 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result new ArrayList<Integer&g…...

时序数据库:Influxdb详解

文章目录 一、简介1、简介2、官网 二、部署1、安装2、配置&#xff08;1&#xff09;用户初始化 三、入门&#xff08;Web UI&#xff09;1、加载数据&#xff08;1&#xff09;上传数据文件&#xff08;2&#xff09;代码接入模板 2、管理存储桶&#xff08;1&#xff09;创建…...

内存泄漏及检测办法

什么情况下会产生内存泄漏&#xff1f; 内存泄漏如何检测&#xff1f; 使用 valgrind 对象计数 基本思路&#xff1a; 在对象的构造函数中增加计数&#xff1a;每次创建一个对象时&#xff0c;增加一个计数。在对象的析构函数中减少计数&#xff1a;每次销毁一个对象时&…...

BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址&#xff1a;BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测&#xff08;Matlab完整源码和数据) BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测 一、引言 1.1、研究背景和意义 随着全球对可再生能源需求的不断增长&#xff0c;光伏…...

Leetcode 3448. Count Substrings Divisible By Last Digit

Leetcode 3448. Count Substrings Divisible By Last Digit 1. 解题思路2. 代码实现 题目链接&#xff1a;3448. Count Substrings Divisible By Last Digit 1. 解题思路 这一题的话我们走的是一个累积数组的思路。 首先&#xff0c;我们使用一个cache数组记录下任意段数字…...

青少年编程与数学 02-009 Django 5 Web 编程 03课题、项目结构

青少年编程与数学 02-009 Django 5 Web 编程 03课题、项目结构 一、项目结构项目根目录应用目录其他目录 二、项目设置Django 插件设置项目配置环境变量设置项目目录标记版本控制 三、Django 插件安装 Django 插件配置 Django 插件使用 Django 插件功能 四、扩展插件开发效率插…...

【玩转 Postman 接口测试与开发2_018】第14章:利用 Postman 初探 API 安全测试

《API Testing and Development with Postman》最新第二版封面 文章目录 第十四章 API 安全测试1 OWASP API 安全清单1.1 相关背景1.2 OWASP API 安全清单1.3 认证与授权1.4 破防的对象级授权&#xff08;Broken object-level authorization&#xff09;1.5 破防的属性级授权&a…...

UA-Track:不确定性感知端到端3D多目标跟踪

论文地址&#xff1a;https://arxiv.org/pdf/2406.02147 主页&#xff1a;https://liautoad.github.io/ua-track-website/ 3D多目标跟踪&#xff08;MOT&#xff09;在自动驾驶感知中起着至关重要的作用。最近基于端到端查询的跟踪器可以同时检测和跟踪对象&#xff0c;这在3D …...

Windows下AMD显卡在本地运行大语言模型(deepseek-r1)

Windows下AMD显卡在本地运行大语言模型 本人电脑配置第一步先在官网确认自己的 AMD 显卡是否支持 ROCm下载Ollama安装程序模型下载位置更改下载 ROCmLibs先确认自己显卡的gfx型号下载解压 替换替换rocblas.dll替换library文件夹下的所有 重启Ollama下载模型运行效果 本人电脑配…...

萌新学 Python 之字符串及字符串相关函数

字符串&#xff1a;单引号、双引号、三个单引号、三个双引号 字符串属于不可变的数据类型&#xff0c;一旦被定义&#xff0c;内存地址不变 name 张三 # 字符串赋值给name后&#xff0c;内存地址存储张三&#xff0c;地址不变 username 张三 # 张三去内存中找…...

【鸿蒙开发】第二十四章 AI - Core Speech Kit(基础语音服务)

目录 1 简介 1.1 场景介绍 1.2 约束与限制 2 文本转语音 2.1 场景介绍 2.2 约束与限制 2.3 开发步骤 2.4 设置播报策略 2.4.1 设置单词播报方式 2.4.2 设置数字播报策略 2.4.3 插入静音停顿 2.4.4 指定汉字发音 2.5 开发实例 3 语音识别 3.1 场景介绍 3.2 约束…...

Java | RESTful 接口规范

关注&#xff1a;CodingTechWork 引言 作为一名程序员&#xff0c;制定清晰、一致且高效的 RESTful 接口规范对于团队的开发效率和项目的长期维护至关重要。本文将详细介绍 RESTful 接口的设计理念、请求方法分类、核心规范&#xff0c;以及正确和错误的示例&#xff0c;帮助团…...

shell脚本控制——处理信号

Linux利用信号与系统中的进程进行通信。你可以通过对脚本进行编程&#xff0c;使其在收到特定信号时执行某些命令&#xff0c;从而控制shell脚本的操作。 1.重温Linux信号 Linux系统和应用程序可以产生超过30个信号。下表列出了在shell脚本编程时会遇到的最常见的Linux系统信…...

OpenGL学习笔记(十二):初级光照:投光物/多光源(平行光、点光源、聚光)

文章目录 平行光点光源聚光多光源 现实世界中&#xff0c;我们有很多种类的光照&#xff0c;每种的表现都不同。将光投射(Cast)到物体的光源叫做投光物(Light Caster)。 平行光/定向光(Directional Light)点光源(Point Light)聚光(Spotlight) 平行光 当一个光源处于很远的地…...

redis底层数据结构——整数集合

文章目录 定义内部实现升级升级的好处提升灵活性节约内存 降级总结 定义 整数集合&#xff08;intset&#xff09;是集合键的底层实现之一&#xff0c;当一个集合只包含整数值元素&#xff0c;并且这个集合的元素数量不多时&#xff0c;Redis就会使用整数集合作为集合键的底层…...

w198基于Springboot的智能家居系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter2-HTML 中的 JavaScript

二、HTML 中的 JavaScript 将 JavaScript 插入 HTML 的主要方法是使用<script>元素。 <script>元素有下列 8 个属性。 async&#xff1a;可选。表示应该立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#xff0c;比如下载资源或等待其他脚本加载。只对外部…...

【5】阿里面试题整理

[1]. 介绍一下ZooKeeper ZooKeeper是一个开源的分布式协调服务&#xff0c;核心功能是通过树形数据模型&#xff08;ZNode&#xff09;和Watch机制&#xff0c;解决分布式系统的一致性问题。 它使用ZAB协议保障数据一致性&#xff0c;典型场景包括分布式锁、配置管理和服务注…...

系统思考—自我超越

“人们往往认为是个人的能力限制了他们&#xff0c;但事实上&#xff0c;是组织的结构和惯性思维限制了他们的潜力。”—彼得圣吉 最近和一家行业隐形冠军交流&#xff0c;他们已经是领域第一&#xff0c;老板却依然要求&#xff1a;核心团队都要自我超越&#xff0c;攻坚克难…...

大模型-ALIGN 详细介绍

ALIGN模型&#xff08;A Large-scale ImaGe and Noisy-text embedding&#xff09;是一种大规模图像和噪声文本嵌入模型&#xff0c;它通过对比学习的方式将图像和文本嵌入到同一个向量空间中&#xff0c;使得匹配的图像-文本对的嵌入向量接近&#xff0c;不匹配的则远离。这种…...

【C++高并发服务器WebServer】-15:poll、epoll详解及实现

本文目录 一、poll二、epoll2.1 相对poll和select的优点2.2 epoll的api2.3 epoll的demo实现2.5 epoll的工作模式 一、poll poll是对select的一个改进&#xff0c;我们先来看看select的缺点。 我们来看看poll的实现。 struct pollfd {int fd; /* 委托内核检测的文件描述符 */s…...

【算法】动态规划专题⑩ —— 混合背包问题 python

目录 前置知识进入正题总结 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 【算法】动态规划专题⑥ —— 完全背包问题 python 【算法】动态规划专题⑦ —— 多重背包问题 二进制分解优化 python 混合背包结合了三种不同类型的背包问题&#xff1a;0/1背包…...

Java高频面试之SE-20

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天又来了&#xff01;哈哈哈哈哈嗝&#x1f436; Java的泛型是什么&#xff1f; Java 泛型&#xff08;Generics&#xff09; 是 Java 5 引入的一项重要特性&#xff0c;用于增强代码的类型安…...

springboot 事务管理

在Spring Boot中&#xff0c;事务管理是通过Spring框架的事务管理模块来实现的。Spring提供了声明式事务管理和编程式事务管理两种方式。通常&#xff0c;我们使用声明式事务管理&#xff0c;因为它更简洁且易于维护。 1. 声明式事务管理 声明式事务管理是通过注解来实现的。…...

opentelemetry-collector 配置elasticsearch

一、修改otelcol-config.yaml receivers:otlp:protocols:grpc:endpoint: 0.0.0.0:4317http:endpoint: 0.0.0.0:4318 exporters:debug:verbosity: detailedotlp/jaeger: # Jaeger supports OTLP directlyendpoint: 192.168.31.161:4317tls:insecure: trueotlphttp/prometheus: …...

IDEA关联Tomcat,部署JavaWeb项目

将IDEA与Tomcat关联 创建JavaWeb项目 创建Demo项目 将Tomcat作为依赖引入到Demo中 添加 Web Application 编写前端和后端代码 配置Tomcat server&#xff0c;并运行...

位图与位运算的深度联系:从图像处理到高效数据结构的C++实现与优化

在学习优选算法课程的时候&#xff0c;博主学习位运算了解到位运算的这个概念&#xff0c;之前没有接触过&#xff0c;就查找了相关的资料&#xff0c;丰富一下自身&#xff0c;当作课外知识来了解一下。 位图&#xff08;Bitmap&#xff09;&#xff1a; 在计算机科学中有两种…...

运维_Mac环境单体服务Docker部署实战手册

Docker部署 本小节&#xff0c;讲解如何将前端 后端项目&#xff0c;使用 Docker 容器&#xff0c;部署到 dev 开发环境下的一台 Mac 电脑上。 1 环境准备 需要安装如下环境&#xff1a; Docker&#xff1a;容器MySQL&#xff1a;数据库Redis&#xff1a;缓存Nginx&#x…...

DeepSeek-V3 论文解读:大语言模型领域的创新先锋与性能强者

论文链接&#xff1a;DeepSeek-V3 Technical Report 目录 一、引言二、模型架构&#xff1a;创新驱动性能提升&#xff08;一&#xff09;基本架构&#xff08;Basic Architecture&#xff09;&#xff08;二&#xff09;多令牌预测&#xff08;Multi-Token Prediction&#xf…...

react使用if判断

1、第一种 function Dade(req:any){console.log(req)if(req.data.id 1){return <span>66666</span>}return <span style{{color:"red"}}>8888</span>}2、使用 {win.map((req,index) > ( <> <Dade data{req}/>{req.id 1 ?…...

opencv:基于暗通道先验(DCP)的内窥镜图像去雾

目录 项目大体情况 暗通道先验&#xff08;Dark Channel Prior, DCP&#xff09;原理 项目代码解析 该项目是由我和我导师与舟山某医院合作开发的一个基于暗通道先验&#xff08;Dark Channel Prior&#xff0c;DCP&#xff09;的内窥镜图像去雾方法。具体来说&#xff0c;…...

2025年物联网相关专业毕业论文选题参考,文末联系,选题相关资料提供

一、智能穿戴解决方案研究方向 序号解决方案论文选题论文研究方向1智能腰带健康监测基于SpringBoot和Vue的智能腰带健康监测数据可视化平台开发研究如何利用SpringBoot和Vue技术栈开发一个数据可视化平台&#xff0c;用于展示智能腰带健康监测采集的数据&#xff0c;如心率、血…...

npm无法加载文件 因为此系统禁止运行脚本

安装nodejs后遇到问题&#xff1a; 在项目里【node -v】可以打印出来&#xff0c;【npm -v】打印不出来&#xff0c;显示npm无法加载文件 因为此系统禁止运行脚本。 但是在winr&#xff0c;cmd里【node -v】,【npm -v】都也可打印出来。 解决方法&#xff1a; cmd里可以打印出…...

使用PyCharm创建项目以及如何注释代码

创建好项目后会出现如下图所示的画面&#xff0c;我们可以通过在项目文件夹上点击鼠标右键&#xff0c;选择“New”菜单下的“Python File”来创建一个 Python 文件&#xff0c;在给文件命名时建议使用英文字母和下划线的组合&#xff0c;创建好的 Python 文件会自动打开&#…...

Qt中QFile文件读写操作和QFileInfo文件信息读取方法(详细图文教程)

&#x1f4aa; 图像算法工程师&#xff0c;专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &a…...

CF998A Balloons​ 构造 ​

Balloons 算法&#xff1a;构造 rating : 1000 思路&#xff1a; 分情况讨论&#xff1a; 1. 当只有一个气球包时&#xff0c;肯定不行 2.当有两个气球包时&#xff0c;若两个气球包的气球个数相同则不行 3.其余的情况都是可以的&#xff0c;题目问给格里高利的气球包数…...

python基础入门:3.5实战:词频统计工具

Python词频统计终极指南&#xff1a;字典与排序的完美结合 import re from collections import defaultdictdef word_frequency_analysis(file_path, top_n10):"""完整的词频统计解决方案:param file_path: 文本文件路径:param top_n: 显示前N个高频词:return:…...

面试准备——Java理论高级【笔试,面试的核心重点】

集合框架 Java集合框架是面试中的重中之重&#xff0c;尤其是对List、Set、Map的实现类及其底层原理的考察。 1. List ArrayList&#xff1a; 底层是动态数组&#xff0c;支持随机访问&#xff08;通过索引&#xff09;&#xff0c;时间复杂度为O(1)。插入和删除元素时&#…...

Docker 部署 verdaccio 搭建 npm 私服

一、镜像获取 # 获取 verdaccio 镜像 docker pull verdaccio/verdaccio 二、修改配置文件 cd /wwwroot/opt/docker/verdaccio/conf vim config.yaml config.yaml 配置文件如下&#xff0c;可以根据自己的需要进行修改 # # This is the default configuration file. It all…...

每日一题--数组中只出现一次的两个数字

数组中只出现一次的两个数字 题目描述数据范围提示 示例示例1示例2 题解解题思路位运算方法步骤&#xff1a; 代码实现代码解析时间与空间复杂度按位与操作获取最小位1的原理为什么选择最低有效的 1 位而不是其他位&#xff1f; 题目描述 一个整型数组里除了两个数字只出现一次…...

蓝耘智算平台与DeepSeek R1模型:推动深度学习发展

公主请阅 前言何为DeepSeek R1DeepSeek R1 的特点DeepSeek R1 的应用领域DeepSeek R1 与其他模型的对比 何为蓝耘智算平台使用蓝耘智算平台深度使用DeepSeek R1代码解释&#xff1a;处理示例输入&#xff1a;输出结果&#xff1a; 前言 在深度学习领域&#xff0c;创新迭代日新…...

数据中台是什么?:架构演进、业务整合、方向演进

文章目录 1. 引言2. 数据中台的概念与沿革2.1 概念定义2.2 历史沿革 3. 数据中台的架构组成与关键技术要素解析3.1 架构组成3.2 关键技术要素 4. 数据中台与其他平台的对比详细解析 5. 综合案例&#xff1a;金融行业数据中台落地实践5.1 背景5.2 解决方案5.3 成果与价值 6. 方向…...

告别2023~2024

时间过得真快&#xff0c;距离上次写作2年多了。2023年&#xff5e;2024年的这两年时光里经历太多人生大事&#xff1a; 房贷&#xff0c;提前还贷买车&#xff0c;全款拿下租房搬家媳妇怀孕&#xff0c;独自照顾&#xff0c;……老人离世开盲盒喜提千金&#xff0c;百岁宴&am…...

PMO项目管理规范标准

这份文档是一份关于 PMO 项目管理规范标准的 V3.0 版本。以下是该文档的主要内容&#xff1a; 1. 立项管理 - 立项标准、级别划分和管理&#xff1a;定义了立项管理的标准、级别划分和管理&#xff0c;包括立项的审批流程、产品可行性分析、立项建议书、产品需求文档等。 - 立项…...

通过类加载和初始化的一些题目理解Java类加载过程

通过题目重点理解&#xff1a;Class加载流程和运行时区域 目录 子类和父类static变量父子类加载顺序2class.forName初始化 子类和父类static变量 class Parent {static int a 1;static int b 2;static int c;static {c 3;System.out.println("parent static block&quo…...

【人工智能】解码语言之谜:使用Python构建神经机器翻译系统

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 神经机器翻译(NMT)是近年来机器翻译领域的一项重大突破。它利用深度学习模型,特别是循环神经网络(RNN)和Transformer网络,以端到端的…...

瑞芯微 Rockchip 系列 RK3588 主流深度学习框架模型转成 rknn 模型教程

前言 在瑞芯微 Rockchip 芯片上进行 NPU 推理&#xff0c;需要先将模型文件转换成 rknn 模型文件&#xff0c;才能执行各种推理任务。本文将介绍如何安装各种工具&#xff0c;并最终实现将各种深度学习框架的模型文件转换成 rknn 文件。 本教程不仅适合 RK3588 平台&#xff…...

51单片机俄罗斯方块计分函数

/************************************************************************************************************** * 名称&#xff1a;scoring * 功能&#xff1a;计分 * 参数&#xff1a;NULL * 返回&#xff1a;NULL * 备注&#xff1a;采用非阻塞延时 ****************…...

C++线程池

使用线程情况比较频繁的地方&#xff0c;由于线程的创建及销毁都会产生对资源的占用及性能的损耗。为了优化性能&#xff0c;提升效率&#xff0c;在这种场景中&#xff0c;就应该使用线程池来处理任务。 线程池创建的关键点&#xff1a; 装载线程的容器&#xff0c;在C中使用…...