- 博客(382)
- 收藏
- 关注
转载 rime切换全角标点和半角标点
ctrl+.来源:https://tieba.baidu.com/p/6000815719?red_tag=1579590982
2021-11-04 00:28:03
2852
原创 求1到10^n的数字中有多少个0
组合数学作业题,我粗心写错了,这里记录一下正确做法。i>1时,对所有i位数,最高位非0,后(i-1)位中,每种数字出现的次数之和相同,而后(i-1)位的数字个数总和为9(i−1)10i−19(i-1)10^{i-1}9(i−1)10i−1,其中9是最高位的取值个数,(i-1)是后(i-1)位的位数,10i−110^{i-1}10i−1是后(i-1)位的取值个数。所以后(i-1)位的数字个数总和为9(i−1)10i−1/10=9(i−1)10i−29(i-1)10^{i-1}/10 = 9(i-1)1
2021-10-30 11:04:55
833
翻译 rust交换数组中的两个元素
不可以直接用std::mem::swap,因为这个函数需要拿两个可变引用,但是不可以同时拿两个这个数组的可变引用。所以要么手写:let tmp = a[i];a[i] = a[j];a[j] = tmp;要么用Vec::swap:a.swap(i, j);其内部实现:fn swap(&mut self, a: usize, b: usize) { unsafe { // Can't take two mutable loans from one vecto
2021-10-20 21:52:18
1086
原创 bash隐藏当前工作目录
详细教程:https://blog.csdn.net/xjwJava/article/details/8687969查看当前的设置:echo $PS1我的结果:\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$然后把里面的\w去掉就好了:export PS1="\[\e]0;\u@\h: \w\a\]${de
2021-10-20 15:56:07
303
原创 rust交换两个引用
fn main() { let x = 1; let y = 2; let mut xx = &x; let mut yy = &y; println!("{} {}", xx, yy); let tmp = xx; xx = yy; yy = tmp; println!("{} {}", xx, yy);}1 22 1这样是可以的。但是如果是在函数里交换传进来的两个引用:fn foo(x: &i3
2021-10-19 18:53:46
384
原创 All-Pair Almost Shortest Path(APASP)
问题描述给定一个n个点m条边的无向无权重的图,找出所有点对之间的近似最短距离。思路最简单的方法就是从每个点开始跑BFS了。BFS的时间复杂度是O(m)O(m)O(m)的,那么总的时间复杂度就是O(nm)O(nm)O(nm)的。但是如果是稠密图,那O(m)=O(n2)O(m)=O(n^2)O(m)=O(n2),总的时间复杂度就是O(n3)O(n^3)O(n3)了。所以思路就是生成边数比较少的子图,然后加上一些构造出来的边来弥补那些被删掉的边造成的影响,再对得到的图跑最短路,来近似给出完整的图的结果。随
2021-10-17 22:18:04
2232
原创 latex打出算法复杂度里的O波浪线
\tilde{O}O~\tilde{O}O~来源:https://tex.stackexchange.com/questions/66418/tilde-over-a-symbol-phi
2021-10-17 15:26:36
1721
原创 Two-level adaptive predictor
论文:Yeh T Y, Patt Y N. Alternative implementations of two-level adaptive branch prediction[J]. ACM SIGARCH Computer Architecture News, 1992, 20(2): 124-134.Tse-Yu Yeh and Yale N. Patt. A Comparison of Dynamic Branch Predictors that use Two Levels of Branc
2021-10-16 17:25:22
373
原创 各种CLOCK算法
这篇文章的背景是操作系统里的页缓冲。LRU要求每次访问某个页的时候都进入trap,由操作系统把这个页放到栈顶。显然这是不能接受的。所以一般采用CLOCK算法或者其变种,其特点是在hit的时候,只需要由硬件执行一个很简单的操作(通常是设置访问位),把这次访问记录下来即可。然后在合适的时机,由操作系统去看这些访问记录,把冷的页替换掉。朴素CLOCK算法一圈页,一个指针指向某页,要替换某页时,看指向的那页的访问位是不是1,如果不是就将这页替换掉,如果是则置0,然后移到下一页继续看。GCLOCK论文:
2021-10-14 22:22:16
3406
原创 Linux pdf编辑软件
XournalFile->Annotate PDF->找到要编辑的PDF文件Tools里选择Pen可以画线,选择Eraser可以擦掉画的线,但是不能擦掉原有内容,选择Highlighter可以当荧光笔用,选择Text可以插入文字,选择Image可以插入图片,选择Select Region可以移动插入的图片。Okular可以插入文本框,可以插入弹出式笔记,可以画线之类的,但是不能插入图片。libreoffice draw打开有些文档会卡死。而且就算能打开,好像里面的字会错位?Scri
2021-10-10 10:17:04
426
原创 knuth的SJT实现
SJT算法就是给每个值一个方向,初始都向左(P1),然后从最大的值开始检查(P3),直到找到值,使得其方向上的下一个值小于它(P4, P,然后将其往那边移动一步,并且。P1a1a_1a1到ana_nan是序列,cjc_jcj是jjj的右边小于jjj的数的个数,ojo_joj是jjj的方向,1表示向左,-1表示向右。刚开始,序列是1,2,3,4,...,n1,2,3,4,...,n1,2,3,4,...,n,所以把cjc_jcj都初始化为0,ojo_joj都初始化为1。P2不知道干啥的.
2021-10-08 21:10:33
290
原创 rust翻转数组
https://doc.rust-lang.org/stable/std/primitive.slice.html#method.reverse
2021-10-06 18:23:49
873
原创 rust二分搜索
如果要二分搜索某个特定值,可以用binary_search:https://doc.rust-lang.org/stable/std/primitive.slice.html#method.binary_search如果要实现C++里的lower_bound和upper_bound类似的功能,可以用partition_point:https://doc.rust-lang.org/stable/std/primitive.slice.html#method.partition_pointpub fn
2021-10-06 17:38:25
359
原创 解决shell脚本中kill -2对后台进程不起作用
问题kill -2就是发送SIGINT信号。我们期望的行为是,进程接收到SIGINT信号后就停止运行。例如:yes >/dev/null &pid=$!echo $pidsleep 2kill -INT $pidsleep 2ps aux | grep yes将其保存为kill.sh,让其直接在当前交互式shell里执行:source kill.sh结果:21505[1]+ 中断 yes > /dev/nullsearc
2021-10-04 23:04:07
2519
15
原创 WPS删除图片被裁剪掉的部分
WPS裁剪图片之后,其实被裁剪掉的部分还在文档里。要彻底从文档中删除被裁剪掉的部分,可以点击图片,然后在弹出的图片工具选项卡中点击压缩图片,然后如果只是想删掉被裁剪的部分,不想压缩的话,把更改分辨率改成不变,然后取消勾选压缩图片:然后点击确定就可以了。这里是用WPS for Linux展示的。WPS for Windows应该也差不多。...
2021-09-30 21:14:50
9011
3
翻译 rust打印变量类型
可以试试std::any::type_name。注意,这个是unstable的。use std::collections::HashSet;fn print_type_of<T>(_: &T) { println!("{}", std::any::type_name::<T>())}fn main() { let mut s = HashSet::new(); let ve = vec![1, 2, 1, 3, 2, 4]; pri
2021-09-29 20:30:45
1830
原创 rust踩坑笔记
mpsc需求:需要在一个线程里读取数据,发送给另一个线程处理。我的方法:用mpsc的channel发送和接收。坑:mpsc的channel从不阻塞发送方,它有无限的缓冲。结果读取远远比写入快,导致大量内存被消耗。解决方案:用sync_channel:pub fn sync_channel<T>(bound: usize) -> (SyncSender<T>, Receiver<T>)这个bound参数应该指的是个数。文档:https://doc.ru
2021-09-29 15:54:29
342
原创 ModuleNotFoundError: No module named ‘jsonrpcclient.exceptions‘
jsonrpcclient当前的最新版本4.0.0好像已经没有jsonrpcclient.exceptions了。所以解决方案是回退到3.3.6版本:pip3 install jsonrpcclient==3.3.6参考文献:https://pypi.org/project/jsonrpcclient/#historypip install 安装指定版本的包...
2021-09-25 21:29:37
574
翻译 AttributeError: module ‘sha3‘ has no attribute ‘keccak_256‘
pip uninstall sha3pip install pysha3原文:https://stackoverflow.com/questions/46279121/how-can-i-find-keccak-256-hash-in-python
2021-09-25 19:56:40
658
翻译 动态指令数和静态指令数
动态指令数(Dynamic instruction count)是指程序执行时,处理器实际执行的指令数。静态指令数(Static instruction count)是指程序自己的指令数。原文:https://stackoverflow.com/questions/13458135/dynamic-vs-static-instruction-count...
2021-09-23 13:13:35
964
原创 国内版firefox启用pocket
之前我是国际版的firefox。有一次升级时不知道怎么就变成国内版了,pocket图标也没了。这应该因为国内版firefox默认禁用了pocket,解决方法是在地址栏输入about:config,然后搜索pocket,找到extensions.pocket.enabled,双击后面的值,把false改成true,然后pocket的图标就回来了。参考文献:https://support.mozilla.org/zh-CN/kb/使用 Pocket for Firefox 保存网页以供稍后查看https:
2021-09-23 11:36:07
694
原创 linux perf得到完整调用关系
一般情况下,在高优化等级时,编译器会把栈帧破坏掉,导致生成的火焰图调用关系是错误的。即使自己的代码用了-fno-omit-frame-pointer来编译,从而使得自己的代码不破坏栈帧,库的代码可能仍然会破坏栈帧。这时就应该使用linux perf的--call-graph=dwarf,这样perf会把一部分栈内存保存下来,然后通过后处理来unwind,从而得到完整的调用栈。参考文献:https://users.rust-lang.org/t/opt-level-2-removes-debug-symb
2021-09-20 10:38:42
839
原创 在服务器上使用vtune
安装在这里选择合适的下载方式:https://software.intel.com/content/www/cn/zh/develop/tools/oneapi/base-toolkit/download.html如果没有GUI,就用Command Line Installation里的命令来下载安装。我的是这样的:wget https://registrationcenter-download.intel.com/akdlm/irc_nas/17769/l_BaseKit_p_2021.2.0.28
2021-09-19 15:57:05
2555
转载 perf.data生成火焰图
用perf或者别的东西生成perf.data后,可以用如下方法生成火焰图:先把https://github.com/brendangregg/FlameGraph.git clone到某个目录,然后perf script -i perf.data > perf.unfold/path/to/FlameGraph/stackcollapse-perf.pl perf.unfold > perf.folded/path/to/FlameGraph/flamegraph.pl perf.fol
2021-09-16 10:40:41
671
原创 rust 堆上二维数组
用ndarray:https://docs.rs/ndarray/0.15.3/ndarray/Rust 多维数组 ndarray例子:use ndarray::Array2;fn main() { let mut a = Array2::<usize>::zeros((2, 3)); println!("{:?}", a.dim()); for i in 0..2 { for j in 0..3 { a[[i, j]]
2021-09-15 16:56:00
348
原创 从专辑光盘中导出音乐文件
Linux下貌似识别不出来这些文件。只能在windows下插入光盘。然后右键cda文件,选择用Windows Media Player打开。或者在开始菜单中选择windows附件->windows media player打开,然后就可以看到歌曲列表了。还可以点击“翻录”把歌曲翻录到mp3。...
2021-08-29 12:58:35
1807
原创 MacOS读写NTFS磁盘
看这里:Mac OS mojave, Big Sur 内置读写NTFS补充一下,由于finder里没有这个磁盘了,要卸载的话只能这样:sudo umount /Volumes/标签
2021-08-26 11:38:45
189
原创 tokio JoinHandle abort不起作用
可能是因为这个线程在一个没有await的死循环里?参考:https://users.rust-lang.org/t/abort-asynchronous-task/61961
2021-08-25 17:36:59
298
原创 Shell获取某路径所在设备的名字
df <your-path>Filesystem 1K-blocks Used Available Use% Mounted on/dev/vdc1 419224580 119587168 299637412 29% /data参考文献:https://stackoverflow.com/questions/38615464/how-to-get-device-name-on-which-a-file-is-located-from-its-path-in
2021-08-23 14:43:50
180
原创 pandas数据框常用操作
pandas官方文档:https://pandas.pydata.org/docs/python dataframe根据列号取出列pandas数据框获取行数列数pandas判断数据框是否相等添加新列:https://www.geeksforgeeks.org/adding-new-column-to-existing-dataframe-in-pandas/
2021-08-21 00:36:44
230
原创 numpy矩阵操作
numpy官方文档:https://numpy.org/doc/stable/pip install numpyimport numpy as np矩阵定义[1234]\left[ \begin{matrix} 1 & 2 \\ 3 & 4 \end{matrix}\right][1324]a = np.array([[1,2],[3,4]])求行列式np.linalg.det(a)LINear ALGebra矩阵拼接竖直拼接用vstack:
2021-08-20 22:09:42
162
原创 pandas数据框获取行数列数
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})df.shape # 形状,格式是(行数,列数)df.shape[0] # 行数df.shape[1] # 列数参考:https://www.geeksforgeeks.org/python-pandas-df-size-df-shape-and-df-ndim/
2021-08-20 21:32:12
868
原创 pandas判断数据框是否相等
用equals成员函数即可。import pandas as pda = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})b = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})a.equals(b)True官方文档:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.equals.html...
2021-08-20 20:53:37
921
原创 rust error: linking with `cc` failed: exit code: 1
可能是磁盘空间没了。用df -h检查一下。
2021-08-20 15:34:42
1782
原创 MacOS退出qq
顶部状态栏里双指点击只能打开窗口,没有菜单。可以在下面的任务栏里双指点击qq图标,这里就会弹出一个菜单,点击里面的退出就好了。
2021-08-20 14:18:09
341
原创 shell去掉输出的末尾换行符
用echo -n $(you_command)即可。比如:echo -n $(echo test)输出:[searchstar@localhost ~]$ echo -n $(echo test)test[searchstar@localhost ~]$
2021-08-19 17:37:27
3528
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人