随笔分类 - 算法
摘要:#include#include#includeusing namespace std;char * add(char *a, char*b) { int la = strlen(a); int lb = strlen(b); char result[la+lb+2]; int p_r = 0; memset(result, 0, sizeof(result)); int crease = 0; while (la-- && lb--) { int tmp = int(a[la] - '0' + b[lb] - '0') + crease; re
阅读全文
摘要:strcpy的主要功能就是将原串拷贝到目标,一个比较简单的实现版本为 void strcpy(char * dest, char * src) { assert(src!=NULL); assert(dest!=NULL); char *ret = dest while((*ret) = (*src) && (*src)!=‘\0’) { src++; ret++; } }比较常用的实现是以上那个版本,那么这个函数其实是由很多问题的,我们进行第问题1、将src++和dest++写在while循环的条件式里...
阅读全文
摘要:推荐系统中经常会用到商品之间的相似度这一数据,业界中最常用的算法莫过于CF算法了,根据用户行为来计算商品之间的相似度,我们可以用一个表格来表述这种算法的原理:Item1Item2Item3User1W11W12W13User2W21W22W23User3W31W32W33在以上表格中Itemi表示的第i中商品,Useri表示第i个用户,而Wij则表示的是用户i对商品j的“评分”,此评分可以是根据行为设定的权重,或者是用户的真实打分。如果要计算Item1和Item2之间的相似度1.用户对Item1和Item2的行为可以看作两个一维的向量(w11,w21.w31),(w12,w22,w32)。2.
阅读全文
摘要:最小距离算法用来计算两个字符串之间的相似度,这次主要是因为对搜索结果的ReRank需要用这个算法做一下优化。一、简介1.最小编辑距离算法又称 Min Edit Distance,是用来计算两个字符串相似性的比较常用的算法,主要应用场景包括抄袭检测,拼写检查,相似度计算等等方面,这次主要是对搜索结果ReRank时需要用到此算法,Python版的实现已放在我的github上。2. 此算法是利用source串经过插入,删除,更改三种操作转换为目标串所花费资源的多少来衡量两个字符串的相似度的,插入删除等操作分别有相应的权重,一般我们会将插入和删除设为1,更改设为2。二、 算法伪码:数据:1. m =
阅读全文
摘要:生产者-消费者模型是多线程同步的经典案例此模型中生产者向缓冲区push数据,消费者从缓冲区中pull数据这个Demo中缓冲区用python实现的Queue来做,这个模块是线程安全的使我不用再为队列增加额外的互斥锁.此外这个Demo中信号处理的实现是这样的:1)主线程接到一个SIGTERM的信号后先通知Consumer停止向缓冲区push数据并退出2)Produer将缓冲区中的数据消费完全后在退出3)主线程退出下面是部分代码,全部代码在github上面class Consumer(threading.Thread): def __init__(self, queue): th...
阅读全文
摘要:>中23章介绍的布隆过滤器(Bloom filter),以下是一些算法的实现及应用1.算法应用在如那件设计中有个最基本的功能是判断某个元素是否在集合当中,比如爬虫中验证一个url是否被收录过,如果用普通的hash来判断那需要的内存容量是惊人的。布隆过滤器的作用就是能够降低内存用量,他只需要hash表的1/8到1/4就能够解决问题。3.算法实现3.1生成指纹函数,这里做了一个简化void make_fingers(const string &url, const vector&fingers){ for (int i=0; i3.2生成映射,将八个指纹映射到1~MAX中的一
阅读全文
摘要:棋盘的上的每一个状态对应一个二进制串,以初始状态为跟节点建树,然后广度优先遍历这颗树,层数为所求的值。#include #include #define ALL_WHITE 0 #define ALL_BLACK 65535 using namespace std; int states[65536]; int state,temp; int flip(int state_current, int pos) { state_current ^= (1 = 0) { state_current ^= (1 q; state...
阅读全文

浙公网安备 33010602011771号