AFAIK

Valar Morghulis

之前一直想重拾折纸,但是我一直拖……一个原因是我我觉得我的纸不行。之前 折小狗 的时候折着折着纸就破了。研究之后发现纸是有学问的,甚至还有人做了 评测。那这就好办了,是时候展现我的钞能力了!于是我前一段时间买了些纸,包括 Elephant Hide 和 Tant。

这次折的风格和之前不一样了,属于 Tessellation,教程取自 B 站被阿婆。这东西好看是好看,就是打线要打一年,上来就是一个 32x32 的网格 + 32x32 的对角线……不过由于这个动作不需要思考,我就一边看 Netflix 版三体一边打线了。而且,由于几乎所有的 tessellation 都是类似的网格,我甚至可以把一个折好的拆了去折另一个 23333

我第一次用的 Elephant Hide 15x15cm,结果就是中间的方块间隙太大,而且也不方。我又拿 Tant 20x20cm 试了一下,发现效果拔群,我有点不解,按道理不应该是 EH 更好折 Tessellation 吗?我不信邪,想着我第一次可能是没有经验,再次用 EH 折了一次,结果和第一次差不多,中间的方块不太能看……我也不知道是我技术不行,还是 EH 太小了,还是 EH 太厚了?后来反思,我觉得打线打到 16x16 的时候还没啥问题,但是最后的那个横竖 32x32 打线我明显能看出好些地方不太均匀,我甚至能感觉纸的曲率都变了……论非欧几何在折纸中的应用???不过不得不说,这两种纸都挺耐折的,要我之前的纸怕是早就破了。手感上 EH 更厚实,Tant 比较软。

最后就放几张图吧……从左到右分别是卖家秀、Elephant Hide v2 和 Tant,感觉 Tant 版除了是单色所以层次感差了点以外,其它和卖家秀差不多了。

卖家秀
Elephant Hide v2
Tant

某 quantum gravity 专家 cls 最近可意气风发。自打决定在湾区再多待一阵之后,cls 便研究起了买车。当然,cls 可以选择微啃一下买辆法拉利,但是作为一个新时代独立自主的男性,cls 没有选择啃老,而是先租一辆小破车体验一下,一来经济上稍微划算那么一丢丢,二来 cls 刚拿驾照没多久,还是先练练手吧。

刚好趁着与胡老师约饭的机会,cls 开着他的小破车从 Berkeley 来到了南湾。饭后大家一致决定(其实就脸哥和 cls)去 Hakone 赏花。但是去程就犯难了,谁来坐 cls 的车呢?现在我们有三位司机:

  • 以 cls 为代表的新司机,购买高额保险,体验刺激人生;
  • 以脸哥为代表的老司机,表演精湛技术,偶尔忘看红灯;
  • 以 cxq 为代表的 AI 司机,只需付费升级,纵享智慧 AI。

等王老爷子从饭馆出来,三位司机都向他抛出了橄榄枝。他将面临艰难抉择:到底该 pick 哪位司机?谁将助力完成他赏花的梦想?是初生牛犊不怕虎的他?还是经验老练的她?抑或是沉着冷静来自钞能力的它? (广告之后,精彩继续)

然而不幸的事情还是发生了,晚上回家的路上,志在必得的新司机 cls 带着我和王老爷子回家,车上三位加起来驾驶时长不超过 30h,结果在高速上遇上了年轻人的第一次高速事故,所幸人都没事。下午还在对着车型高谈阔论侃侃而谈的 cls,立马开始仔细钻研保险。我们以及和我们相撞的车都还好,但是在我们相撞的同时,我看着一辆车侧着在我们左前方飞过,地上还有阵阵火花,还是有点恐怖。我也不知道这辆车和我们到底有啥关系,我只能猜测是后车看到前面有车相撞,心里一紧一转方向盘,于是前车没事自己 gg 了。

Indeed, there are a bunch of formats available. Just list a few popular choices here:

  • JSON. Everyone who reads this post right now should have know it :)
  • INI. Do you know there is an operating system, called Windows?
  • YAML. Examples are Kubernetes, Jekyll, and CircleCI.
  • TOML. Examples are PEP 621, which introduces pyproject.toml to Python, and Cargo, which uses Cargo.toml to configure every Rust crate.
  • XML. Examples are Apache Hadoop and Apache Ant.

(Thanks to ChatGPT for providing some of the examples.)

I'd like to put the related formats into four categories, roughly based on the expressivity:

  • Lightweight configuration formats. Examples are JSON, INI, TOML, XML. There are basically human-readable serialization of dictionaries/lists.
  • Medium weight configuration formats. Examples are YAML, OmegaConf. These are more complex (in the sense that templating is possible to some extent) but not fully-fledged.
  • Heavyweight configuration formats. Examples are Nickel, Dhall, Jsonnet, Pkl and RCL. They introduce variables and function, becoming serious Domain-Specific Languages. Some of them are even Turing-complete.
  • General programming languages. Examples are Python (JupyterHub), Lua (WezTerm , neovim), VimL (Vim), Emacs Lisp (Emacs), and even Haskell (xmonad). What I find out is that these projects usually need to define functions/callbacks. I won't discuss them in this post.

