一、时间复杂度的估计
1.1 三种方法
估算分治问题的时间复杂度一共有三种普遍的方法:
智能体系结构(Intelligent Architecture)是我大三上学期报的一门选修课。这门课的主要实验目的是搭建一个人工神经网络(可能是卷积神经网络)的加速器。在接触这门课前我对于这个名词一无所知。
现在来看,大概是这个意思,人工神经网络是一种模拟人脑神经结构的数学模型,这个数学模型需要计算机辅助实现。但是这个数学模型跟计算机原有的冯诺依曼体系有些不搭配。我们常见的计算机一般将存储和数据处理分离,但是显然我们脑子不是这样的,我们的脑子的存储和数据架构并没有分开,而且存储的形式也不是一种固态的仓库,而更像是一种数据加工过程的趋势。所以我们考虑搭建新的硬件架构,去适应人工神经网络这个数学模型,一旦适应了,就起到了“加速”的作用,这也是被称为“加速器”的原因。
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
,然后完成构造。