0%

一、时间复杂度的估计

1.1 三种方法

估算分治问题的时间复杂度一共有三种普遍的方法:

image-20220922153507509

1.2 代入法

Read more »

一、经典句型

1.1 论说文经典句型

1.1.1 话题引起

这个部分主要由两个部分组成,一个是引起话题的东西,即

awareness, tendency, discussion, situation, phenomenon, concern, fact
Read more »

一、总论

智能体系结构(Intelligent Architecture)是我大三上学期报的一门选修课。这门课的主要实验目的是搭建一个人工神经网络(可能是卷积神经网络)的加速器。在接触这门课前我对于这个名词一无所知。

现在来看,大概是这个意思,人工神经网络是一种模拟人脑神经结构的数学模型,这个数学模型需要计算机辅助实现。但是这个数学模型跟计算机原有的冯诺依曼体系有些不搭配。我们常见的计算机一般将存储和数据处理分离,但是显然我们脑子不是这样的,我们的脑子的存储和数据架构并没有分开,而且存储的形式也不是一种固态的仓库,而更像是一种数据加工过程的趋势。所以我们考虑搭建新的硬件架构,去适应人工神经网络这个数学模型,一旦适应了,就起到了“加速”的作用,这也是被称为“加速器”的原因。


二、计算机的抽象

Read more »

一、面向对象基础

1.1 定义

class Point
    def initialize(x, y)
        @x = x
        @y = y
    end
end

point = Point.new(0, 1)
puts point.is_a? Point		# true

其中 initialize 方法充当了构造器,以 @ 开头的变量是实例变量,也就是说是 Java 中的属性。

我们利用 new 方法创造一个变量,类似于一个工厂方法。如果往深里探究,应该是 new 方法是一个类对象方法,也就是说,Point 可以作为一个类,同时它也是 Class 这个类的一个对象,他作为对象有一个方法是 new 。这个 new 会调用实例方法(就是 java 中的非静态方法) new ,然后完成构造。

Read more »

一、脚本语言

我似乎对于 Python 和 Ruby 强求太多了,我要让他们实现 C 的所有功能。他们确实可以实现所有的功能,但是他们的目的不是为了这个。

我也可以用 shell 实现很多复杂的算法,但是我绝对不会用他去写图着色或者动态规划。但是我使用 python 和 Ruby 的时候却又这种倾向。我不会强求 C 为我列出目录中的所有文件,但是我却会强求 python,可叹啊。

我之前似乎把语言看成了算法和架构的载体和实现,怪不得过得这么不幸福。


Read more »

一、除常数优化的定义

对于任何处理器,进行除法计算所需要的时间都远远高于乘法和移位运算(当然这两者也不在一个量级上),所以我们有一种想法,就是把除法转换成乘法和移位操作,也就是

这个式子是一个很容易看懂的式子,不幸的是,这个式子是没有办法直接应用到我们的处理器上的。

如果想要应用到我们的处理器上,需要做出很多的妥协和让步,本文其实是一篇论文的注释,对于具体内容,大家可以参考论文:Division by Invariant Integers using Multiplication


Read more »