Here is a comment from HackerNews, which has a similar classification:

  • Level 1 is just values in a file. The Linux kernel uses that.
  • Level 2 is a list of values, e.g. ini files.
  • Level 3 allows nesting. JSON, XML, and YAML are here.
  • Level 4 allows computation but limited. Dhall and Starlark are here.
  • Level 5 is a Turing-complete language. Python, Javascript, etc.
Read more »

这部剧也不新了。之前早就听说过它的人气,前几天终于抽了个时间把这部剧看了,感觉对得起我对它的期望。这里随手记录一下看过的感受,里面涉及对漫长的季节,Odd Taxi,Manchester by the Sea,The Invisible Guest 和 白夜行 的剧情讨论,没看过的还请绕道。

Read more »

不知怎么的这几天突然想起了沉淀文学,于是自己也玩个梗随便写点东西,顺便把这半个小时水出来的东西当做新年第一篇了 →_→

另外这里的“沉淀”不太会翻译了,ChatGPT 给我翻译成了 accumulation,我个人也感觉挺好的,不知道有没有更好的。

新年快乐 :)

Read more »

从王子屯出发,绕第二城旋转将近一周半后利用重力弹弓前往高树 —— 这就是旅行者号的故事。

在芝加哥待了一阵,因为某些原因最后还是跑路了。这次索性玩把大的。临别芝加哥之际,我发了个票圈文案记录一下,就是上面那句话。这个文案写的特别隐晦,甚至这位聪明的小脑瓜都没看懂:

聪明的小脑瓜

但是我个人还是很满意的,所以专门写了一个官方解读。当时写文案的时候就想着能不能模仿三体里云天明的童话故事的画风,写一个小故事来描述我这一段经历。后来一来不是很想说前东家里发生的事(无可奉告),二来确实这经历也乏善可陈,就只写了一两句话了。之后等我经历更加丰富了,或许也能写出一个云天明的童话故事类似的故事。

Read more »

\(\newcommand{\lpf}{\textnormal{lpf}} \newcommand{\eps}{\varepsilon}\) 之前做 PE 的时候看到一个很有用的数论技巧:令 \(\lpf(x)\) 表示 \(x\) 的最大质因数,我们考虑把 \([n]\) 分成按照 \(\frac{x}{\lpf(x)}\) 来分类,即 \(S_k = \{x: x / \lpf(x) = k\}\),然后每一个 \(S_t\) 单独处理。举个例子,假设我们要求一个积性函数 \(f\) 的前缀和 \(F(x) := \sum\limits_{n=1}^x f(n)\),那么对于一个 \(S_k\),它里面的数的函数和为: \[ \sum_{n \leq x: n / \lpf(n) = k} f(n) = f(k \lpf(k)) + \sum_{\lpf(k) < p \leq x / k} f(kp) = f(k \lpf(k)) + f(k) \sum_{\lpf(k) < p \leq x / k} f(p). \] 后者只要知道形如 \(\tilde F(x) := \sum\limits_{p \leq x} f(p)\) 这样的和就可以了,而这个是有经典解法的。这个算法的更详细的介绍请参考 The prefix-sum of multiplicative function: the black algorithm关于一种积性函数前缀和的通用筛法的时间复杂度证明 - 知乎

显然,这个算法的整体复杂度取决于 \(\tilde F\) 的计算复杂度和有多少个不同的 \(k\)。由于每个问题的 \(f\) 性质不同,\(\tilde F\) 的复杂度会有不同,但是后者相对独立。这里我们就开始研究有多少个不同的 \(k\),即 \(Q_x := \#\{n / \lpf(n): n \leq x\} = \#\{k: k \lpf(k) \leq x\}\) 的大小。

Read more »

注:这篇文章前半部分是八月底写的,后半部分想着别烂尾了所以十一月初才写的,看内容详尽程度明显可以看出来……(活动是七月底举办的,拖延程度可见一斑)

一年一度的 SIGYAO30 又要开办啦!今年的 SIGYAO30 定在西雅图,一来大家都还没去过西雅图,二来刚好有几个人在这里工作。

Read more »

前几天和同事聊天,聊到前几天的北京数学高考题。最后一个题还挺有意思的,我和同事 yy 了好久都不会:

给定两个序列 \(\{a_i\}, \{b_i\} \in [n]^n\),证明存在四个正整数 \(l_a \leq r_a, l_b \leq r_b\) 使得 \[\sum_{i=l_a}^{r_a} a_i = \sum_{i = l_b}^{r_b} b_i.\]

在想这个题的时候,我想到了曾经做 POI 的时候见过的一个题:

给定一个大小为 \(n\) 的序列 \(a\),其中 \(a_i \in \{1, 2\}\)

现在有 \(m\) 个询问,每次给定一个 \(k\),要你找出一个和为 \(k\) 的子段,或者输出不存在。

数据范围为 \(n \leq 10^7, k \leq 10^5\)

Read more »
0%