浅谈PageRank算法以及实现 背景网络就像是一张图,网页作为节点,链接作为边。当我们想要对网页进行排名,如此多的网页如何实现呢?于是google公司基于链接投票法开发了PageRank算法用于搜索引擎对网页进行排名。 原理 每个链接的投票作用于他的源页面 如果页面$j$有$n$个出链,那么每个出链会获得$r_j/n$张票 页面$j$的个人重要度是所有他的入链的票数之和根据以上的理论基础我们可以推出: 一张来自重要度很高的页面的
使用selenium自动化登陆tb 背景前些日子学习了爬虫,尝试使用selenium自动化登陆淘宝,但淘宝现在的反爬虫技术能识别selenium等浏览器自动化使登陆界面出现滑块。根据网上的资料,可以在后台找出检测浏览器的js脚本进行屏蔽干扰,但本文没有完善这一功能。 准备工作 需要浏览器(本文使用chrome) 需要浏览器对应的驱动(需要自行下载,驱动版本与浏览器版本需要对应一致) python3.6 + selenium 简
map 与 unordered_map的基本用法及区别 map特性 所有元素根据元素的键值key自动排序 每个元素都是<key,value>的键值对 不允许有键值相同的元素 key不能修改,但可以通过key修改与其对应的value 可以删除与value对应的键值key,重新插入以达到修改的目的优点 有序性,这是map结构最大的优点,可以简化很多操作 红黑树,内部实现一个红黑树使得map很多操作可以在$log_n$复杂度下就可以实现,效率非常
C++ 字符串与数组 字符串匹配问题Brute-Force顺序遍历母串,将每个字符作为匹配的起始字符,判断是否匹配字串。时间复杂度为$O(m*n)$。 Rabin-Karp将每一个匹配字串映射为一个hash5值。例如,将子串看成是一个多进制数,比较它的值与母串中相同长度子串的hash值,如果相同,再细致地按照字符确认字符串是否确实相同。顺序计算母串hash值的过程中,使用增量计算的方法:扣除最高位的hash值,增加最低
代码素养 基本代码素养关于空格用空行将大块代码分成逻辑上的’段落’不使用tab键 关于括号C指针中的指针符号靠近类型名, 如写成int* p,而不写成int *p 一个函数只专注做一件事情一个函数很复杂时,尽量将这个函数拆解成几个简单的函数 关于命名 类名用大写字母开头 较长的函数名由多个单词组成,每个单词首字母大写 函数名很短的话首字母小写 变量名可以由多个单词构成,首个单词的首字母小写,其他单词的首字母
配置coc-clangd 解决找不到clangd在配置coc.nvim下的插件coc.clangd时,安装好插件在打开cpp文件时报错提示 [coc.nvim] clangd was not found on your PATH. :CocCommand clangd.install will install 10.0.0. 解决方法 nvim下输入:CocCommand clangd.install nvim会自动在后
终端下配置代理 终端下设置代理export http_proxy=http://127.0.0.1:8889 git设置代理git config --global http.proxy http://127.0.0.1:8889 git config --global --unset http.proxy npm设置代理npm config set proxy=http://127.0.0.1:8889 npm取
C++ bitset C++ 的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或者1,每个元素仅占用1bit空间 引入#include <bits/stdc++.h> 构造函数bitset<4> bitset1;//无参数构造,长度为4,默认每一位为0 bitset<8> bitset2(12);//长度为8,二进制保存,前面用0补充 s
latex算法编辑 因为要写论文,不得不开始latex。以下代码使用algorithm2e包,在overleaf上编写。 \def\SetClass{article} \documentclass{\SetClass} \usepackage[lined,boxed,commentsnumbered]{algorithm2e}\begin{docu
我的vim配置 set t_co=256 set encoding=utf-8 set directory=.,$TEMP let &t_ut="" "修改缩进距离 set tabstop=2 "首个退格键返回上一行 set backspace=indent,eol,start let &t_SI="\<Esc>]50;CursorS