It’s 520 every day >-<

# Gradient, Divergence, Curl, Laplacian, Jacobian and Hessian

I found a really good explanation about those conceptions on Zhihu. Here is the original post:

# I found something interesting!

想不到我之前这么中二…

# 歇斯底里

今天读论文的时候看到了一个词：Hysteria

不认识，于是随手查了一下，发现字典给出的释义非常简单，就四个字：歇斯底里。

以前一直以为歇斯底里是一个成语，没想到原来是一个舶来词。

# 关于广州机场的三件小事

1、2018年从伦敦回国，在广州机场落地，经过了一条灯光秀通道，我就像从村里回来一样，惊叹国内的科技感。

2、2021年劳动节假期，和猪猪去顺德吃吃喝喝，在广州机场从下午延误到凌晨起飞，因为猪猪，印象中那一天是烦躁和幸福交错的。

3、2021年夏天，猪猪从广州出发去新加坡追求小梦想，我们在这里分别，开始经历第一次异地/异国，我们的异地原则是“我们都要变得更好”。

# Subway

# Rabin–Karp algorithm

I know it have been a long while that I do not update my website. Even missed the entire May…

Actually, I am confused about my future path during these two months. I got a bunch of offers from different places. However, I don’t even know where should I go ultimately.

So I just try to learn some new stuff as I can to kill the time…

Rabin-Karp is a kind of string searching algorithm which created by Richard M. Karp and Michael O. Rabin. It uses the rolling hash to find an exact match of pattern in a given text. Of course, it is also able to match for multiple patterns.

def search(pattern, text, mod): # Let d be the number of characters in the input set d = len(set(list(text))) # Length of pattern l_p = len(pattern) # Length of text l_t = len(text) p = 0 t = 0 h = 1 # Let us calculate the hash value of the pattern # hash value for pattern(p) = Σ(v * dm-1) mod 13 # = ((3 * 102) + (4 * 101) + (4 * 100)) mod 13 # = 344 mod 13 # = 6 for i in range(l_p - 1): h = (h * d) % mod # Calculate hash value for pattern and text for i in range(l_p): p = (d * p + ord(pattern[i])) % mod t = (d * t + ord(text[i])) % mod # Find the match for i in range(l_t - l_p + 1): if p == t: for j in range(l_p): if text[i+j] != pattern[j]: break j += 1 if j == l_p: print("Pattern is found at position: " + str(i+1)) if i < l_t - l_p: t = (d*(t-ord(text[i])*h) + ord(text[i+l_p])) % mod if t < 0: t += mod text = "ABCCCDCCDDAEFG" pattern = "CDD" search(pattern, text, 13)

# Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

class Solution: def generateParenthesis(self, n: int) -> List[str]: ret = [] # @functools.lru_cache(None) def dfs(curr, l, r): if l == n and r == n: ret.append(curr) if r > l: return if l < n: dfs(curr + "(", l + 1, r) if r < n: dfs(curr + ")", l, r + 1) dfs('', 0, 0) return ret

# Something interesting

不管哪个领域，都可以在上升期做科研，在平稳期做业务，在饱和期做教育，显然Andrew Ng是个明白人。

No matter what field you are in, you can do research in the growing period, dedicate into the industry in the steady period, and develop education in the saturation period. Obviously, Andrew Ng is a sensible person.

# 楽しい

按理说，我们二十五六岁，买车买房，工作体面，不能再抱怨了。但是房，车，体面，这些都是大路商品。我有，其他人可能有我的一百倍，一千倍还多。但是十年的青春时光，每个人都只有一次。

我希望看到这里的人，可以记得未来很重要，但是二十多岁一定要快意，可以努力奋斗也可以玩，可以富有也可以贫穷，但不能扭曲，要快意。

当你26岁决定自己要不要成为30岁的博士时，要记得这件事。

To be honest, we have a decent job, house, car at the age of 25, should not complain more. However, cars/houses/good jobs, all of them, are general commodities, others may have them of ten times or even of hundred times than of what I have. But the ten years of youth, everyone has only one time.

So, please remember this thing, when you are 26 years old and decide whether you want to be a 30-year-old Doctor.