徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

查找表

指数 查找表

在计算机科学中,查找表(Lookup Table)是用简单的查询操作替换运行时计算的数组或者关联数组这样的数据结构。由于从内存中提取数值经常要比复杂的计算速度快很多,所以这样得到的速度提升是很显著的。 一个经典的例子就是三角函數表。每次计算所需的正弦值在一些应用中可能会慢得无法忍受,为了避免这种情况,应用程序可以在刚开始的一段时间计算一定数量的角度的正弦值,譬如计算每个整数角度的正弦值,在后面的程序需要正弦值的时候,使用查找表从内存中提取临近角度的正弦值而不是使用数学公式进行计算。 在计算机出现之前,人们使用类似的表格来加快手工计算的速度。非常流行的表格有三角、对数、统计density函数。另外一种用来加快手工计算的工具是计算尺。 一些折衷的方法是同时使用查找表和插值这样需要少许计算量的方法,这种方法对于两个预计算的值之间的部分能够提供更高的精度,这样稍微地增加了计算量但是大幅度地提高了应用程序所需的精度。根据预先计算的数值,这种方法在保持同样精度的前提下也减小了查找表的尺寸。 在图像处理中,查找表将索引号与输出值建立联系。'''颜色表'''作为一种普通的 LUT 是用来确定特定图像中每一像素所要显示的颜色和强度。 另外需要注意的一个问题是,尽管查找表经常效率很高,但是如果所替换的计算相当简单的话就会得不偿失,这不仅仅因为从内存中提取结果需要更多的时间,而且因为它增大了所需的内存并且破坏了高速缓存。如果查找表太大,那么几乎每次访问查找表都会导致高速缓存缺失,这在处理器速度超过内存速度的时候愈发成为一个问题。在编译器优化的(rematerialization)过程中也会出现类似的问题。在一些环境如Java编程语言中,由于强制性的边界检查带来的每次查找的附加比较和分支过程,所以查找表可能开销更大。 如何构建查找表有两个基本的约束条件,一个是可用内存的数量;不能构建一个超过能用内存空间的表格,尽管可以构建一个以查找速度为代价的基于磁盘的查找表。另外一个约束条件是初始计算查找表的时间——尽管这项工作不需要经常做,但是如果耗费的时间不可接受,那么也不适合使用查找表。.

25 关系: 布尔逻辑三角函数循环展开像素唯讀記憶體关联数组图像处理C语言现场可编程逻辑门阵列线性插值真值表高速缓存高速缓存缺失计算尺计算机图形计算机科学连续函数Java插值正弦泰勒级数数字电路数组数据结构数据选择器

布尔逻辑

布尔逻辑(Boolean algebra,台湾译--,中國大陸譯--)得名于乔治·布尔,他是爱尔兰科克的皇后学院的英国数学家,他在十九世纪中叶首次定义了逻辑的代数系统。现在,布尔逻辑在电子学、计算机硬件和软件中有很多应用。在1937年,克劳德·艾尔伍德·香农展示了布尔逻辑如何在电子学中使用。 使用集合代数作为介绍布尔逻辑的一种方式。还使用文氏图来展示各种布尔逻辑陈述所描述的集合联系。.

新!!: 查找表和布尔逻辑 · 查看更多 »

三角函数

三角函数(Trigonometric functions)是数学中常见的一类关于角度的函数。三角函数将直角三角形的内角和它的两个边的比值相关联,也可以等价地用与单位圆有关的各种线段的长度来定义。三角函数在研究三角形和圆等几何形状的性质时有重要作用,也是研究周期性现象的基础数学工具。在数学分析中,三角函数也被定义为无穷级数或特定微分方程的解,允许它们的取值扩展到任意实数值,甚至是复数值。 常见的三角函数包括正弦函数(\sin)、余弦函数(\cos)和正切函数(\tan或者\operatorname);在航海学、测绘学、工程学等其他学科中,还会用到如余切函数、正割函数、余割函数、正矢函数、半正矢函数等其他的三角函数。不同的三角函数之间的关系可以通过几何直观或者计算得出,称为三角恒等式。 三角函数一般用于计算三角形中未知长度的边和未知的角度,在导航、工程学以及物理学方面都有广泛的用途。另外,以三角函数为模版,可以定义一类相似的函数,叫做双曲函数。常见的双曲函数也被称为双曲正弦函数、双曲余弦函数等等。.

