回到首页

にあ-我的可爱猫猫

上篇文章:小想法

2022.4.3/23.25 C++的split函数

std::vector<std::string> split(std::string s, char c){
	std::string::size_type p=0, np=0;
	std::vector<std::string> res;
	while(np!=s.npos){
		np=s.find(c, p);
		res.emplace_back(s.substr(p, np-p));
		if(np+1<s.size())p=np+1;
	}
	return res;
}

2022.4.21/22.16 mod的数学运算

\[x mod y=x-y\times\lfloor x/y\rfloor\], 同余定理:如果\[a\equiv b(mod m),c\equiv d(mod m)\],那么:\[a\pm c\equiv b\pm d(mod m), a\cdot c\equiv b\cdot d(mod m)\],参考链接:原码、补码、反码的关系

2022.4.23/17.29 画函数的网站

Calculator Suite - GeoGebra

函数f(x)=-xlgx在该网站上绘制的图像,-xlgx在x=1/e时取最大值1/e

2022.4.26/17.06 解决“gradle无法同步”的网络问题

打开gradle/wrapper/gradle-wrapper.properties文件,把distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip改为distributionUrl=https\://downloads.gradle-dn.com/distributions/gradle-5.4.1-all.zip,参考自【Android】Could not install Gradle distribution from(最简单) - gradle

2022.4.29/18.29 crontab的使用

vi /etc/crontab配置定时任务,一个定时任务用“分钟 时 日 月 星期 用户名 命令”表示

2022.5.5/19.32 解决“error while loading shared libraries: libxx.so: cannot open shared object file: No such file or directory”的方法

在linux上运行程序缺少某动态链接库报如题所述错误,方法是找到动态链接库,并export环境变量LD_LIBRARY_PATH包含动态链接库所在路径,使得应用程序能找到该动态链接库。

2022.5.6/15.38 扁平化嵌套列表过程中栈的奇思巧用

341. 扁平化嵌套列表迭代器:,嵌套整数列表的扁平化,不说递归深度遍历的解法,栈的解法奇思巧用。问题的情景是,拿到一个嵌套整数列表,判断hasNext(),若有,next(),否则,完成扁平化操作。栈的解法初始化O(1),比dfs初始化O(n)快,next()两者差不多,hasNext()跟dfs差不多都是O(1),如果潜逃列表连续几个左(或右)中括号,那hasNext多循环连续左(或右)中括号出现的次数,空间复杂度O(m),m指最大嵌套深度,大部分情景比dfs的空间复杂度O(n),n指元素个数,好多了。栈的解法过程:栈的元素:两个迭代器,第一个迭代器指向目前访问的元素位置,第二个迭代器执行该层嵌套列表结束的位置,该问题初始化时把嵌套列表的begin和end迭代器push到栈中,hasNext的实现:若栈空的,返回false,否则进入判断栈是否为空的循环,获得栈首元素,若栈首元素的两个迭代器相等,说明该层嵌套列表访问完毕,pop掉栈首元素,进入上一层列表,进入下一循环,若栈首元素指向的当前元素是一个数,返回true,否则获得当前要访问的列表,把这个列表的begin和end迭代器push到栈中。next的实现:hasNext保证栈首的要访问的元素是整数,返回这个整数。hasNext和next过程中记得递增刚访问过的迭代器。
另外,这道题是要设计一个针对嵌套列表的迭代器,迭代器的理念:提供访问途径,而非全局开销做直接存储;初始化迭代器后,若迭代目标中某还未访问到的元素发生值的变化,当迭代器访问到的时候迭代器给出的应是改变后的值。本着这道题的设计目标来说,dfs方法不够格,栈的方法可以接受。评论区的其他讨论:迭代器模式:用惰性加载的方式提高性能
iterator类型不要加引用符号,会出现一堆跟C++标准头文件有关的错误,什么候选构造函数模板不可行啊,,毕竟iterator就是指针,指针的引用,引用还得初始化,连起来用有大问题,哈哈哈

