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

哈希表企业应用-DNA的字符串检测

DNA的字符串检测-引言

若干年后, ikun DNA 检测部成立,专门对 这些ikun的解析检测 突然发现已经完全控制不了 因为学生已经会了 而且是太会了
所以DNA采用 以下视频测试:
ikun必进曲
ikun必经曲
ikun必阶曲

如何感受到了吧!,如果你现在唱跳并且还Rap 还有打篮球 还有铁山靠 那么你就是名副其实的真ikun 为ikun发光发亮,那些假的ikun 只会说:食不食油饼,香精煎鱼.拿什么荔枝 绿尸寒警告,看到这各位想必ikun已经回应那些 黑我们坤坤的人曾经说出食不食油饼,香精煎鱼.拿什么荔枝这些黑粉们你们知道ikun 有多努力? 为了创作 不惜牺牲于自身.emmmm这些你们知道? 他们只不过i kun 而已你们这些小黑子有什么权利说我们ikun ! “闭嘴” DNA检测部门 :他们可是贡献了你们坤坤的"知名度"跟他们比 “你们这些只会喊和叫和骂还有什么” ,“我不信” DNA部门:治不了你 带走 改造DNA 变成名副其实的"黑子DNA部门! " 哈哈, 此时应该插入哦呼w<敢 杀 我 的 马?!>那些魔性的笑声

DNA的字符串检测-原理

所谓的小黑子DNA 检测部门到是有可能00后下一代可能危害巨大必须加以改造 不然老是想着"唱跳并且还Rap 还有打篮球 “危害社会 什么的 当然这也没什么一些家长认为"而且还培养爱运动的习惯…唱功 练习 肺活量练习”
ikun服务部:免费为ikun们 DNA检测 于是乎上3亿人统一归来 大喊为ikun助力 怎么检测有"真ikun"成分?

突然检测组陷入了谜团之中…之前不检测出有种真ikun成分 分别为: “ADDR”,“ABBR”,“BADR”,“BCEE”,“CBEC”,“CRAB”,“DACD”,“DDRC” 这些DNA序列
如何快速匹配真ikun 的DNA?
以下代码 传统方式 测试

#include<iostream>
using namespace std;// ikun 基因库测试 类型:传统  
void  iKunGeneSrcLibTradiTest(void) {  // ikun 基因串长度 const int iKunGeneStrLen = 4;// ikun 基因源库,存储可能的基因串 ("ADDR","ABBR",->唱)  ("BADR","BCEE"-> 跳)  ("CBEC","CRAB"->Rap) ("DACD","DDRC" ->篮球)const char* iKunGeneSrcLib[8] = { "ADDR","ABBR","BADR","BCEE","CBEC","CRAB","DACD","DDRC" };  // 要匹配的基因串 const char* TRueIkunGene = "XADDRIKUNYYDS";// 匹配标志,默认falsebool ikunFlag = false;  // 遍历基因源库for (size_t i = 0; i < 8; i++){// 如果源库中的基因串与要匹配的基因串的前4个字符相同if (strncmp(TRueIkunGene + 1, iKunGeneSrcLib[i], iKunGeneStrLen)==0) {  // 设置匹配标志并结束遍历ikunFlag = true;break;}}// 如果匹配成功if (ikunFlag){  cout << "真ikun 不用质疑了" << endl;}else{cout << "小黑子 香精煎鱼?" << endl;}  }  int main(void) {   // 调用测试函数iKunGeneSrcLibTradiTest();   return 0;
}

ikun 服务部: 看着挺好用的,但不够高效 (还挺懂啊 ) 上亿人 等着呢 怎么办 突然来了一个原神+崩坏:星穹铁道 玩家说了一句: 让我来看看 (没错就是作者本人在这里插入图片描述,若干年后,还是一名不知名的程序员 看这挺老的 那可不谁没年轻过呢) emmmm 这段代码?,好像我觉得在CSDN平台看到过,而且好像是我写的,…
一堆废话后,唉我忘了我找找看(此时用的是虚拟键盘 和虚拟电脑 感觉用不习惯)…
找到了…emmm 一顿操作后,如下代码:

