百鸡问题的另一解法与其几何意义及高维推广

这篇 post 分为 4 大部分:

首先是对原始的百鸡问题的求解,并给出了代码实现。
随后分析了这种解法每一部分的几何意义,并且给出了一部分解存在的条件。
之后尝试了在目标有更多维度时的推广。
最后试着用符号结合伪代码表示了这种解法。

当然,这篇 post 中必然还有不少需要改进的地方,甚至有错误的地方,以及在目标有更多维度时如何更好的实现程序也是还需要进一步讨论的。

这个文档中提到的另一种解法是由教授算法课的老师提出的,现在结合我之前使用的方法(Linear Vector Combination Problem),进行分析、代码实现及在目标为更高的维度中尝试推广。

继续阅读百鸡问题的另一解法与其几何意义及高维推广

从百鸡问题到数学思维

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?

——张丘建《算经》

这里从最最简单的算法开始一步一步讲如何优化,主要涉及的还是数学,Roger Bacon曾在《Opus Majus》写到

It is impossible to know things of this world unless you know mathematics.

——Roger Bacon《Opus Majus》

虽然这篇 post 会一直讲百鸡问题,但是主要还是想以此记录一些在解决某些问题是可能用到的数学思维,并不是只为了做百鸡问题。当然,我的数学也不怎么样qwq不过至少在这道题上,应用数学之后的算法在时间上的减少是比较明显的。

这篇 post 由以下几个部分构成

继续阅读从百鸡问题到数学思维

解读STL里的std::sort函数

本文是个人对 C++ 标准库里的 std::sort 函数的分析、解读。鉴于个人能力有限,文中若有错误、疏漏还请各位来打我啊多多指教QAQ

当然,各家编译器的实现可能不同,这里我是用的是 LLVM 的实现。

LLVM > libcxx release 37 > algorithm

即 Xcode 8.2.1 中所使用的版本。其实在某一行上的实现方式有微小的不同,但是实际上是等价的。而且那一行也不涉及到这里讨论的 std::sort 函数。

trivial difference
trivial difference

这篇 post 由以下几个部分构成

继续阅读解读STL里的std::sort函数

Jetson TX1的散热风扇问题

于是之前在Jetson TX1上玩耍的时候,发现貌似不论温度有多高,散热风扇都不会启动,也许是Nvidia对自己的微型核弹能承受的温度上限很有信心吧,不过为了能让这个微型核弹晚几年再炸,就搞了个监控CPU温度然后自动控制风扇的daemon。

整体思路就是通过读取 /sys/class/thermal/thermal_zone0/temp 判断温度,然后在 /sys/kernel/debug/tegra_fan/target_pwm 写入散热风扇的pwm值。然后本着一切从简的原则,直接用perl写了。

继续阅读Jetson TX1的散热风扇问题

Jetson TX1入手(/ω\)

其实在去年12月10来号的时候,就已经决定要入手一个Jetson TX1做开发了,一方面是因为现在使用的MacBook自带的Intel(R) HD Graphics 515性能比较低,当时用waifu2x把一个720P的视频拉到了2560x1440,跑了两周多吧……另一方面是想学习一些并行计算和机器学习的技术。于是就让梅子帮我拿到了一个教育版的Jetson TX1~(我们学校那时还没有教育邮箱,不过现在可以申请啦)

实际拿到Jetson TX1是在12月30号,不过当时刷完系统,装了torch 7之后发现居然就没剩多少了

df -h
df -h

于是剁了一块SSD(下个月吃土吧_(:_」∠)_)

继续阅读Jetson TX1入手(/ω\)

What's behind and beyond the congested network

不知不觉,这次的「Congested Network, Equilibrium Flow, and System Optimal Flow」课程就结束了,这里面的数学上的细节就都在前几篇笔记中(估计还会有两三篇笔记,近期会整理出来),这一篇post大概是在上完这个课程之后的一些想法吧。

继续阅读What's behind and beyond the congested network

Congested network笔记(4)

第二个谬误的思考方式是在估计和进度安排中使用的工作量单位: 人月。成本的确随开发产品的人数和时间的不同有着很大的变化, 进度却不是如此。因此我认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。 它暗示着人员数量和时间是可以相互替换的。……从而,添加更多的人手,实际上是延长了而不是缩短了时间。

——人月神话

继续阅读Congested network笔记(4)

Congested network笔记(3)

上一篇 Congested network笔记(2) 的最后,我们把问题变成了变分不等式的求解,那么这两个变分不等式在什么情况下存在解,且解唯一呢?

$$\left\{\begin{align}\frac{\partial\mathcal{Z(F)}}{\partial\underline{\mathcal{F}}}\cdot(\mathcal{F}-\underline{\mathcal{F}})&\ge 0&\forall \mathcal{F}\in S&\text{  最优解}\\
\mathcal{C}(\mathcal{F}^*)\cdot(\mathcal{F}-\mathcal{F}^*)&\ge 0&\forall \mathcal{F}\in S&\text{ 均衡解}\end{align}\right.$$

继续阅读Congested network笔记(3)

Code Space