2022.5.8/23.43 leetcode报错:AddressSanitizer: heap-use-after-free的原因

原因是链里出现环,leetcode判题打印结果陷入循环产生报错

2022.5.10/20.16 C++ tuple的简便用法

如v是vector<tuple<int,int,int>>类型的变量,则可这样取tuple的元素:auto [i1,i2,i3]=v[0];甚至都不需要声明变量i1,i2,i3。C++的语法糖,好好吃

2022.5.14/20.40 ubuntu安装包下载站点

Ubuntu Packages Search,搜“make”能看到apt install make牵涉到的包
常见包下载ftp站点

2022.5.14/21.46 tnnd,chromium下载完东西,不知道在那儿核查个什么

一个电脑连不上有线和无线网,我只能在联网的电脑上下载deb包,下到u盘上,文件准备就绪,1M大小,拔掉U盘插到离线电脑上,文件类型不可识别,用不了,我持续搞了三次,第一次基本没给U盘反应的时间,后面两次我看着U盘上的文件图标变好了,结果还那样,我累了,毁灭吧。
其实后来想想,可以wget或者先把文件下载到某一位置再移动文件到u盘上

2022.5.22/14.43 ubuntu自带视频播放器报错“h.264 high profile decoder is required to play the file but is not installed”解决方法

因为ubuntu采用开源的理念,不会预先安装需要同意许可证的有版权专利内容的软件,需要安装一些解编码器codec解决该报错。安装如下软件包:gstreamer1.0-plugins-bad、libdvd-pkg, gstreamer1.0-plugins-ugly和libdvdnav4,参考文献:Unable to play MP4 file in Ubuntu 18.04: H.264 (Main Profile) decoder is required to play the file, but is not installedHow to Install h.264 decoder on Ubuntu Linux

2022.5.23/00.18 拆分视频帧命令

ffmpeg -i YOASOBI「好きだ」5月30日配信リリース.flv -r 30 -f image2 yoasobi-imgs/%05d.jpg,r参数接每秒采样次数fps,通过ffmpeg -i YOASOBI「好きだ」5月30日配信リリース.flv查看视频fps为30,f参数接格式化类型,image2格式方式获取的图片较小,但清晰度低。参考文献:ffmpeg将视频转换成图片

2022.5.23/10.42 挂载硬盘到某一目录

通过sudo fdisk -l查询到目标硬盘的路径为/dev/sdb,在/mnt下创建sdb文件夹,sudo mount /dev/sdb /mnt/sdb,sudo vi /etc/fstab,在文件末尾补上一行:/dev/sdb /mnt/sdb ext4 defaults 0 1,设置开机自动挂载,参考链接:ubuntu下添加硬盘,分区以及自动挂载ubuntu永久挂载硬盘👍1

2022.5.23/10.45 ubuntu的光——MainMenu

这个软件可以给出系统中各种软件的启动命令,命令用在ubuntu的自动启动配置。但在ubuntu software软件中常常搜索不出来它,今天玄学找到了它,这个软件的官网为MATE Desktop Environment,可以看到官方维护了一个工具箱,工具箱里的一个小应用是MainMenu,该软件安装完成后命令行mozo启动图形界面窗口

2022.5.24/21.31 double类型能保证15位有效数字是精确的

2022.5.28/14.51 ubuntu下格式化U盘

sudo fdisk -l查找U盘的设备路径/dev/sdb1,看到U盘的文件系统格式是FAT32,umount /dev/sdb1解除U盘和系统的挂载点,sudo mkfs.vfat -F 32 /dev/sdb1格式化U盘,格式化后的U盘的文件系统仍采取FAT32格式,参考文献:Ubuntu下基于格式化命令 格式化U盘的方法
吐槽:他奶奶的,我点击图形界面的格式化按钮,不响应,ubuntu有图形界面挺好,好用,但很多关键的地方又在那傻站,还没有命令行解决酣畅淋漓