#include<iostream>
#include"HashTable.h"using namespace std;// ikun 基因库测试 类型:散列  
void  iKunGeneSrcLibHashiTest(void) {// 基因串长度const int iKunGeneStrLen = 4;  // 基因源库,存储可能的基因串 ("ADDR","ABBR",->唱)  ("BADR","BCEE"-> 跳)  ("CBEC","CRAB"->Rap) ("DACD","DDRC" ->篮球)const char* iKunGeneSrcLib[8] = { "ADDR","ABBR","BADR","BCEE","CBEC","CRAB","DACD","DDRC" };  // 要匹配的基因串const char* TRueIkunGeneSrc = "XCDDRIKUNYYDS"; // 创建哈希表HashTable iKunGeneSrcIndexLib;CreateHashTable(iKunGeneSrcIndexLib);// 将基因源库中的基因串插入哈希表for (size_t i = 0; i < 8; i++){HashTableInsert(iKunGeneSrcIndexLib, CreateHashValue(iKunGeneSrcLib[i], iKunGeneSrcLib[i]));}// 取要匹配基因串的前4个字符char TRueIkunGene[5];  strncpy_s(TRueIkunGene, TRueIkunGeneSrc + 1, iKunGeneStrLen);// 在哈希表中查找GetFindHashValue findValue = HashTableFind(iKunGeneSrcIndexLib, TRueIkunGene);// 如果找到,打印找到的基因,否则打印提示信息if (findValue.isExist){  cout << "真ikun 基因:" << findValue.value->value <<endl; }else {cout << "没有找到该基因 :" << TRueIkunGene << "  默认为小黑子基因" << endl; }  // 销毁哈希表HashTableDestroy(iKunGeneSrcIndexLib);  }int main(void) {iKunGeneSrcLibHashiTest();return 0;
}

搞定这下大规模数据没有问题了
emmm 给大家介绍所使用的哈希函数算法吧

