《编程原本 》一第2章 变换及其轨道

第2章 变换及其轨道

本章把变换定义为从一个类型到它自身的规范函数.从一个初始值开始连续应用一个变换,就得到了这个值的轨道.我们要实现一个能确定轨道结构的算法,它只依赖于变换的规范性和轨道的有穷性.这个算法可以应用到不同的领域.例如,可以用它检查一个链接表是否为循环的,或用于分析一个伪随机数生成器.我们将为这一算法推导出一套接口,形式上是一集过程及其参数和结果的定义.对轨道结构算法的分析,使我们可以用最简单的方式介绍自己的编程方法.

时间: 2024-10-23 16:28:00

《编程原本 》一第2章 变换及其轨道的相关文章

《编程原本 》一2.1 变换

2.1 变换 虽然从任意一组类型到任意类型的函数都存在,但是有些具有特殊签名的函数类更为常用.本书中经常用的是两类函数:同源谓词和同源运算.同源谓词在形式上都是Tו••× T → bool;同源运算都是形如Tו••× T → T的函数.一般而言存在着任意的n元谓词和n元运算,但实际中遇到最多的还是一元和二元的同源谓词,一元和二元的同源运算.谓词是返回真值的函数: Predicate(P).FunctionalProcedure(P)∧Codomain(P)=bool 同源谓词也是同源函数:

《编程原本 》一导读

前 言 本书将演绎方法应用于程序设计,讨论程序与保证它们能正确工作的抽象数学理论之间的联系.书中把反映这些理论的规程(speci.cation),基于这些理论写出的算法,以及描述算法性质的引理和定理一起呈现给读者.这些算法在一种实际程序设计语言里的实现是本书的中心.虽然规程主要是供人阅读,但它们也应该(或者说必须)严格地与非形式化的.供机器使用的代码相结合,必须在通用的同时又是抽象而且精确的.与在其他科学和工程领域里的情况一样,适合作为程序设计的基础的同样是演绎方法.演绎方法能帮助我们将复杂系统

《Clojure编程乐趣》—— 第1章,第1.5节小结

1.5 小结 Clojure编程乐趣 我们在本章讨论了很多概念性的东西,但这是必需的,定义了本书余下部分用到的术语.类似地,要进行后续讨论,理解Clojure的基础是很重要的.如果你能从之前的章节了解这些内容,甚至内化为自身的一部分,那么恭喜你:你拥有了继续阅读本书的坚实基础.但如果你尚不确定自己是否了解Clojure,那也OK-我们可以理解,一次消化所有这些内容有点多.随着我们逐渐讲述Clojure的故事,这些东西慢慢就能理解了.如果有函数式编程的背景,之前章节的一些讨论,你很可能会感到很熟悉

c语言-用C语言编程对离散信号进行FFT变换,进行频谱分析并和Matlab频谱分析对比

问题描述 用C语言编程对离散信号进行FFT变换,进行频谱分析并和Matlab频谱分析对比 用C语言编程对离散信号进行FFT变换,进行频谱分析并和Matlab频谱分析对比,各位谁会的帮帮忙吧,这个实在是不会了,网上找的程序都不能用~~ 解决方案 你的系统或者VC有问题.因为你提到新建一个空白的程序都运行不了.在这种情况下,找程序是没用的.建议重装系统和VC,都使用原版的.VS原版http://download.csdn.net/album/detail/639Windows原版msdn.itell

《编程原本 》一2.2 轨道

2.2 轨道 要理解一个变换的全局行为,可以考察其轨道(orbit)的结构.所谓变换的轨道,就是从一个开始元素出发,通过反复应用这一变换能到达的所有元素.如果对某个n.0有y=fn(x),就说y是从x出发在变换f下可达的(reachable).如果有某个n.1使x=fn(x),就说x在f下是环路的(cyclic).如果x不在f的定义空间里,称x在f下是终止点(terminal).x在变换f下的轨道(orbit)就是x 在f 下可达的所有元素的集合. 引理2.2 一条轨道不会同时包含环路元素和终止

《编程原本 》一第3章 可结合运算

第3章 可结合运算 本章讨论可结合的二元运算.可结合性使人可以重组相邻的运算,基于这种重组能力可以得到一个计算二元运算的幂的有效算法.规范性使我们可以用许多程序变换来优化这一算法.我们随后要利用该算法在对数时间里计算各种线性递归,例如计算斐波那契数.

《编程原本 》一第1 章 基础

第1 章 基础 本章从相关思想的一个简洁分类开始介绍一些术语:值.对象.类型.过程和概念,它们表示了与计算机有关的许多不同的理念范畴.这里还要详细讨论本书的中心观点:规范性.对一个过程,规范性意味着它对相等的参数总返回相等的结果.对一个类型,规范性意味着它应该有相等运算符,以及保证相等关系的拷贝构造函数和赋值.规范性使我们能应用等值推理(使用等值替换)去变换和优化程序.

《iOS编程指南》——第 1 章为何选择本地化应用

第 1 章 为何选择本地化应用iOS编程指南早在2007年发布iPhone的时候,苹果并没有一同发布本地化SDK,苹果公司声称不需要本地化SDK,鼓励大家使用JavaScript,CSS和HTML开发Web应用.但接下来剧情并没有按照苹果设计的那样发展,也许是苹果的思想太超前,大多数开发者并不吃这一套,他们希望自己开发的应用和iOS系统内置的应用一样,可以直接访问硬件并和系统高度集成. 于是在iPhone发布后短短几个月,开源社区就完成了一系列苹果原本认为不可能的事情.苹果本来试图通过技术手段把

《.net编程先锋C#》第二章 理论基础-公用语言 运行环境(转)

编程 第二章 理论基础-公用语言 运行环境既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.所以,这一章分为两部分--它们是所有的概念和使用的基础.两部分的内容虽然有些重叠,但它有助于加深理解正在学习的概念. 2.1 NGWS RuntimeNGWS和NGWS Runtime为你提供了一种运行时环境.该运行时管理执行代码,并提供了使编程更容易的服务.只要你的编译器支持这种运行时,你