当前位置: 首页 > 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文…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

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

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

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...