新!!: 查找表和三角函数 · 查看更多 »

循环展开

循环展开,英文中称(Loop unwinding或loop unrolling),是一种牺牲程序的尺寸来加快程序的执行速度的优化方法。可以由程序员完成,也可由编译器自动优化完成。 循环展开最常用来降低循环开销,为具有多个功能单元的处理器提供指令级并行。也有利于指令流水线的调度。.

新!!: 查找表和循环展开 · 查看更多 »

像素

--,為影像顯示的基本單位,譯自英文「pixel」,pix是英语单词picture的常用简写,加上英语单词“元素”element,就得到pixel,故“像素”表示「畫像元素」之意,有時亦被稱為pel(picture element)。每个这样的訊息元素不是一个点或者一个方块,而是一个抽象的取樣。仔细處理的话,一幅影像中的像素可以在任何尺度上看起来都不像分离的点或者方块;但是在很多情况下,它们采用点或者方块显示。每個像素可有各自的顏色值,可採三原色顯示,因而又分成紅、綠、藍三種子像素(RGB色域),或者青、品红、黄和黑(CMYK色域,印刷行业以及打印机中常见)。照片是一个个取樣点的集合,在影像没有经过不正确的/有损的压缩或相机镜头合适的前提下,單位面積内的像素越多代表解析度越高,所顯示的影像就會接近于真实物体。.

新!!: 查找表和像素 · 查看更多 »

唯讀記憶體

唯讀記憶體(Read-Only Memory,ROM)是一種半導體記憶體,其特性是一旦儲存資料就無法再將之改變或刪除,且內容不會因為電源關閉而消失。在電子或電腦系統中,通常用以儲存不需經常變更的程式或資料,例如早期的家用電腦如Apple II的監督程式 、BASIC語言直譯器、與硬體點陣字型,個人電腦IBM PC/XT/AT的BIOS(基本输入输出系統)與IBM PC/XT的BASIC直譯器,與其他各種微電腦系統中的韌體(Firmware),均儲存在ROM內。.

新!!: 查找表和唯讀記憶體 · 查看更多 »

关联数组

在计算机科学中,关联数组(),又称映射()、字典()是一个抽象的数据结构,它包含着类似于(键,值)的有序对。一个关联数组中的有序对可以重复(如C++中的multimap)也可以不重复(如C++中的map)。 这种数据结构包含以下几种常见的操作:.

新!!: 查找表和关联数组 · 查看更多 »

图像处理

图像处理是指对图像进行分析、加工、和处理,使其满足视觉、心理或其他要求的技术。图像处理是信号处理在图像领域上的一个应用。目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。此外,基于光学理论的处理方法依然占有重要的地位。 图像处理是信号处理的子类,另外与计算机科学、人工智能等领域也有密切的关系。 传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪、量化等。然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。.

新!!: 查找表和图像处理 · 查看更多 »

C语言

C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.

新!!: 查找表和C语言 · 查看更多 »

现场可编程逻辑门阵列

場可编程逻辑閘阵列(Field Programmable Gate Array,縮寫為FPGA),它是在PAL、GAL、CPLD等可程式邏輯裝置的基础上进一步发展的产物。它是作为特殊應用積體電路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。.

新!!: 查找表和现场可编程逻辑门阵列 · 查看更多 »

线性插值

线性插值是数学、计算机图形学等领域广泛使用的一种简单插值方法。.

新!!: 查找表和线性插值 · 查看更多 »

真值表

真值表是使用於邏輯中(特別是在連結邏輯代數、布爾函數和命題邏輯上)的一類數學用表,用來計算邏輯表示式在每種論證(即每種邏輯變數取值的組合)上的值。尤其是,真值表可以用來判斷一個命題表示式是否對所有允許的輸入值皆為真,亦即是否為邏輯有效的。 「用真值表製表的推理模式是由弗雷格、查尔斯·皮尔士和恩斯特·施羅德於1880年代所发明的。這種表格於1920年代之後廣泛地發現在許多文獻上頭(扬·武卡谢维奇、埃米爾·波斯特、维特根斯坦)”(蒯因, 39)。路易斯·卡罗早在1894年就公式化了真值表来解决特定问题,但是包含他这项工作的手稿直到1977年才被发现 。维特根斯坦的《逻辑哲学论》利用真值表把真值函数置于序列中。这个著作的广泛影响导致了真值表的传播。 真值表被用來計算以「決策程序」建構的命題表示式的值。命題表示式可以是一個原子公式(命題常數、命題變數或命題函數,如Px或P(x)),或以邏輯算子(如邏輯與(\land)、邏輯或(\lor)、邏輯非(\lnot))由原子公式建構出來的公式。舉例來說,Fx \land Gx即是個命題表示式。 真值表中的列标题展示了 (i)命题函数与/或变量,和 (ii)建造自这些命题函数或变量和运算符的真值泛函表达式。行展示对 (i)和 (ii)的T或F指派的每个可能的求值。换句话说,每行都是对 (i)和 (ii)的不同解释。 经典(就是说二值)逻辑的真值表限定于只有两个真值是可能的布尔逻辑系统,它们是“真”或“假”,通常在表中简单的表示为T和F。.

