自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(382)
  • 收藏
  • 关注

原创 解决Latex soul ul参数中有宏时报错的问题

这种方案是非侵入式的。

2023-09-14 22:52:59 755 2

转载 rime切换全角标点和半角标点

ctrl+.来源:https://tieba.baidu.com/p/6000815719?red_tag=1579590982

2021-11-04 00:28:03 2553

原创 求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 770

翻译 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 988

原创 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 261

原创 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 344

原创 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 2202

原创 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 1597

原创 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 342

原创 各种CLOCK算法

这篇文章的背景是操作系统里的页缓冲。LRU要求每次访问某个页的时候都进入trap,由操作系统把这个页放到栈顶。显然这是不能接受的。所以一般采用CLOCK算法或者其变种,其特点是在hit的时候,只需要由硬件执行一个很简单的操作(通常是设置访问位),把这次访问记录下来即可。然后在合适的时机,由操作系统去看这些访问记录,把冷的页替换掉。朴素CLOCK算法一圈页,一个指针指向某页,要替换某页时,看指向的那页的访问位是不是1,如果不是就将这页替换掉,如果是则置0,然后移到下一页继续看。GCLOCK论文:

2021-10-14 22:22:16 3269

原创 rust格式控制

https://doc.rust-lang.org/std/fmt/

2021-10-12 20:59:05 148

原创 Linux pdf编辑软件

XournalFile->Annotate PDF->找到要编辑的PDF文件Tools里选择Pen可以画线,选择Eraser可以擦掉画的线,但是不能擦掉原有内容,选择Highlighter可以当荧光笔用,选择Text可以插入文字,选择Image可以插入图片,选择Select Region可以移动插入的图片。Okular可以插入文本框,可以插入弹出式笔记,可以画线之类的,但是不能插入图片。libreoffice draw打开有些文档会卡死。而且就算能打开,好像里面的字会错位?Scri

2021-10-10 10:17:04 391

原创 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 263

原创 rust翻转数组

https://doc.rust-lang.org/stable/std/primitive.slice.html#method.reverse

2021-10-06 18:23:49 790

原创 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 325

原创 解决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 2390 15

原创 WPS删除图片被裁剪掉的部分

WPS裁剪图片之后,其实被裁剪掉的部分还在文档里。要彻底从文档中删除被裁剪掉的部分,可以点击图片,然后在弹出的图片工具选项卡中点击压缩图片,然后如果只是想删掉被裁剪的部分,不想压缩的话,把更改分辨率改成不变,然后取消勾选压缩图片:然后点击确定就可以了。这里是用WPS for Linux展示的。WPS for Windows应该也差不多。...

2021-09-30 21:14:50 8122 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 1727

原创 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 285

原创 华为手机安装NM卡无法识别

比如我的荣耀30S,两个卡槽里只有一个是支持NM卡的,旁边有NM小字。插入NM卡之后无法识别可能是因为插错卡槽了。

2021-09-26 17:57:51 6211

原创 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 519

翻译 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 625

翻译 动态指令数和静态指令数

动态指令数(Dynamic instruction count)是指程序执行时,处理器实际执行的指令数。静态指令数(Static instruction count)是指程序自己的指令数。原文:https://stackoverflow.com/questions/13458135/dynamic-vs-static-instruction-count...

2021-09-23 13:13:35 903

原创 国内版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 627

原创 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 693

原创 在服务器上使用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 2218

转载 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 573

原创 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 307

原创 从专辑光盘中导出音乐文件

Linux下貌似识别不出来这些文件。只能在windows下插入光盘。然后右键cda文件,选择用Windows Media Player打开。或者在开始菜单中选择windows附件->windows media player打开,然后就可以看到歌曲列表了。还可以点击“翻录”把歌曲翻录到mp3。...

2021-08-29 12:58:35 1561

原创 MacOS读写NTFS磁盘

看这里:Mac OS mojave, Big Sur 内置读写NTFS补充一下,由于finder里没有这个磁盘了,要卸载的话只能这样:sudo umount /Volumes/标签

2021-08-26 11:38:45 174

原创 tokio JoinHandle abort不起作用

可能是因为这个线程在一个没有await的死循环里?参考:https://users.rust-lang.org/t/abort-asynchronous-task/61961

2021-08-25 17:36:59 257

原创 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 163

原创 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 216

原创 numpy矩阵操作

numpy官方文档:https://numpy.org/doc/stable/pip install numpyimport numpy as np矩阵定义[1234]\left[ \begin{matrix} 1 & 2 \\ 3 & 4 \end{matrix}\right][13​24​]a = np.array([[1,2],[3,4]])求行列式np.linalg.det(a)LINear ALGebra矩阵拼接竖直拼接用vstack:

2021-08-20 22:09:42 141

原创 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 836

原创 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 871

原创 rust error: linking with `cc` failed: exit code: 1

可能是磁盘空间没了。用df -h检查一下。

2021-08-20 15:34:42 1691

原创 MacOS退出qq

顶部状态栏里双指点击只能打开窗口,没有菜单。可以在下面的任务栏里双指点击qq图标,这里就会弹出一个菜单,点击里面的退出就好了。

2021-08-20 14:18:09 325

原创 shell去掉输出的末尾换行符

用echo -n $(you_command)即可。比如:echo -n $(echo test)输出:[searchstar@localhost ~]$ echo -n $(echo test)test[searchstar@localhost ~]$

2021-08-19 17:37:27 3376 1

原创 rust运行shell命令并获取输出

rust:执行shell命令

2021-08-17 17:53:28 3532

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除