2024-12-13
摘要
本文介绍了 Word2Vec 的相关背景知识,以及背后的数学原理,并通过 Python
源码实现 Skip-Gram 以及负采样方法。 本文并不会涉及 Word2Vec
的所有方面,而是从 Skip-Gram 入手,关注 Word2Vec
最核心的思想,从头开始实现一个精简版的 Skip-Gram Word2Vec。
对于算法的优化本文只会略微提及,感...
阅读全文
2023-07-01
题目大意:
输入多个字符串,对于每个字符串输出一个整数 \(N\),表示该字符串的最长回文子串。
输入
最多 \(30\)
个字符串,每个字符串长度不超过 \(1000000\),最后一个字符串为
END(该字符串不需要处理)。
输出
对于每组测试用例,输出以"Case N: "作为开头,N是测试用例的编号,
然后是对应字符串的最长回文子串。
样例输入
12...
阅读全文
2022-07-30
线性规划是最优化问题中的一个重要领域。许多实际问题都可以归结为线性规划问题,例如:网络流、多商品流量等问题。我们在高中已经学习过只有
\(2\)
个变量的场景,可以使用图解法来求最优解。该方法虽然直观,易于理解,但是难以推广到
\(n\)
个变量的场景。面对更加复杂的线性规划问题,单纯形法是则是更加常用的方法。本文尝试从线性代数基础知识出发,一步一步的推导出...
阅读全文
2022-07-16
插值是一种通过已知的数据点,求新数据点的过程或方法。比如我们已经通过采样、或者实验等方式,获取到了
\(n+1\) 个不同的采样点 \((x_i, y_i)\),其中 \(x_i\) 为输入,\(y_i\) 为输出。现在遇到了一个新的输入 \(x_t\),如何预测对应的输出 \(y_t\)
呢?插值就是一种能解决此问题的方法。而多项式由于形式简单,便于计算,...
阅读全文
2020-04-18
题目大意:
问用 \(1*2\) 的多米诺骨牌覆盖 \(3*n\)
的矩形区域,总共有多少种不同的覆盖方式? 下图是矩形大小为 \(3*12\) 的一个有效覆盖。
输入
有若干组输入,每组输入为一个整数 \(n,(0
<= n <= 30)\) 。最后一个输入为 -1 ,表示输入结束。
输出
对于每组输入,输出一个整数,表示总共可能的覆盖个数。...
阅读全文
2018-08-20
众所周知,MySQL是支持插件式存储引擎的,意思是MySQL源码中开放了存储引擎相关API,只要插件实现相关的API,就能安装到MySQL中,并作为存储引擎开始工作了。其实MySQL支持多种类型的插件,比如UDF,Daemon,认证,半同步,存储引擎。其中UDF和Daemon插件都非常简单,UDF只是实现了一个在MySQL的SQL接口里可以调用的函数;而Da...
阅读全文
2018-08-20
当MySQL执行LOAD DATA
INFILE语句的时候,写binlog和其他语句有很大不同。一个LOAD DATA
INFILE语句在binlog中可能变成了一个或者,若干个Event。这些Event记录了Load
Data语句的附加信息,以及如何处理数据文件。
由于历史原因,一个LOAD DATA语句,可能对应4组不同的Event
1)在MySQL 3...
阅读全文
2018-08-20
概述
这里只介绍MySQL 的异步复制协议(MySQL
5.5增加了半同步复制功能,感兴趣的同学可以自己研究)。
MySQL的主从复制工作模式大致为,主库将执行的语句写入Binlog,由Dump线程将Binlog发送到从库的IO线程,IO线程将日志保存为Relay-Log,再由从库的SQL线程重放执行。本文主要研究主库Dump线程将Binlog发送到从库IO...
阅读全文
2018-08-20
背景
在MySQL
5.1中,如果配置项sync_binlog=1,并且innodb_flush_log_at_trx_commit=1,那么MySQL的TPS将会下降到几十每秒,完全不可接受。这是因为InnoDB提交事务时,不仅需要将REDO刷盘,还需要将Binlog刷盘,每个事务都需要2次sync操作。机械磁盘的IOPS也就为几百的水平,所以InnoDB...
阅读全文
2018-08-20
LevelDB是BigTable中对SSTable的实现,是一个高性能的单机版Key-Value存储库。LevelDB在一个进程中,允许多个线程同时读写一个SSTable。本文主要关注多个线程同时对LevelDB的写操作,LevelDB只支持2中写操作,即Put和Delete。由于LevelDB支持WAL,也就是说每次写操作都会记录日志。多个线程同时执行时,...
阅读全文
1 2 下一页