新!!: 查找表和真值表 · 查看更多 »

高速缓存

#重定向 缓存.

新!!: 查找表和高速缓存 · 查看更多 »

高速缓存缺失

#重定向 CPU缓存.

新!!: 查找表和高速缓存缺失 · 查看更多 »

计算尺

算尺(slide rule),或计算尺,即对数计算尺,是一种模擬計算機,通常由三个互相锁定的有刻度的长条和一个滑动窗口(称为游标)组成。在1970年代之前使用广泛,之后被电子计算器所取代,成为过时技术。.

新!!: 查找表和计算尺 · 查看更多 »

计算机图形

计算机图形、電腦圖像(Computer Graphics)是指用计算机所创造的图形。更具体的说,就是在计算机上用专门的软件和硬件用来表现和控制图像数据。 计算机图形的发展使用户能更容易与计算机互动,更好的明白和解释多种类型的数据。发展计算机图形对多种媒体有深远的影响,并彻底改变了动画、电影和电子游戏行业。.

新!!: 查找表和计算机图形 · 查看更多 »

计算机科学

计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

新!!: 查找表和计算机科学 · 查看更多 »

连续函数

在数学中,连续是函数的一种属性。直观上来说,连续的函数就是当输入值的变化足够小的时候,输出的变化也会随之足够小的函数。如果输入值的某种微小的变化会产生输出值的一个突然的跳跃甚至无法定义,则这个函数被称为是不连续的函数(或者说具有不连续性)。 举例来说,考虑描述一棵树的高度随时间而变化的函数h(t),那么这个函数是连续的(除非树被砍断)。又例如,假设T(P)表示地球上某一点P的空气温度,则这个函数也是连续的。事实上,古典物理学中有一句格言:“自然界中,一切都是连续的。”相比之下,如果M(t)表述在时间t的时候银行账户上的钱币金额,则这个函数无论在存钱或者取钱的时候都会有跳跃,因此函数M(t)是不连续的。.

新!!: 查找表和连续函数 · 查看更多 »

Java

Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.

新!!: 查找表和Java · 查看更多 »

插值

数学的数值分析领域中,內插或稱插值(interpolation)是一種通过已知的、离散的数据點,在範圍內推求新數據點的过程或方法。求解科学和工程的问题時,通常有許多數據點藉由采样、实验等方法获得,这些数据可能代表了有限個數值函數,其中自變量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。 與插值密切相關的另一個問題是通過簡單函數逼近複雜函數。假設給定函數的公式是已知的,但是太複雜以至於不能有效地進行評估。來自原始函數的一些已知數據點,或許會使用較簡單的函數來產生插值。當然,若使用一個簡單的函數來估計原始數據點時,通常會出現插值誤差;然而,取決於該問題领域和所使用的插值方法,以簡單函數推得的插值數據,可能會比所導致的精度損失更大。 內插是曲线必须通过已知点的拟合。参见拟合条目。 例如,已知数据:.

新!!: 查找表和插值 · 查看更多 »

正弦

在數學中,正弦(英語:sine、縮寫sin)是一種週期函數,是三角函数的一種。它的定义域是整个实数集,值域是。它是周期函数,其最小正周期为2π。在自变量为(4n+1)π/2(n为整数)时,该函数有极大值1;在自变量为(4n+3)π/2时,该函数有极小值-1。正弦函数是奇函数,其图像关于原点对称。.

新!!: 查找表和正弦 · 查看更多 »

泰勒级数

