\(\require{physics}\)

本次是第3章节 “相互依存性与贸易的好处” 的部分问题和解答。


美国和日本工人每人每年都可以生产4辆汽车。一个美国工人每年可以生产10吨粮食,而一个日本工人每年可以生产5吨粮食。为了简化起见,假设每个国家都有1亿工人。

c. 对美国来说,生产一辆汽车的机会成本是多少?生产粮食呢?对日本来说,生产一辆汽车的机会成本是多少?生产粮食呢?

d. 那个国家在生产汽车上具有绝对优势?在生产粮食上呢?

e. 哪个国家在生产汽车上具有相对优势,在生产粮食上呢?

f. 没有贸易时,每个国家都有一半工人生产汽车,一半工人生产粮食。两个国家分别能生产多少汽车和多少粮食呢?

g. 从没有贸易的状况出发,举例说明贸易可以使每个国家的状况变得更好。

生产汽车和粮食数量表:

国家 汽车(辆/人/年) 粮食(吨/人/年)
日本 4 5
美国 4 10

生产汽车和粮食的机会成本表:

国家 生产 1 辆汽车的机会成本 生产 1 吨粮食的机会成本
日本 1.25 吨粮食 0.8 辆汽车
美国 2.5 吨粮食 0.4 辆汽车
阅读全文 »

本次是第2章节 “像经济学家一样思考” 的部分问题和解答。


举出一种没有被包含在简化的循环流量图中的经济交易。

在第2章介绍的简化的循环流量图中,仅包含两个角色——家庭和企业,忽略了政府、金融市场、国际贸易等角色参与下的经济交易:

  1. 政府参与的交易

    税收、转移支付(社会福利、生育补贴)、政府采购

  2. 金融市场的交易

    储蓄、借贷

  3. 国际贸易

    进口、出口

\(\require{physics}\)

阅读全文 »

\(\require{physics}\)

Profiling V.S. Tracing

先给结论:Profile 负责回答“慢在哪里”,Trace 负责回答“为什么会慢”。

参考 Tracing 101,两者可以这样区分:

  • Profiling(采样/热点分析)

    • 典型工具:VTune、Linux perf、pprof
    • 结果:热点函数、调用栈、CPU 占比、内存热点
    • 优势:开销相对小,便于长期趋势对比
    • 局限:上下文较弱,跨线程因果关系不直观
  • Tracing(时序/因果分析)

    • 典型工具:Perfetto
    • 结果:时间线、线程切换、跨线程流转、阶段耗时、Counter 曲线
    • 优势:上下文完整,适合分析卡顿、抖动、排队、阻塞
    • 局限:数据量大,采集策略需要设计
阅读全文 »

在前一篇笔记中,我们介绍了如何使用 Conan 管理 C++ 程序的依赖,但是 Conan Center 中可用的包较少,我们时常需要自行创建 Conan Package,便于依赖管理。这一篇笔记我们将着重介绍如何通过编写 conanfile.py 创建 Conan Package,并简要介绍 Conan-Center 的 GitHub 仓库是如何维护的。

\(\require{physics}\)

阅读全文 »

最近开始学习经济学原理,每一章后有一个”问题与应用“,作为对本章知识点的考察,有些问题还挺有意思的,就用博客将个人思考和 AI 答案记录一下,便于回顾时查看。

本次是第1章节 “经济学十大原理” 的部分问题和解答(结合 AI 生成,不保证一定正确,但个人觉得挺有道理)。

阅读全文 »

之前一直想知道各种三维软件中的虚拟网格是怎么绘制的,于是上网搜了一下相关实现。没想到里面的小细节还挺多,就用一篇博客记录一下吧 ( •̀ ω •́ )。

下图展示了 Blender 中网格的效果:

从图中可以看到几个基本特征:

  1. 网格绘制在世界坐标系下的底面(在一般的右手系坐标系中,Z轴向上,X轴向前,Y轴向右),则对应 XY 平面;

  2. x 轴标记为红色 \((1,0,0)\),y 轴标记为绿色 \((0,1,0)\)

  3. 按照固定间隔绘制网格

阅读全文 »

最近需要在离线开发环境中配置 VS Code。本来想在 Visual Studio Marketplace 网页上手动下载,再拿到 VS Code 里安装,结果发现有些插件无法直接下载打包好的 .vsix 文件。查了一下后发现,可以直接在 VS Code 的扩展面板里下载,所以这里记录一下具体做法。

准备安装包

首先在外网机器上准备好 VS Code 和对应版本的安装包(一般直接使用最新版即可)。可以通过下列方式查看 VS Code 版本:

可以在 这里 下载到对应的安装包。

Caution

一定要确保安装包和外网机器安装的 VS Code 版本一致,否则下载的插件可能无法正常安装。

阅读全文 »

Hello, Shader Toy

Shader(着色器)简单来说就是运行在 GPU 上的一小段程序,用于控制图形渲染的方式。

在传统渲染管线中,GPU 会自动执行一套固定流程,而 Shader 的出现让开发者能够自定义其中的一部分流程,从而实现更灵活、更复杂的图形效果。

Shader Toy 是一个在线的 Shader 编写和展示网站,可以实时展示 Shader 编程效果。

在图形 API(OpenGL)中,支持多种 Shader 类型:

  • Vertex Shader(顶点着色器)
  • Tessellation Shader(细分着色器)
  • Geometry Shader(几何着色器)
  • Fragment Shader(片段着色器)
  • Compute Shader(计算着色器)

而在 Shader Toy 中,所谓的 Shader 通常特指 Fragment Shader。它的输入可以理解为一个覆盖整个显示区域的平面,因此我们可以在 Fragment Shader 中决定显示区域内每一个像素的颜色(RGBA)。

阅读全文 »

Hello Projection

所谓投影,就是 将高维空间中的对象通过某种方式映射到低维空间,或者映射到另一个空间中。如下图所示(图片来自网络)。

当我们在二维平面上展示三维物体时,看到的其实就是三维物体在二维空间中的一个投影,而这个从三维到二维的转换过程就是投影变换。

如果投影过程可以表示成线性变换,就可以用一个矩阵来描述它,如下式所示,其中 \(M_\text{projection}\) 就称为投影变换矩阵。 \[ P^{\prime} = M_{\text{projection}} \cdot P \]

阅读全文 »
0%