今天看了谷歌的word2vec,主要看了其中的哈夫曼编码的随机数产生器两个东西。
哈夫曼编码主要是根据词频来编码,减少后面的计算量
随机数产生器就是一个语句:
next_random = next_random * (unsigned __int64)25214903917 + 11;
next_random是无符号long long类型的,优化的技巧还有很多,比如一个变量多处使用等等。
还得继续看,最后把网址搜来的伪随机数产生器代码贴上:
long long rand()
{
static long long r = 0;
const long long a = 25214903917;
const long long c = 11;
const long long m = 1 << 48;
r = ( r * a + c) % m;
return r;
}