在数学中,泰勒级数(Taylor series)用无限项连加式——级数来表示一个函数,这些相加的项由函数在某一点的导数求得。泰勒级数是以于1715年发表了泰勒公式的英國数学家布魯克·泰勒(Sir Brook Taylor)来命名的。通过函数在自变量零点的导数求得的泰勒级数又叫做麦克劳林级数,以苏格兰数学家科林·麦克劳林的名字命名。 拉格朗日在1797年之前,最先提出帶有餘項的現在形式的泰勒定理。实际应用中,泰勒级数需要截断,只取有限项,可以用泰勒定理估算这种近似的误差。一个函数的有限项的泰勒级数叫做泰勒多项式。一个函数的泰勒级数是其泰勒多项式的极限(如果存在极限)。即使泰勒级数在每点都收敛,函数与其泰勒级数也可能不相等。开区间(或复平面开片)上,与自身泰勒级数相等的函数称为解析函数。.

新!!: 查找表和泰勒级数 · 查看更多 »

数字电路

数字电路或数字集成电路是由许多的逻辑门组成的复杂电路。与模拟电路相比,它主要进行数字信号的处理(即信号以0与1两个状态表示),因此抗干扰能力较强。数字集成电路有各种门电路、触发器以及由它们构成的各种组合逻辑电路和时序逻辑电路。一个数字系统一般由控制部件和运算部件组成,在时脈的驱动下,控制部件控制运算部件完成所要执行的动作。通过類比數位轉換器、數位類比轉換器,数字电路可以和模拟电路互相连接。.

新!!: 查找表和数字电路 · 查看更多 »

数组

在計算機科學中,陣列資料結構(array data structure),簡稱数组(Array),是由相同类型的元素(element)的集合所組成的資料結構,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素對應的儲存地址。 最簡單的資料結構類型是一維陣列。例如,索引為0到9的32位元整數陣列,可作為在記憶體位址2000,2004,2008,...2036中,儲存10個變量,因此索引為i的元素即在記憶體中的2000+4×i位址。陣列第一個元素的記憶體位址稱為第一位址或基礎位址。 二维数组,对应于數學上的矩陣概念,可表示為二維矩形格。例如: a.

新!!: 查找表和数组 · 查看更多 »

数据结构

在计算机科学中,数据结构(data structure)是计算机中存储、组织数据的方式。 数据结构意味着介面或封装:一个数据结构可被视为两个函数之间的介面,或者是由数据类型联合组成的存储内容的访问方法封装。 大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。举例而言,可為空的引用(nullable reference)是引用与可辨识联合的结合体,而最简单的链式结构链表则是由记录与可空引用构成。 数据结构可透过程式语言所提供的数据类型、引用及其他操作加以实现。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,支援各種程式執行。 不同种类的数据结构适合不同种类的应用,部分資料結構甚至是為了解決特定問題而設計出來的。例如B树即為加快樹狀結構存取速度而設計的資料結構,常被應用在資料庫和檔案系統上。 正確的数据结构選擇可以提高演算法的效率(請參考)。在電腦程式设计的過程裡,选择适当的数据结构是一項重要工作。许多大型系统的編寫经验顯示,程式設計的困难程度与最终成果的质量与表现,取决于是否选择了最適合的数据结构。 系統架構的关键因素是数据结构而非算法的見解,导致了多种形式化的设计方法与编程语言的出现。绝大多数的语言都带有某种程度上的模块化思想,透过将数据结构的具体实现封装隐藏于使用者介面之后的方法,来让不同的应用程序能够安全地重用这些数据结构。C++、Java、Python等面向对象的编程语言可使用类 (计算机科学)来達到這個目的。 因为数据结构概念的普及,现代编程语言及其API中都包含了多种預設的数据结构,例如 C++ 标准模板库中的容器、Java集合框架以及微软的.NET Framework。.

新!!: 查找表和数据结构 · 查看更多 »

数据选择器

在电子技术(特别是数字电路)中,数据选择器(multiplexer,简称:MUX),或称多路复用器,是一种可以从多个模拟或数字输入信号中选择一个信号进行输出的器件。 一个有 2n 输入端的数据选择器有 n 个可选择的输入-输出线路,可以通过控制端来选择其中一个信号被选择作为输出。 数据选择器主要用于增加一定量的时间和带宽内的可以通过网络发送的数据量。 数据选择器使多个信号共享一个设备或资源,例如一个模拟数字转换器或一个传输线,而不必给每一个输入信号配备一个设备。.

新!!: 查找表和数据选择器 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »