鲜花类网站建设策划书范文湖南正规seo优化报价
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 “鸡你太美”,“食不食油饼” ,“香精煎鱼”,“拿什么荔枝”,“绿尸寒警告"这一系列梗,还能存活至今属实牛逼,若一千年后,人们还知道该梗 那坤 存在的意义非常大,不仅仅变成"梗” 而是变成"热爱"