Luyu Huang

Results 74 issues of Luyu Huang

https://luyuhuang.tech/2020/12/01/lua-traceback-with-parameters.html When an error occurs, Lua will print a traceback of the call stack, it helps us to find bugs. In many cases, however, a call stack traceback is not...

Gitalk
43

https://luyuhuang.tech/2020/10/29/lua-dst.html 我之前的一篇文章介绍了怎样在服务器和客户端之间同步时间和时区. 同步时间相对简单些, 本质就是一个时间差; 而时区相对复杂些. 那篇文章介绍的方法有一个问题: 在客户端的时区启用了夏令时的时候, 客户端得到的本地时间会比实际快一个小时. 原因是求客户端时区的方法不对. 例如, 太平洋时区本为 UTC-0800, ...

Gitalk
42

https://luyuhuang.tech/2020/10/23/lua-next.html 熟悉 Lua 的同学都知道, Lua 是允许在 for ... pairs 循环中修改和删除表中元素的. 下面这样的代码是没有任何问题的:local t = {a = 1, b = 2, c = 3}for k, v in pairs(t) do if v ==...

Gitalk
41

https://luyuhuang.tech/2020/09/05/permutation.html 给定 n 个不同的元素, 问有多少种不同的排列方式. 这就是全排列问题. 我们高中时就学过排列公式 $A_n^m = \frac{n!}{(n-m)!}$, 因此对于 n 个元素, 全排列数等于 $A_n^n = \frac{n!}{(n-n)!} = n!$ . 例如对于序列 [1, 2, 3] 全排列为[1,...

Gitalk
39

https://luyuhuang.tech/2020/08/28/single-number.html 这里分享三道寻找数组中只出现一次的数字的问题. 这些题使用哈希表都很好做, 但这里我们使用位运算, 可以很巧妙地在常数空间复杂度内解决问题.第一题题目源自 Leetcode 136 题 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应...

Gitalk
38

https://luyuhuang.tech/2020/08/27/rfc1928.html socks5 是一个常用的代理协议, 它既可以用来代理 TCP, 也可以代理 UDP. socks5 的用途非常广泛, 许多网络软件都支持 socks5, 主流操作系统也支持使用 socks5 作系统代理. RFC 1928 是 socks5 协议的规范文档, 本文是对 RFC 1928 的翻译. 原文见 RFC...

Gitalk
37

https://luyuhuang.tech/2019/09/17/sqrt.html 1.先说结论$\sqrt{a}$ 可这样求得: 令 $x_0$ 为任意实数, 执行以下迭代式:\[x_i = \frac{x_{i-1}+\frac{a}{x_{i-1}}}{2} \tag{1}\]迭代若干次, 当 $|x_i-x_{i-1}|$ 小于想要的精度时便可停止迭代. 最终的 $x_i$ 便可视为 $...

Gitalk
8

https://luyuhuang.tech/2017/08/19/avoid-using-unsigned-numbers.html 考察这样一段代码:int a = -1;unsigned int b = 1;if (a < b) printf(

Gitalk
1

https://luyuhuang.tech/2019/09/12/use-latex-in-jekyll.html 我准备用 Jekyll + Github page 搭建自己的技术博客. 但是有个问题, 技术文章中不可避免地需要使用到数学公式, Jekyll 原生的 Markdown 解释器总是不能很好地使用 Latex. 通过查阅资料, 我最终解决了这个问题. 下面是我的做法: 禁用 Kramdown 自带的公式...

Gitalk
5

https://luyuhuang.tech/2020/08/08/y-combinator.html 如何实现一个阶乘函数? 最简单的做法是使用递归:'use strict';function factorial(n) { if (n === 0) { return 1; } else { return n * factorial(n - 1); }}很好. 那么如何...

Gitalk
36