2022.6.5/07.13 arch挂载曾在windows系统干过活的移动硬盘

mount -t ntfs-3g /dev/sdb1 /mnt/sdb(直接安装ntfs-3g),参考链接:解决linux系统插入硬盘显示:mount: unknown filesystem type ‘ntfs’ 问题

2022.6.12/15.44 走方格时回溯法和动规如何选择?

首先看取值范围,递归回溯一维数组,100就是深度的极限了;其次,如果求“路径”用回溯,如果求“路径的条数”,用动规。来自Samarua

2022.6.15/12.08 二维卷积和反卷积操作


0*0+1*1+3*2+4*3=19,实现代码如下

def corr2d(X,K):
	'''Compute 2D cross-correlation.'''
	h,w=K.shape
	Y=tf.Variable(tf.zeros((X.shape[0]-h+1,X.shape[1]-w+1)))
	for i in range(Y.shape[0]):
		for j in range(Y.shape[1]):
			Y[i,j].assign(tf.reduce_sum(X[i:i+h,j:j+w]*K))
	return Y

corr2d(tf.constant([[0.0,1.0,2.0],[3.0,4.0,5.0],[6.0,7.0,8.0]]),tf.constant([[0.0,1.0],[2.0,3.0]]))

代码实现
def trans_conv(X,K):
	h,w=K.shape
	Y=np.zeros((X.shape[0]+h-1,X.shape[1]+w-1))
	for i in range(X.shape[0]):
		for j in range(X.shape[1]):
			Y[i:i+h,j:j+w]+=X[i,j]*K
	return Y

trans_conv(np.array([[0.0,1.0],[2.0,3.0]]),np.array([[0.0,1.0],[2.0,3.0]]))
参考链接:13.10. Transposed Convolution,6.2. Convolutions for Images

2022.6.17/18.58

照着答案复制粘贴了一份能过用例的代码,两条从左上角到右下角的路线,两条路径跟随步数可能的位置需要讨论,但中间的状态转移不太懂。我宣布,我不会摘樱桃,之后钻研搞懂了些东西,看这里

2022.6.19/8.54 阻塞、非阻塞、同步和异步

阻塞指程序等待结果的过程中不去干别的事,非阻塞指程序等待结果的过程中去干别的事;同步指程序紧盯着结果出来,异步指结果什么时候出来了有谁会来通知。参考自同步、异步、阻塞、非阻塞

2022.7.2/19.36

说件恶心的事,吃瓜之后打嗝瓜籽随着呼吸道的上升气流蹿上来,到鼻腔上头部位,一段时间后,我想掏鼻屎,掏出来这个瓜籽,人体真的好奇妙。

2022.7.5/19.44 python里的绝对路径和相对路径

当前工作路径,获取getcwd,设置chdir,相对路径相对当前工作路径来说;绝对路径,总是从根文件夹开始,windows系统中以盘符(C:、D:)为根文件夹,而OS X或linux以/为根文件夹,所以linux下python不识别~开头的家目录路径,参考文献:Python绝对路径和相对路径详解

2022.7.6/18.42 html中的字符实体

html中小于号书写方式是&lt;,大于号书写方式是&gt;,与符号书写方式是&amp;,这种特殊用法叫做字符实体,保证普通字符与预留字符不产生歧义,书写方式&entity_name;或者&#entity_number;,比如小于号的另一个写法:&#60;,名称好记,但浏览器不定支持所有实体名称,但能涵盖所有实体数字,参考自HTML 字符实体 &lt; >: &amp;等

2022.7.7/18.52 一些找工作的英文缩写涵义

HC,Head Count,人头
JD, Job Description,工作职责描述
OC, Offer Call,录用通知
参考自HC、JD、OC 是啥...求职、工作过程中可能遇到的英文缩略语整理