哈希动态规划dp_5
一.哈希
哈希(Hashing)是计算机科学中一种非常重要的技术,用于将输入的数据映射到固定大小的值(哈希值)上。哈希算法和哈希数据结构广泛应用于各种领域,包括数据查找、加密、缓存、数据库索引等。我们来详细讨论一下与哈希相关的算法和数据结构,以及如何进行优化。
1. 哈希算法
哈希算法的作用是根据输入的元素,计算出一个固定长度的哈希值(通常是一个整数或字符串),这个哈希值通常用于唯一标识输入。常见的哈希算法有以下几种:
1.1 MD5 (Message Digest Algorithm 5)
- 用途:MD5 是一个广泛使用的哈希算法,通常用于文件的完整性校验,密码存储等。它将任意长度的输入转换为128位的哈希值。
- 缺点:MD5 已被发现存在碰撞(两个不同的输入有相同的哈希值)问题,因此在安全性要求高的场景下已经不推荐使用。
1.2 SHA系列(Secure Hash Algorithm)
- 用途:SHA 是一种更安全的哈希算法系列。SHA-1 生成160位的哈希值,而 SHA-2 和 SHA-3 分别生成256位或更大的哈希值。
- SHA-1:不再推荐使用,已被证明存在碰撞漏洞。
- SHA-256:广泛用于密码学应用,区块链(如比特币)中也使用了 SHA-256 算法。
- SHA-3:更为先进和安全,与 SHA-2 体系不同,采用了 Keccak(凯-克)算法。
1.3 CRC32(Cyclic Redundancy Check)
- 用途:CRC32 是一个广泛用于网络传输和存储的哈希算法,用于检验数据的完整性,常见于以太网协议和文件校验。
- 特点:效率高,但安全性差,适合用于错误检测,而不适合用于密码学应用。
1.4 HMAC (Hash-based Message Authentication Code)
- 用途:HMAC 是基于哈希的消息认证码,结合了哈希算法和密钥,用于消息的完整性和身份认证。
- 常用哈希算法:通常与 SHA-1 或 SHA-256 等哈希算法结合使用。
1.5 哈希碰撞与加盐
- 碰撞:哈希算法的目标是将不同的输入映射到唯一的哈希值。然而,由于输入空间大于哈希值空间,发生哈希碰撞是不可避免的。碰撞会导致两个不同的输入产生相同的哈希值。
- 加盐:为了解决哈希碰撞问题,在加密哈希中引入“盐”(salt),它是一个随机生成的值,会与原始输入一起进行哈希处理,以增加安全性。
1.6 布隆过滤器(Bloom Filter)
- 用途:布隆过滤器是一种空间效率非常高的数据结构,用于判断某个元素是否存在于集合中。布隆过滤器存在误报(可能判定元素存在但实际上不存在),但不会漏报。
- 原理:通过多个哈希函数将元素映射到一个位数组中,查询时检查多个位置的值是否为1来判断元素是否存在。
- 优化:减少哈希函数数量与位数组大小的平衡,调整误差率与空间消耗的关系。
2. 哈希数据结构
哈希数据结构使用哈希函数将数据映射到一个表格中,使得查找、插入、删除等操作可以在常数时间内完成。常见的哈希数据结构有:
2.1 哈希表(Hash Table)
- 用途:哈希表是一种键值对存储结构,能够高效地进行查找、插入和删除。哈希表的性能大多数情况下接近 O(1),但最坏情况下可能退化为 O(n)。
- 原理:使用哈希函数将键映射到数组的索引,存储值。冲突解决方法有:
- 链式法:在同一个哈希桶(数组索引位置)中存储一个链表,哈希冲突的数据通过链表连接在一起。
- 开放地址法:当发生哈希冲突时,哈希表会寻找下一个空位置进行存储。
优化:
- 动态扩容:当哈希表的负载因子(元素数量与表大小的比例)超过一定阈值时,哈希表会扩展,避免性能退化。
- 哈希函数优化:选择适当的哈希函数,尽量减少哈希冲突,提高哈希表的查询效率。
-
链式法
#include <iostream> #include <vector> #include <list> #include <iterator>using namespace std;class HashTable { private:// 哈希表的大小static const int TABLE_SIZE = 10;// 哈希表存储数据的数组(数组的每个位置都是一个链表)vector<list<pair<int, string>>> table;// 哈希函数,将键映射到表的索引int hashFunction(int key) {return key % TABLE_SIZE;}public:HashTable() {table.resize(TABLE_SIZE);}// 插入键值对void insert(int key, const string& value) {int index = hashFunction(key); // 获取该键的哈希值对应的索引// 在对应的链表中插入键值对table[index].push_back(make_pair(key, value));}// 查找键对应的值string find(int key) {int index = hashFunction(key); // 获取该键的哈希值对应的索引// 遍历链表,查找该键是否存在for (auto& p : table[index]) {if (p.first == key) {return p.second;}}return "Not found"; // 没有找到返回“Not found”}// 删除键值对void remove(int key) {int index = hashFunction(key); // 获取该键的哈希值对应的索引// 遍历链表,查找该键并删除for (auto it = table[index].begin(); it != table[index].end(); ++it) {if (it->first == key) {table[index].erase(it);return;}}}// 打印哈希表void display() {for (int i = 0; i < TABLE_SIZE; i++) {cout << "Index " << i << ": ";for (auto& p : table[i]) {cout << "[" << p.first << ": " << p.second << "] ";}cout << endl;}} };int main() {HashTable ht;ht.insert(1, "One");ht.insert(2, "Two");ht.insert(12, "Twelve");ht.insert(22, "Twenty Two");ht.display();cout << "Find key 1: " << ht.find(1) << endl;cout << "Find key 12: " << ht.find(12) << endl;ht.remove(2);cout << "After removing key 2:" << endl;ht.display();return 0; }
-
开放地址
-
#include <iostream> #include <vector> #include <string> #include <cmath>using namespace std;class HashTable { private:static const int TABLE_SIZE = 10;vector<pair<int, string>> table;// 哈希函数int hashFunction(int key) {return key % TABLE_SIZE;}public:HashTable() {table.resize(TABLE_SIZE, make_pair(-1, ""));}// 插入操作void insert(int key, const string& value) {int index = hashFunction(key);int originalIndex = index;// 线性探查查找下一个空位置while (table[index].first != -1 && table[index].first != key) {index = (index + 1) % TABLE_SIZE;if (index == originalIndex) {cout << "HashTable is full!" << endl;return;}}table[index] = make_pair(key, value);}// 查找操作string find(int key) {int index = hashFunction(key);int originalIndex = index;while (table[index].first != -1) {if (table[index].first == key) {return table[index].second;}index = (index + 1) % TABLE_SIZE;if (index == originalIndex) {break;}}return "Not found";}// 删除操作void remove(int key) {int index = hashFunction(key);int originalIndex = index;while (table[index].first != -1) {if (table[index].first == key) {table[index] = make_pair(-1, "");return;}index = (index + 1) % TABLE_SIZE;if (index == originalIndex) {break;}}}// 打印哈希表void display() {for (int i = 0; i < TABLE_SIZE; i++) {if (table[i].first != -1) {cout << "[" << table[i].first << ": " << table[i].second << "] ";} else {cout << "[Empty] ";}}cout << endl;} };int main() {HashTable ht;ht.insert(1, "One");ht.insert(2, "Two");ht.insert(12, "Twelve");ht.insert(22, "Twenty Two");ht.display();cout << "Find key 1: " << ht.find(1) << endl;cout << "Find key 12: " << ht.find(12) << endl;ht.remove(2);cout << "After removing key 2:" << endl;ht.display();return 0; }
2.2 哈希集合(Hash Set)
- 用途:哈希集合是一种不包含重复元素的数据结构,它是哈希表的一个变种,仅存储键,不存储值。常见于需要判断元素是否存在集合中的场景。
- 原理:通过哈希表实现,键即元素,值可以忽略。
2.3 哈希映射(Hash Map)
- 用途:哈希映射(或字典、散列表)是键值对(key-value)存储的数据结构,支持高效的查找、插入和删除。
- 原理:通过哈希表实现,键通过哈希函数映射到数组索引,值存储在对应位置。
优化:
- 负载因子控制:负载因子是哈希表中存储元素的个数与数组大小的比例。合理调整负载因子,避免哈希表频繁扩容。
- 哈希函数的选择:一个好的哈希函数应该使得输入元素均匀分布,减少哈希冲突,确保哈希表的查询效率。
3. 哈希算法与数据结构的优化
3.1 优化哈希函数
- 选择合适的哈希函数:一个好的哈希函数能够保证哈希值均匀分布,从而减少冲突。常用的哈希函数有:
- MurmurHash:一种高效、快速的非加密哈希函数。
- FNV-1a:一种简单且效率较高的哈希函数。
- CRC32:用于校验和的哈希函数。
3.2 解决哈希冲突
- 链式哈希法:每个哈希桶存储一个链表,插入冲突元素时,将其添加到链表中。虽然查询最坏情况下是 O(n),但通常情况下冲突较少,性能良好。
- 开放地址法:当发生哈希冲突时,按照某种探查方式寻找下一个空槽进行存储。常见的探查方式包括线性探查、二次探查和双重哈希。
3.3 负载因子与扩容
- 负载因子:是哈希表中元素个数与表大小的比例。负载因子过大会导致冲突频发,负载因子过小会浪费空间。一般情况下,负载因子控制在 0.75 左右。
- 动态扩容:当负载因子超过一定阈值时,哈希表需要扩展。扩容时,通常需要重新计算每个元素的哈希值并将其重新分布到新的哈希表中。
3.4 空间优化
- 布隆过滤器:对于需要存储大量数据且查询操作为 "是否存在" 的应用场景,布隆过滤器提供了一种高效的空间优化方法。
- 哈希压缩:对于哈希值过长的情况,可以使用哈希压缩算法将其映射到较小的空间,减少存储开销。
3.5 并行哈希
- 并行计算哈希值:对于大数据集,使用并行计算哈希值可以加速哈希操作。比如,在多核 CPU 上并行计算多个数据块的哈希值。
总结
哈希是计算机科学中非常重要的技术,它通过将数据映射到固定大小的哈希值来实现高效的查找、插入、删除等操作。哈希算法与哈希数据结构的优化主要集中在减少哈希冲突、优化哈希函数、控制负载因子和空间消耗等方面。常见的哈希数据结构包括哈希表、哈希集合和哈希映射,而优化的方式包括合理选择哈希函数、使用不同的冲突解决策略以及空间和并行计算的优化。
二.动态规划dp
1.
思路:模拟整个买卖股票的过程
/*
模拟买卖股票的过程每次都做出最优解
*/
class Solution {
public:int maxProfit(vector<int>& prices) {vector<vector<int>>dp(prices.size(),vector<int>(5,0));dp[0][0] = 0;dp[0][1] = -prices[0];dp[0][2] = 0;dp[0][3] = -prices[0];dp[0][4] = 0;for(int i = 1;i < prices.size(); i++){dp[i][1] = max(dp[i - 1][1],dp[i - 1][0] - prices[i]); // 第一次买入dp[i][2] = max(dp[i - 1][2],dp[i - 1][1] + prices[i]); // 第一次卖出dp[i][3] = max(dp[i - 1][3],dp[i - 1][2] - prices[i]); // 第二次买入dp[i][4] = max(dp[i - 1][4],dp[i - 1][3] + prices[i]); // 第二次卖出}return dp[prices.size()-1][4];}
};
题解进阶解法
class Solution {
public:int maxProfit(vector<int>& prices) {const int k = 2;vector<array<int, 2>> f(k + 2, {INT_MIN / 2, INT_MIN / 2});for (int j = 1; j <= k + 1; j++) {f[j][0] = 0;}for (int p : prices) {for (int j = k + 1; j > 0; j--) {f[j][0] = max(f[j][0], f[j][1] + p);f[j][1] = max(f[j][1], f[j - 1][0] - p);}}return f[k + 1][0];}
};
三.题
1.
思路:暴力枚举即可
#include<iostream>
#include<vector>using namespace std;int main() {string s;cin >> s;vector<int> a, b, c;for (int i = 0; i < s.size(); i++) {if (s[i] == 'A') {a.push_back(i);}else if (s[i] == 'B') {b.push_back(i);}else if (s[i] == 'C') {c.push_back(i);}}int count = 0;for (int i : a) {for (int j : b) {if (j <= i) continue;for (int k : c) {if (k <= j) continue;if (j - i == k - j) {count++;}}}}cout << count << endl;return 0;
}
2.
思路:用哈希映射来存储地图的边,记录下自连的边,同时把记录下相同小点到大点的边的个数然后统计所有这样的多余的边,输出自连的边数加所有统计多余的边数
#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>using namespace std;int main() {int n, m;cin >> n >> m;int cnt = 0;unordered_map<int, unordered_map<int, int>> coun;for (int i = 0; i < m; i++) {int u, v;cin >> u >> v;if (u == v) {cnt++;continue;}if (u > v) swap(u, v);coun[u][v]++;}int del = 0;for (const auto& pair1 : coun) {for (const auto& pair2 : pair1.second) {int count = pair2.second;if (count > 1) {del += (count - 1);}}}int sum = cnt + del;cout << sum << endl;return 0;
}
3.
思路:思维题就2种情况要不有相同的就是1否则就是原长,也可以用头文件栈来模拟过程求解
#include <iostream>
#include<vector>
#include<algorithm>
#include<stack>using namespace std;
using ll = long long;int main() {ll t; cin >> t; while (t--) {string str;cin >> str;int key = 1;for (ll i = 1; i < str.size(); i++) {if (str[i - 1] == str[i]) {cout <<"1" << endl;key = 0;break;}}if (key == 0)continue;cout << str.size() << endl;}return 0;
}
4.
思路:思维题,用本子随便写找规律,相邻的俩个数可以输出yes,还有就是看
n = 99 , x = 18,y = 1
n = 999 , x = 27,y = 1
n = 9999, x = 36,y = 1
这就是规律
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
#include <cstring>
using namespace std;int main() {int t;cin >> t;while (t--) {int x, y;cin >> x >> y;if (x == y - 1) {cout << "Yes" << endl;continue;}if (x > y) {int c = x - y;if ((c + 1) % 9 == 0)cout << "Yes" << endl;else cout << "No" << endl;continue;}else cout << "No" << endl;}return 0;
}
5.算法竞赛进阶指南
思路:dfs
#include <iostream>
#include <algorithm>
#include<stack>
#include <climits>
using namespace std;const int N=7;
int n, k;
int arr[N];void dfs(int x) {if (x > n) {for (int i = 1; i <= n; i++) {cout << arr[i] << " ";}cout << endl;return;}for (int i = 1; i <= k; i++) {arr[x] = i;dfs(x + 1);}
}
int main() {cin >> n >> k;dfs(1);return 0;
}
相关文章:
哈希动态规划dp_5
一.哈希 哈希(Hashing)是计算机科学中一种非常重要的技术,用于将输入的数据映射到固定大小的值(哈希值)上。哈希算法和哈希数据结构广泛应用于各种领域,包括数据查找、加密、缓存、数据库索引等。我们来详…...
电商分布式场景中如何保证数据库与缓存的一致性?实战方案与Java代码详解
文章目录 一、缓存一致性问题的本质写后读不一致:更新数据库后,缓存未及时失效并发读写竞争:多个线程同时修改同一数据缓存与数据库事务不同步:部分成功导致数据错乱 二、5大核心解决方案与代码实现方案1:延迟双删策略…...
DeepSeek-R1 大模型本地部署指南
文章目录 一、系统要求硬件要求软件环境 二、部署流程1. 环境准备2. 模型获取3. 推理代码配置4. 启动推理服务 三、优化方案1. 显存优化技术2. 性能加速方案 四、部署验证健康检查脚本预期输出特征 五、常见问题解决1. CUDA内存不足2. 分词器警告处理3. 多GPU部署 六、安全合规…...
【数据结构】 栈和队列
在计算机科学的世界里,数据结构是构建高效算法的基础。栈(Stack)和队列(Queue)作为两种基本且重要的数据结构,在软件开发、算法设计等众多领域都有着广泛的应用。今天,我们就来深入探讨一下栈和…...
用Python构建Mad Libs经典文字游戏
前言 Mad Libs 是一种经典的文字游戏,其中一名玩家向其他玩家询问各种词汇,如名词、动词、形容词等,而不提供任何上下文。然后将这些提示词插入到一个充满空白的故事模板中,从而创造出一个搞笑或荒谬的故事,供玩家大声朗读以获取乐趣。 自1950年代发明以来,Mad Libs 一…...
ReactiveSwift模拟登录功能
通过使用ReactiveSwift模拟一个简单的登录功能,该功能如下要求: 账号不能为空密码必须大于6位 登录按钮方可点击 LoginViewModel: import ReactiveSwiftclass LoginViewModel {// 创建两个信号let userName MutableProperty<String&g…...
亲测有效!使用Ollama本地部署DeepSeekR1模型,指定目录安装并实现可视化聊天与接口调用
文章目录 一、引言二、准备工作(Ollama 工具介绍与下载)2.1 Ollama介绍2.2 Ollama安装 三、指定目录安装 DeepSeek R1四、Chatbox 可视化聊天搭建4.1 Chatbox下载安装4.2 关联 DeepSeek R1 与 Chatbox 的步骤 五、使用 Ollama 调用 DeepSeek 接口5.1 请求…...
【第11章:生成式AI与创意应用—11.3 AI艺术创作的实现与案例分析:DeepArt、GANBreeder等】
凌晨三点的画室里,数字艺术家小美盯着屏幕上的GANBreeder界面——她将梵高的《星月夜》与显微镜下的癌细胞切片图进行混合,生成的新图像在柏林电子艺术展上引发轰动。这场由算法驱动的艺术革命,正在重写人类对创造力的定义。 一、机器视觉的觉醒之路 1.1 数字艺术的三次浪…...
MySQL的基本使用
MySQL 是一个强大且广泛使用的开源关系型数据库管理系统,适用于各种规模的应用程序。无论是初学者还是经验丰富的开发者,掌握 MySQL 的基本操作都是至关重要的。本文将带你了解 MySQL 的基础概念,并通过实例介绍如何执行一些常见的数据库操作…...
WEB安全--SQL注入--PDO与绕过
一、PDO介绍: 1.1、原理: PDO支持使用预处理语句(Prepared Statements),这可以有效防止SQL注入攻击。预处理语句将SQL语句与数据分开处理,使得用户输入的数据始终作为参数传递给数据库,而不会直…...
微信小程序image组件mode属性详解
今天学习微信小程序开发的image组件,mode属性的属性值不少,一开始有点整不明白。后来从网上下载了一张图片,把每个属性都试验了一番,总算明白了。现总结归纳如下: 1.使用scaleToFill。这是mode的默认值,sc…...
大模型炼丹基础--GPU内存计算
一、摘要 选择合适的GPU对成本和效率都至关重要,合理分析GPU 二、硬件计算基础 1 个字节可以表示零(00000000)和 255(11111111)之间的数字 模型参数常用的数据类型如下: float(32 位浮点&a…...
istio入门篇(一)
一、背景 一直以来“微服务”都是一个热门的词汇,在各种技术文章、大会上,关于微服务的讨论和主题都很多。对于基于 Dubbo、SpringCloud 技术体系的微服务架构,已经相当成熟并被大家所知晓,但伴随着互联网场景的复杂度提升、业务…...
Ubuntu 24.04.1 LTS 本地部署 DeepSeek 私有化知识库
文章目录 前言工具介绍与作用工具的关联与协同工作必要性分析 1、DeepSeek 简介1.1、DeepSeek-R1 硬件要求 2、Linux 环境说明2.1、最小部署(Ollama DeepSeek)2.1.1、扩展(非必须) - Ollama 后台运行、开机自启: 2.2、…...
沃德校园助手系统php+uniapp
一款基于FastAdminThinkPHPUniapp开发的为校园团队提供全套的技术系统及运营的方案(目前仅适配微信小程序),可以更好的帮助你打造自己的线上助手平台。成本低,见效快。各种场景都可以自主选择服务。 更新日志 V1.2.1小程序需要更…...
Visual Studio Code使用ai大模型编成
1、在Visual Studio Code搜索安装roo code 2、去https://openrouter.ai/settings/keys官网申请个免费的配置使用...
工业软件测试方案
一、方案概述 本测试方案致力于全面、系统地评估工业仿真软件的综合性能,涵盖性能表现、功能完整性以及用户体验层面的易用性。同时,将其与行业内广泛应用的MATLAB进行深入的对比分析,旨在为用户提供极具价值的参考依据,助力其在…...
红队视角出发的k8s敏感信息收集——Kubernetes API 扩展与未授权访问
针对 Kubernetes API 扩展与未授权访问 的详细攻击视角分析,聚焦 Custom Resource Definitions (CRD) 和 Aggregated API Servers 的潜在攻击面及利用方法: 攻击链示例 1. 攻击者通过 ServiceAccount Token 访问集群 → 2. 枚举 CRD 发现数据库配…...
一种 SQL Server 数据库恢复方案:解密、恢复并导出 MDF/NDF/BAK文件
方案特色 本方案可以轻松恢复和导出SQL数据库:MDF、NDF 和 BAK 文件。 恢复和导出SQL数据库:主(MDF),辅助(NDF)和备份(BAK)文件分析 SQL Server LOG 数据库事务日志将 …...
Pygame中自定义事件处理的方法2-1
1 Pygame事件处理流程 Pygame中的事件处理流程如图1所示。 图1 Pygame中事件处理流程 系统事件包括鼠标事件和键盘事件等,当用户点击了鼠标或者键盘时,这些事件会自动被放入系统的事件队列中。用户自定义事件需要通过代码才能被放入事件队列中。Pygame…...
langchain学习笔记之消息存储在内存中的实现方法
langchain学习笔记之消息存储在内存中的实现方法 引言背景消息存储在内存的实现方法消息完整存储:完整代码 引言 本节将介绍 langchain \text{langchain} langchain将历史消息存储在内存中的实现方法。 背景 在与大模型交互过程中,经常出现消息管理方…...
HarmonyOS组件之Tabs
Tabs 1.1概念 Tabs 视图切换容器,通过相适应的页签进行视图页面的切换的容器组件每一个页签对应一个内容视图Tabs拥有一种唯一的子集元素TabContent 1.2子组件 不支持自定义组件为子组件,仅可包含子组件TabContent,以及渲染控制类型 if/e…...
【C++】基础入门(详解)
🌟 Hello,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 目录 输入&输出 缺省参数(默认参数) 函数重载 引用 概念及定义 特性及使用 const引用 与指针的关系 内联inline和nullptr in…...
bps是什么意思
本文来自DeepSeek "bps" 是 "bits per second" 的缩写,表示每秒传输的比特数,用于衡量数据传输速率。1 bps 即每秒传输 1 比特。 常见单位 bps:比特每秒 Kbps:千比特每秒(1 Kbps 1,000 bps&am…...
OceanBase使用ob-loader-dumper导出表报ORA-00600
执行下面的语句导出表报错,同样的语句之前都没有报错。 ob-loader-dumper-4.2.8-RELEASE/bin/obdumper -h xxx.xxx.xxx.xxx -P 2883 -p 密码 --column-splitter| --no-sys-t gzuat_ss#ob8(集群) -D 数据库名 --cut --table teacher --no-ne…...
JUC并发总结一
大纲 1.Java集合包源码 2.Thread源码分析 3.volatile关键字的原理 4.Java内存模型JMM 5.JMM如何处理并发中的原子性可见性有序性 6.volatile如何保证可见性 7.volatile的原理(Lock前缀指令 + 内存屏障) 8.双重检查单例模式的volatile优化 9.synchronized关键字的原理 …...
hive:分区>>静态分区,动态分区,混合分区
分区表 使用场景:数据量庞大且经常用来做查询的表 特点:将数据分别存储到不同的目录里 优点:避免全盘扫描,提高查询效率 分区的类型 它们的默认值分别是: false, strict, 要求至少有一个静态分区列,而 nonstr…...
深入解析PID控制算法:从理论到实践的完整指南
前言 大家好,今天我们介绍一下经典控制理论中的PID控制算法,并着重讲解该算法的编码实现,为实现后续的倒立摆样例内容做准备。 众所周知,掌握了 PID ,就相当于进入了控制工程的大门,也能为更高阶的控制理论…...
linux--关于GCC、动态库静态库
gcc和g的异同 他们是不同的编译器, 在linux中,生成可执行文件不像和windows一样。 linux中是以**.out作为可执行文件**的 无论是什么系统,生成可执行文件分为4步: 预处理–>编译–>汇编–>链接。 从.c/.cpp–>.i文件…...
matlab汽车动力学半车垂向振动模型
1、内容简介 matlab141-半车垂向振动模型 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
Pygame中自定义事件处理的方法2-2
在《Pygame中自定义事件处理的方法2-1》中提到了处理自定义事件的方法。通过处理自定义事件,可以实现动画等效果。 1 弹跳小球程序 通过处理自定义事件,可以实现弹跳小球程序,如图1所示。 图1 弹跳小球程序 2 弹跳小球程序原理 实现弹跳小…...
B. Longest Divisors Interval
time limit per test 2 seconds memory limit per test 256 megabytes Given a positive integer nn, find the maximum size of an interval [l,r][l,r] of positive integers such that, for every ii in the interval (i.e., l≤i≤rl≤i≤r), nn is a multiple of ii. …...
什么是服务的雪崩、熔断、降级的解释以及Hystrix和Sentinel服务熔断器的解释、比较
1.什么是服务雪崩? 定义:在微服务中,假如一个或者多个服务出现故障,如果这时候,依赖的服务还在不断发起请求,或者重试,那么这些请求的压力会不断在下游堆积,导致下游服务的负载急剧…...
从驾驶员到智能驾驶:汽车智能化进程中的控制与仿真技术
在汽车技术持续演进的历程中,人类驾驶员始终是一个极具研究价值的智能控制系统“原型”。驾驶员通过视觉感知、行为决策与操作执行的闭环控制,将复杂的驾驶任务转化为车辆的实际动作,同时动态适应道路环境的变化。这一过程不仅体现了高度的自…...
mysql和minio
在现代应用架构中,Word 文档、PPT 等文件通常存储在对象存储服务(如 MinIO)中,而不是直接存储在关系型数据库(如 MySQL)中。以下是具体的分工和原因: 为什么选择对象存储(如 MinIO&a…...
java练习(24)
PS:练习来自力扣 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意&am…...
Android的Activity生命周期知识点总结,详情
一. Activity生命周期 1.1 返回栈知识点 二. Activity状态 2.1 启动状态 2.2 运行状态 2.3 暂停状态 2.4 停止状态 2.5 销毁状态 三. Activity生存期 3.1 回调方法 3.2 生存期 四. 体验Activity的生命周期 五. Activity被回收办法 引言: 掌握Acti…...
STM32——HAL库开发笔记19(串口中断接收实验)(参考来源:b站铁头山羊)
本实验,我们以中断的方式使得串口发送数据控制LED的闪烁速度,发送1,慢闪;发送2,速度正常;发送3,快闪。 一、电路连接图 二、实现思路&CubeMx配置 1、实现控制LED的闪烁速度 uint32_t bli…...
基于腾讯云TI-ONE 训练平台快速部署和体验 DeepSeek 系列模型
引言 在前两篇文章中,我们通过腾讯云的HAI部署了DeepSeek-R1,并基于此进行了一系列实践。 腾讯云HAI DeepSeek 腾讯云AI代码助手 :零门槛打造AI代码审计环境 基于腾讯云HAI DeepSeek 快速开发中医辅助问诊系统 这些尝试不仅帮助我们理解…...
python的类装饰器
装饰器不仅可以用于函数,还能作用于类。将装饰器应用于类时,其核心原理与作用于函数类似,都是通过接收一个类作为输入,然后返回一个新的类或者修改后的原类,以此来为类添加额外的功能 简单的类装饰器 def add_method…...
C++17中的LegacyContiguousIterator(连续迭代器)
文章目录 特点内存连续性与指针的兼容性更高的性能 适用场景与C接口交互高性能计算 支持连续迭代器的容器示例代码性能优势缓存局部性指针算术优化 注意事项总结 在C17标准里,LegacyContiguousIterator(连续迭代器)是一类特殊的迭代器。它不仅…...
Linux-文件IO
1.open函数 【1】基本概念和使用 #include <fcntl.h> int open(const char *pathname,int flags); int open(const char *pathname,int flags,mode_t mode); 功能: 打开或创建文件 参数: pathname //打开的文件名 f…...
DeepSeek-R1 + Cherry Studio 本地部署打造个人 AI 知识库
ChatGPT 爆火的时候,我心里就燃起了一个想法:打造一个专属于自己的AI知识库,它就像我的第二大脑一样,能记住我生活里的点点滴滴。 我随口一问“去年5月我做了什么”,它不仅能精准找到记录,还能帮我回忆起那…...
《红色警戒:兵临城下》 游戏软件安装步骤与百度网盘链接
软件简介: 《红色警戒:兵临城下》(Command & Conquer: Red Alert)是一款经典的即时战略游戏,由Westwood Studios开发,于1996年首次发行。它是《命令与征服》系列的衍生作品,以其独特的世界…...
25/2/16 <算法笔记> DirectPose
DirectPose 是一种直接从图像中预测物体的 6DoF(位姿:6 Degrees of Freedom)姿态 的方法,包括平移和平面旋转。它在目标检测、机器人视觉、增强现实(AR)和自动驾驶等领域中具有广泛应用。相比于传统的位姿估…...
第32周:文献阅读
目录 摘要 Abstract 文献阅读 问题引入 研究问题 研究意义 研究方法 集成方法 随机森林(RF) 支持向量机(SVM) 简单循环神经网络(SimpleRNN) 长短期记忆网络(LSTM) 创…...
Ollama 开发指南
文章来源:开发指南 - Ollama中文文档|Ollama官方文档 安装先决条件: GOC/C 编译器,例如 macOS 上的 Clang、TDM-GCC (Windows amd64) 或 llvm-mingw (Windows arm64)、Linux 上的 GCC/Clang。…...
【deepseek与chatGPT辩论】辩论题: “人工智能是否应当具备自主决策能力?”
探讨辩论题 这个提案涉及创建一个精确的辩论题目,旨在测试deepseek的应答能力。 创建辩论题目 提议设计一个辩论题目以测试deepseek的应答能力。希望这个题目具有挑战性并能够测量其回应质量。 好的,来一道适合深度学习的辩论题: 辩论题&…...
神经网络常见激活函数 9-CELU函数
文章目录 CELU函数导函数函数和导函数图像优缺点pytorch中的CELU函数tensorflow 中的CELU函数 CELU 连续可微指数线性单元:CELU(Continuously Differentiable Exponential Linear Unit),是一种连续可导的激活函数,结合了 ELU 和 …...
JavaScript系列(74)--反射API详解
JavaScript反射API详解 🔍 JavaScript的反射API提供了强大的运行时检查和操作对象的能力。本文将深入探讨Reflect API的原理、应用场景和最佳实践。 反射基础 🌟 💡 小知识:反射是指程序在运行时能够检查、修改自身结构和行为的…...