// SDBM哈希函数 
const unsigned int SMBD_Hash(Key key) {  // 0x7FFFFFFF是int类型的最大值,用于取模运算,防止哈希值溢出const unsigned max = 0x7FFFFFFF;  // 初始化哈希值 unsigned int hash_code = 0;   // 遍历要计算哈希值的字符串 while (*key){    // 更新哈希值hash_code =    (*key++) + (hash_code << 6) + (hash_code << 16) - hash_code;  }// 对max取模,防止哈希值溢出 return hash_code & max;  }

我只说一个GetFindHashValue

//查找存在的HashValue  
struct GetFindHashValue{  //表示哈希值是否存在。 bool isExist;   //哈希值本身  HashValue *value;
};//哈希表查找算法
GetFindHashValue HashTableFind(const HashTable& HashTable, Key key) {  //获取哈希表的桶空间HashBucket BucketSpace = HashTable.BucketSpace;  //计算键key的哈希值,得到其在桶空间中的索引int HashIndex = Hash({ key }, HashTable);  //获取键key所在桶的头节点HashElement HashElementList = BucketSpace[HashIndex];  //跳过头节点,进入链表HashElementList = HashElementList->Next;  //遍历链表,查找键keywhile (HashElementList && cmp(HashElementList->MyValue.key,key)) {  HashElementList = HashElementList->Next;}//如果找到,HashElementList指向找到的节点,否则为nullptrHashValue* v = HashElementList != nullptr ? &HashElementList->MyValue : nullptr;GetFindHashValue result{};  //如果找到,设置相关字段,否则isExist为falseif (v) {  result.isExist = true;result.value = v;}  return result;  
}

没想到若干年后 还有ikun “鸡你太美”,“食不食油饼” ,“香精煎鱼”,“拿什么荔枝”,“绿尸寒警告"这一系列梗,还能存活至今属实牛逼,若一千年后,人们还知道该梗 那坤 存在的意义非常大,不仅仅变成"梗” 而是变成"热爱"在这里插入图片描述

相关文章:

哈希表企业应用-DNA的字符串检测

DNA的字符串检测-引言 若干年后, ikun DNA 检测部成立,专门对 这些ikun的解析检测 突然发现已经完全控制不了 因为学生已经会了 而且是太会了 所以DNA采用 以下视频测试: ikun必进曲 ikun必经曲 ikun必阶曲 如何感受到了吧!,如果你现在唱跳并且还Rap 还有打篮球 还有铁山靠 那…...

Kafka运维与监控

Kafka运维与监控 Kafka运维与监控一、简介二、运维1.安装和部署安装部署 2.优化参数配置配置文件高级配置分区和副本设置分区数量设置副本数量设置 网络参数调优传输机制设置连接数和缓冲区大小设置 消息压缩和传输设置消息压缩设置消息传输设置 磁盘设置和文件系统分区磁盘容量…...

【Redis—哨兵机制】

文章目录 概念哨兵机制如何工作的监控&#xff08;如何判断主节点真的故障了&#xff09;哪个哨兵进行主从故障转移&#xff1f;故障转移流程哨兵集群 概念 当进行主从复制时&#xff0c;如果主节点挂掉了&#xff0c;那么没有主节点来服务客户端的写操作请求了&#xff0c;也…...

MySQL学习笔记第七天

第07章单行函数 2. 数值函数 2.4 指数函数、对数函数 函数用法POW(x,y)&#xff0c;POWER(X,Y)返回x的y次方EXP(X)返回e的x次方&#xff0c;其中e是一个常数&#xff0c;2.718281828459045LN(X)&#xff0c;LOG(X)返回以e为底的X的对数&#xff0c;当x<0时&#xff0c;返…...

中级软件设计师备考---程序设计语言和法律法规知识

目录 需要掌握的程序语言特点法律法规知识---保护期限法律法规知识---知识产权人确定法律法规知识---侵权判定标准化基础知识 需要掌握的程序语言特点 Fortran语言&#xff1a;科学计算、执行效率高Pascal语言&#xff1a;为教学而开发的、表达能力强&#xff0c;演化出了Delp…...

Leetcode434. 字符串中的单词数

Every day a leetcode 题目来源&#xff1a;434. 字符串中的单词数 解法1&#xff1a;istringstream 我们知道&#xff0c;C默认通过空格&#xff08;或回车&#xff09;来分割字符串输入&#xff0c;即区分不同的字符串输入。 istringstream类用于执行C风格的串流的输入操…...

C++ cmake工程引入qt6和Quick 教程

目录标题 前言QML简介锻炼C水平 cmake修改方法方式一&#xff08;qt6_add_resources&#xff09;方式二 (qt_add_qml_module ) 其他相关知识为什么会有_other_files&#xff1f;qt_standard_project_setup() 函数qt_add_qml_module() 和 qt6_add_resources()的方式差异const QU…...

JavaEE - 网络编程

一、网络编程基础 为什么需要网络编程&#xff1f; 用户在浏览器中&#xff0c;打开在线视频网站&#xff0c;如优酷看视频&#xff0c;实质是通过网络&#xff0c;获取到网络上的一个视频资源。 与本地打开视频文件类似&#xff0c;只是视频文件这个资源的来源是网络。 相比本…...

【Android车载系列】第11章 系统服务-SystemServer自定义服务

1 编写自定义系统服务 1.1 AIDL接口定义 系统源码目录/frameworks/base/core/java/android/app/下新建AIDL接口IYvanManager.aidl package android.app;/** * 目录&#xff1a;/frameworks/base/core/java/android/app/IYvanManager.aidl */ interface IYvanManager{String …...

Lerna

Lerna Lerna是一个优化基于gitnpm的多pagkage项目的管理工具 解决的痛点 痛点一:重复操作 多Package本地link多Package依赖安装多Package单元测试多Package代码提交多Package代码发布 痛点二:版本一致性 发布时版本一 致性发布后相互依赖版本升级 package越多&#xff0c;管…...

迁移学习 pytorch

迁移学习(Transfer Learning)是通过使用一个预训练模型来快速训练一个新的网络模型,通常应用于数据集较小或计算资源较少的情况下。在 PyTorch 中,由于 torchvision 库中已经内置了一些经典的预训练模型,因此我们可以通过简单的调用函数来实现迁移学习。 下面是一个基于 …...

【python】keras包:深度学习( RNN循环神经网络 Recurrent Neural Networks)

RNN循环神经网络 应用&#xff1a; 物体移动位置预测、股价预测、序列文本生成、语言翻译、从语句中自动识别人名、 问题总结 这类问题&#xff0c;都需要通过历史数据&#xff0c;对未来数据进行预判 序列模型 两大特点 输入&#xff08;输出&#xff09;元素具有顺序关系…...

vue框架快速入门

vue 1、第一个Vue程序1.1、什么是Vue程序1.2、为什么要使用MVVM1.3、Vue1.4、第一个vue程序 2、基础语法2.1、v-bind2.2、v-if&#xff0c; v-else2.3、v-for2.4、v-on 3、Vue表单双绑、组件3.1、什么是双向数据绑定3.2、在表单中使用双向数据绑定3.3、什么是组件 4、Axios异步…...

Java连接顺丰开放平台

今天使用Java去访问顺丰的开放平台时&#xff0c;JSON转换一直不成功&#xff0c;最终发现是 可以看到这里是 "apiResultData": "{\"success\": .........它是以 " 开头的&#xff01;&#xff01;&#xff01;如果是对象的话&#xff0c;那么…...

前端三剑客 - HTML

前言 前面都是一些基础的铺垫&#xff0c;现在就正式进入到web开发环节了。 我们的目标就是通过学习 JavaEE初阶&#xff0c;搭建出一个网站出来。 一个网站分成两个部分&#xff1a; 前端&#xff08;客户端&#xff09; 后端&#xff08;服务器&#xff09; 通常这里的客户端…...

【计算机视觉 | 自然语言处理】BLIP:统一视觉—语言理解和生成任务(论文讲解)

文章目录 一、前言二、试玩效果三、研究背景四、模型结构五、Pre-training objectives六、CapFilt架构七、Experiment八、结论 一、前言 今天我们要介绍的论文是 BLIP&#xff0c;论文全名为 Bootstrapping Language-Image Pre-training for Unified Vision-Language Understa…...

c++基础-运算符

目录 1关系运算符 2运算符优先级 3关系表达式的书写 代码实例&#xff1a; 下面是面试中可能遇到的问题&#xff1a; 1关系运算符 C中有6个关系运算符&#xff0c;用于比较两个值的大小关系&#xff0c;它们分别是&#xff1a; 运算符描述等于!不等于<小于>大于<…...

美术馆c++

题目&#xff1a; 杜老师非常喜欢玩一种叫做“美术馆”的数字游戏&#xff0c;蜗蜗看了之后决定也来试一试&#xff0c;他改编了这个游戏&#xff0c;规则如下&#xff1a; 有一个 n&#xfffd; 行 m&#xfffd; 列的方格&#xff0c;每一个格子中有一个数&#xff0c;数字…...

浅谈MySQL索引以及执行计划

MySQL索引及执行计划 &#x1f42a;索引的作用&#x1f42b;索引的分类&#xff08;算法&#xff09;&#x1f999;BTREE索引算法演变&#x1f992;Btree索引功能上的分类4.1 辅助索引4.2 聚集索引4.3 辅助索引和聚集索引的区别 &#x1f418;辅助索引分类&#x1f98f;索引树高…...

在c++项目中使用rapidjson(有具体的步骤,十分详细) windows10系统

具体的步骤&#xff1a; 先下载rapidjson的依赖包 方式1&#xff1a;直接使用git去下载 地址&#xff1a;git clone https://github.com/miloyip/rapidjson.git 方式2&#xff1a;下载我上传的依赖包 将依赖包引入到项目中 1 将解压后的文件放在你c项目中 2 将rapidjson文…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

&#x1f4e2; Vue 3 WebSocket 实战&#xff1a;公司通知实时推送功能详解 &#x1f4cc; 收藏 点赞 关注&#xff0c;项目中要用到推送功能时就不怕找不到了&#xff01; 实时通知是企业系统中常见的功能&#xff0c;比如&#xff1a;管理员发布通知后&#xff0c;所有用户…...