精华内容
下载资源
问答
  • 「算法导论」:到底什么是循环不变

    千次阅读 多人点赞 2014-06-28 18:40:34
    第一、对于插入排序来说,每轮循环利用的都是原数组中的前j-1个元素,这里体现的是“不变”,意思是对于每一轮的子集a[1..j-1],它所有的元素就是原数组中前j-1个元素这个事实是不变的。而对于选择排序来讲,这里的...

            算法导论第二章中提出了一个概念---“循环不变式”,书上说:

            在for循环(循环变量为j)的每次迭代开始,包含a[1..j-1]的子数组构成了当前排序好的子数组,余下的子数组a[j+1..n]对应于仍未处理的部分,而元素a[1..j-1]实际上就是原来排在桌子上的那a[1..j-1]的部分,但现在已接按序排列。把a[1..j-1]的这些性质形式地表示为一个循环不变式。

            我的理解是,循环不变式表达的是在循环过程中的一种状态。第一、对于插入排序来说,每轮循环利用的都是原数组中的前j-1个元素,这里体现的是“不变”,意思是对于每一轮的子集a[1..j-1],它所有的元素就是原数组中前j-1个元素这个事实是不变的。而对于选择排序来讲,这里的不变指的又是前j-1个元素是整个数组中最小的j-1个元素这个事实不变。对于其他的循环在特定环境下表现出的意义也不尽相同。第二、在第j轮循环中,元数组的前j-1个元素已经是按约定排好序的了。循环是外部动作,而“不变”及“排好序”是相对的一种状态,只有这样才有充足的理由去类似按归纳法的思想来证明结论的正确性。我觉得这个概念给的相对模糊,看个人理解。

            循环不变式的作用:

            主要用来帮助理解算法的正确性,关于循环不变式,必须证明以下三个性质:

            初始化:循环的第一次迭代之前,它为真。(归纳中的n=1)

            保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。(如果n=i正确,则n=i+1也正确)

            终止:在循环终止时,不变式为我们提供了一个有用的性质,该性质有助于证明算法是正确的。(得出结论当n->无穷时,当然,这里一般是有界的n,则我们要借助循环终止时的状态来利用“保持”一条的规则来推出结论是正确的)

            对于这三个性质的使用,书上有对插入排序分析的一个例子,尤其是第三条的终止条件是和归纳法思想差别比较明显的一步。

    展开全文
  • NS前缀是什么意思

    千次阅读 2020-01-09 09:36:46
    Cocoa / Cocoa Touch中的许多类都有NS前缀。 这是什么意思

    Cocoa / Cocoa Touch中的许多类都有NS前缀。 这是什么意思?


    #1楼

    来自苹果的开发人员文档:

    历史注释:如果您想知道为什么遇到的这么多类都带有NS前缀,那是由于Cocoa和Cocoa Touch的历史。 Cocoa从收集到的用于为NeXTStep操作系统构建应用程序的框架开始。 当苹果公司在1996年购买NeXT时,许多NeXTStep被合并到OS X中,包括现有的类名。 Cocoa Touch作为iOS的Cocoa引入。 Cocoa和Cocoa Touch中都提供了一些类,尽管每种平台也有很多类是唯一的。 保留NS和UI之类的两个字母的前缀(用于iOS上的用户界面元素)供Apple使用。

    来源: 使用Objective-C编程


    #2楼

    Bill Bumgarner aka @bbum应该知道,他 在2005年发布在CocoaBuilder邮件列表中

    在NS前缀生效后,Sun进入了图片。 从NeXTSTEP 3.0迁移到NeXTSTEP 4.0(也称为OpenStep)期间,NS前缀出现在公共API中。 在4.0之前的版本中,少数符号使用NX前缀,但是系统库提供的大多数类根本没有前缀-列表,哈希表,视图等。

    似乎每个人都同意前缀NX(用于NeXT)一直使用到1993/1994年, Apple的文档说

    正式的OpenStep API于1994年9月发布,它是第一个在Foundation和Application Kit之间划分API的人,也是第一个使用“ NS”前缀的人。


    #3楼

    基本上, NS来自N ext S TEP,这是苹果收购Next时成为Mac OS X的原始操作系统。

    我想解释一下其他原因,这就是为什么确实需要它。

    在C ++中有命名空间,几乎所有东西都放在std中

    这就是为什么您拥有std :: string的原因。

    使用了命名空间,因此您更容易出错,并且可以编写自己的类字符串而不与系统冲突。

    Objective-C是C的超集,但是它不包含名称空间,并且出于相同的原因,所有系统类都用NS或其他一些奇怪的前缀进行了前缀。

    这与所有DirectX类如何用D3D预先固定以及所有OpenGL类如何用gl预先固定相同。

    这意味着您不应该使用NS来命名自己的类,并且当您在核心动画中看到NSCA或在核心图形中看到CG时 ,您就会知道这是对系统框架的调用。

    Swift更改了此约定,因为Swift支持名称间隔,并将其核心类型(如String)映射到NS等效项。


    #4楼

    它来自NeXTSTEP的传承。


    #5楼

    Cocoa框架的原始代码来自NeXTSTEP库Foundation和AppKit(这些名称仍被Apple的Cocoa框架使用),而NextStep工程师选择在其符号前加上NS。

    因为Objective-C是C的扩展,因此没有像C ++中那样的名称空间,所以必须给符号加上唯一的前缀,以免它们发生冲突。 这对于框架中定义的符号特别重要。

    如果您正在编写应用程序,以使您的代码仅可能使用您的符号,则不必为此担心。 但是,如果您要编写供他人使用的框架或库,则还应在符号前面加上唯一的前缀。 CocoaDev有一个页面 ,可可社区中的许多开发人员都列出了他们的“选择”前缀。 您可能还会发现此SO讨论很有帮助。


    #6楼

    这是NextStep(= NS)的遗产。 NeXT是史蒂夫·乔布斯(Steve Jobs)于1985年离开苹果后成立的计算机公司,而NextStep是它的操作系统(基于UNIX)以及Obj-C语言和运行时。 连同其库和工具,NextStep后来被更名为OpenStep(这也是NeXT与Sun一起开发的API上的名称),后来又变成了Cocoa。

    这些不同的名称实际上是很令人困惑的(特别是由于某些名称仅在大写或小写字符方面有所不同。),请尝试以下方式进行解释:

    合并开放式混乱


    #7楼

    N eXT S TEP或N eXTSTEP / S取决于您要询问的人。

    Sun在OpenStep上进行了相当大的投资。 在Sun输入图片之前,基金会中的大多数事物都被命名为NX ,以N e X T命名,尽管当时它并不被称为Foundation,而且在Sun进入图片之前的某个时候,所有事物都被重命名为NSS很可能当时不代表Sun,但在Sun达成普遍共识之后, S代表Sun表示对他们的参与表示敬意。

    我实际上对此有参考,但现在找不到。 如果/当我再次找到它时,我将更新该帖子。


    #8楼

    当NeXT定义NextStep API(与NEXTSTEP操作系统相对)时,他们使用NXConstantString中的前缀NX。 当他们用Sun编写OpenStep规范时(不要与OPENSTEP操作系统混淆),他们使用NS前缀,就像在NSObject中一样。


    #9楼

    来自Cocoa_(API)维基百科

    (强调)

    可可类以首字母缩写“ NS”开头(代表OpenStepNeXT-Sun创建 ,或代表OpenStep框架的原始专有术语NeXTSTEP ):NSString,NSArray等。

    Foundation Kit (或更常见的Foundation )首先出现在OpenStep中 。 在Mac OS X上,它基于Core Foundation。 Foundation是一个通用的面向对象的库,提供字符串和值操作,容器和迭代,分布式计算,运行循环以及其他与图形用户界面没有直接联系的功能。 框架中所有类和常量使用的“ NS”前缀来自NeXTSun共同开发的可可的OPENSTEP传统

    展开全文
  • 在我们接触的Windows和Office 或是一些软件时都会有很多版本,其中带VL的版本很多用户不知道其中的意思,VL是什么版本?VL和非VL又有什么区别,下面Win7系统之家小编就和大家分享下VL版本的含义。vol是 volume ...

    在我们接触的Windows和Office 或是一些软件时都会有很多版本,其中带VL的版本很多用户不知道其中的意思,VL是什么版本?VL和非VL又有什么区别,

    vol是 volume licensing for organizations 的简称,中文即“团体批量许可证”。根据这个许可,当企业或者政府需要大量购买一软件时可以获得优惠。这种产品的光盘的卷标都带有"vol"字样,就取"volume"前3个字母,以表明是批量。

    这种版本根据购买数量等又细分为“开放式许可证”(open license)、“选择式许可证(select license)”、“企业协议(enterprise agreement)”、“学术教育许可证(academic volume licensing)”等5种版本,我们说的上海政府 vol 版xp就是这种批量购买的版本。而根据 vol 计划规定, vol 产品是不需要激活的(无论升级到sp1,sp2还是sp3)。

    很简单的说VL就是大客户版!非VL的就是零售版。

    零售版与大客户版的区别在于:

    1、VL为批量授权版本,不能升级成其他版本,也就是说VL版没有windows Anytime Upgrade

    2、零售版与大客户版激活方式:
    mak应该不能用于激活零售版。
    是永久激活,激活成功后记得备份激活信息,以备重装使用。(MAK是有激活次数限制滴)

    VOL可以用MAK用激活或者KMS激活(180天循环一次)。。。

    3、软件内容,功能无任何差别。授权不一样罢了。VL版可以通过KMS激活,非VL版需要密钥

    以上就是Windows系统和Office的VL版本的区别了,功能上都是一样的了,就是授权方式不一样,同时用户使用时激活方法也是不同的了。

    转载于系统之家:http://www.winwin7.com/JC/Win7JC-3304.html

    展开全文
  • 从时频特性出发——什么是循环卷积?

    千次阅读 多人点赞 2020-04-02 12:41:21
    目录背景知识——离散傅里叶级数(DFS)和离散傅里叶变换(DFT)线性卷积和循环卷积从时域看从频域看联想——OFDM中加CP的解释结论 背景知识——离散傅里叶级数(DFS)和离散傅里叶变换(DFT) 首先回顾一套定理性质...

    背景知识——离散傅里叶级数(DFS)和离散傅里叶变换(DFT)

    首先回顾一套定理性质的规律:

    时域 连续非周期 信号对应频域 非周期连续 信号
    时域 连续周期 信号对应频域 非周期离散 信号
    时域 离散非周期 信号对应频域 周期连续 信号
    时域 离散周期 信号对应频域 周期离散 信号

    这四对儿都不拆不散的鸳鸯,在这儿咱们关注第四句

    时域离散周期信号对应频域周期离散信号

    翻译翻译,就是说,时域周期性导致频域离散化,时域离散化将导致频域的周期延拓,从频域导回时域也一样。再定眼一看,这个对应关系是四组中唯一的“离散”对“离散”的。一看见离散就开始上劲了。

    数据离散化对应的操作是抽样,我们看看抽这一对鸳鸯的画面。

    信号时域表示在这里插入图片描述
    图1:信号的时域表示(抽样后)

    alt
    图2:信号的时域表示(抽样后)

    公式是这么回事儿:
    x ~ ( n ) = 1 N ∑ k = 0 N − 1 X ~ ( k ) e j 2 π N n k \tilde x(n) = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {\tilde X(k){e^{j\frac{{2\pi }}{N}nk}}} x~(n)=N1k=0N1X~(k)ejN2πnk
    X ~ ( k ) = ∑ n = 0 N − 1 x ~ ( n ) e − j 2 π N n k \tilde X(k) = \sum\limits_{n = 0}^{N - 1} {\tilde x(n){e^{ - j\frac{{2\pi }}{N}nk}}} X~(k)=n=0N1x~(n)ejN2πnk

    上面这东西,就叫傅里叶级数(DFS)。一般编matlab的更喜欢下面的矩阵形式

    X ~ = F N x ~ x ~ = 1 N F N ∗ X ~ \begin{array}{l} \tilde X = \mathop F\nolimits_N \tilde x\\ \tilde x = \frac{1}{N}\mathop F\nolimits_N^* \tilde X \end{array} X~=FNx~x~=N1FNX~

    F N ∈ N × N \mathop F_N \in N×N FNN×N是matlab里用来执行fft的矩阵, F N ( k , n ) = e − j 2 π N k n \mathop F_N(k,n)={{e^{ - j\frac{{2\pi }}{N}kn}}} FN(k,n)=ejN2πkn

    数据上写‘~’就是为了标记这种周期性的数据,在后续的推导中,看见’~'就知道是长的周期序列。另外注意,这个求和区间是在0到N-1一个周期内,不是 − ∞ -\infty + ∞ +\infty +

    以上就是DFS的基本方案。至于防混叠的抽样间隔选取,z域表达,DFS各种特性等,跟这篇文章关系不大,不说。

    回过头来,常识知道随便给我一个信号,它不可能自带周期性,DFS就玩不转。需要做改变,这个骚操作就叫周期延拓,给一个不是无限长的信号,能让它戴上’~'周期化。翻过来看,从周期序列变到一段实值函数,就是加窗操作。

    x ( n ) = x ~ ( n ) R N ( n ) x(n) = \tilde x(n){R_N}(n) x(n)=x~(n)RN(n)

    对这个不带浪的 x ( n ) x(n) x(n)的时频变换操作,就是DFT。相应的操作就变成了下面的

      x ( n ) = 1 N ∑ k = 0 N − 1 X ( k ) e j 2 π N n k \ x(n) = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {X(k){e^{j\frac{{2\pi }}{N}nk}}}  x(n)=N1k=0N1X(k)ejN2πnk
      X ( k ) = ∑ n = 0 N − 1 x ( n ) e − j 2 π N n k \ X(k) = \sum\limits_{n = 0}^{N - 1} {x(n){e^{ - j\frac{{2\pi }}{N}nk}}}  X(k)=n=0N1x(n)ejN2πnk

    这么一看DFS与DFT没啥大区别,非也。一个是对无限长具有周期性函数的展开,一个是对任一有限长函数的操作,这是实现了不可为到为之的向前一小步。

    线性卷积和循环卷积

    从时域看

    咱们这一块倒着推,先从承认它的存在开始。后续从频域看时,咱们再从它们开始往后推。

    怼公式。
    y ( n ) = x ( n ) ∗ h ( n ) = ∑ m = − ∞ ∞ x ( m ) h ( n − m ) y(n) = x(n)*h(n) = \sum\limits_{m = - \infty }^\infty {x(m)h(n - m)} y(n)=x(n)h(n)=m=x(m)h(nm)
    这是线性卷积,它有一个基本特性是长度M和长度N的两个序列卷一块,出来的是M+N-1的一个序列。

    再怼公式。
    x 3 ( n ) = x 1 ( n ) ⊗ x 2 ( n )                  = [ ∑ m = 0 N − 1 x ~ 1 ( m ) x ~ 2 ( n − m ) ] R N ( n ) \begin{array}{l} {x_3}(n) = {x_1}(n) \otimes {x_2}(n)\\ \;\;\;\;\;\;\;\; = \left[ {\sum\limits_{m = 0}^{N - 1} {{{\tilde x}_1}(m){{\tilde x}_2}(n - m)} } \right]{R_N}(n) \end{array} x3(n)=x1(n)x2(n)=[m=0N1x~1(m)x~2(nm)]RN(n)
    这是循环卷积,开始有点蒙了。再说,它是两个长度一样的序列卷一块,出来的还是长度为N的序列,还会循环移位了。更蒙了,啥啥啥啊。咱们一点点看。

    一个字,线性卷积周期延拓为周期卷积,周期卷积取主值区间为循环卷积。

    意思是搞懂周期卷积就行了呗。

    y ~ ( n ) = x ~ 1 ( n ) ∗ x ~ 2 ( n ) = ∑ m = 0 L − 1 x ~ 1 ( m ) x ~ 2 ( n − m ) = ∑ m = 0 L − 1 x ~ 2 ( m ) x ~ 1 ( n − m ) \begin{array}{c} \tilde y(n) = {{\tilde x}_1}(n)*{{\tilde x}_2}(n)\\= \sum\limits_{m = 0}^{L - 1} {{{\tilde x}_1}(m){{\tilde x}_2}(n - m)} \\= \sum\limits_{m = 0}^{L - 1} {{{\tilde x}_2}(m){{\tilde x}_1}(n - m)} \end{array} y~(n)=x~1(n)x~2(n)=m=0L1x~1(m)x~2(nm)=m=0L1x~2(m)x~1(nm)
    这就叫周期卷积,是两个周期相同的均为L序列,在一个周期内的卷积结果。那么,上面公式里n-m是怎么实现的,也即序列周期卷积时是怎么移位的呢?

    一张图。
    在这里插入图片描述
    图3:有限序列的循环移位过程

    从图里看,有限序列的循环移位包括3步。
    1.周期延拓
    2.移位
    3.加窗
    ( ( ⋅ ) ) N ((·))_N (())N表示模除N。从一个周期看,上述效果就是循环移位了。然后同一个周期内的两个序列对应相乘再求和,周期卷积结果就出来了。

    跟线性卷积不一样的是,“一个周期内” 进行卷积就把它的长度拿捏得死死的了。再长,没用,卡住。完事儿再加个窗,循环卷积结果就出来了,这是从时域来看。

    发现端倪了,上面说的线性卷积的长度M+N-1和周期卷积的L啥关系。一个字,没关系。他们只不过是两种运算规则定义的自身属性,能有啥关系。不过要是从数值结果来看,也能扯上点渊源。如果想让长为L的一个周期内的循环卷积的结果,是纯的,不跟旁边周期掺和的,就得满足L>M+N-1。那循环卷积在操作时,两个序列长度分别是M和N,又咋变成L的,补零就成了。阅尽千帆,卷积还是那个卷积,是套路复杂了。

    从频域看

    怼公式。

    地球人都知道,对一般的线性卷积来说,时域卷积对应频域乘积。
    y ~ ( n ) = x 1 ( n ) ∗ x 2 ( n ) ↔ Y ~ ( k ) = X ~ 1 ( k ) ⋅ X ~ 2 ( k ) \tilde y(n) = {x_1}(n)*{x_2}(n) \leftrightarrow \tilde Y(k) = {{\tilde X}_1}(k) \cdot {{\tilde X}_2}(k) y~(n)=x1(n)x2(n)Y~(k)=X~1(k)X~2(k)
    敲黑板,这是有限求和还是无限求和?无限。

    无限的玩不了,咱就想办法把有限的玩好。经过循环卷积,时域已经完成了有限操作,那么,它对应的频域形式是什么?

    先给结论,与时域循环卷积对应的,是频域DFT的乘积。注意嗷,这两类操作都是有限的。

    再怼公式。
    老套路,给了两个频域有限信号 X 1 ( k ) 和 X 2 ( k ) X_1(k) 和 X_2(k) X1(k)X2(k) ,先延拓为 X 1 ( ( k ) ) N 和 X 2 ( ( k ) ) N X_1((k))_ N 和 X_2((k)) _N X1((k))NX2((k))N

    Y ( k ) = X 1 ( k ) ⋅ X 2 ( k ) Y(k) = {X_1}(k) \cdot {X_2}(k) Y(k)=X1(k)X2(k)
    Y ( ( k ) ) N = X 1 ( ( k ) ) N ⋅ X 2 ( ( k ) ) N Y{((k))_N} = {X_1}{((k))_N} \cdot {X_2}{((k))_N} Y((k))N=X1((k))NX2((k))N

    Y ( ( k ) ) N Y{((k))_N} Y((k))N做IDFS运算
    y ( ( n ) ) N = 1 N ∑ k = 0 N − 1 Y ( ( k ) ) N F − k n = 1 N ∑ k = 0 N − 1 [ ∑ m = 0 N − 1 x 1 ( ( m ) ) N F k m ] [ ∑ r = 0 N − 1 x 2 ( ( r ) ) N F k r ] F − k n = ∑ m = 0 N − 1 x 1 ( ( m ) ) N ∑ r = 0 N − 1 x 2 ( ( r ) ) N [ 1 N ∑ k = 0 N − 1 F − k ( n − m − r ) ] \begin{array}{c} y{((n))_N} = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {Y{{((k))}_N}{F^{ - kn}}} \\ = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {\left[ {\sum\limits_{m = 0}^{N - 1} {{x_1}{{((m))}_N}{F^{km}}} } \right]\left[ {\sum\limits_{r = 0}^{N - 1} {{x_2}{{((r))}_N}{F^{kr}}} } \right]{F^{ - kn}}} \\ = \sum\limits_{m = 0}^{N - 1} {{x_1}{{((m))}_N}} \sum\limits_{r = 0}^{N - 1} {{x_2}{{((r))}_N}} \left[ {\frac{1}{N}\sum\limits_{k = 0}^{N - 1} {{F^{ - k(n - m - r)}}} } \right] \end{array} y((n))N=N1k=0N1Y((k))NFkn=N1k=0N1[m=0N1x1((m))NFkm][r=0N1x2((r))NFkr]Fkn=m=0N1x1((m))Nr=0N1x2((r))N[N1k=0N1Fk(nmr)]

    最后一个中括号里是有正交性的,其结果只有当 r = n + m r=n+m r=n+m的时候才为 1 1 1,别的时候都是0,上面这个式子就可以化成

    y ( ( n ) ) N = ∑ m = 0 N − 1 x 1 ( ( m ) ) N x 2 ( ( n − m ) ) N y({(n))_N}= \sum\limits_{m = 0}^{N - 1} {{x_1}({{(m)})_N}} {x_2}({(n - m))_N} y((n))N=m=0N1x1((m))Nx2((nm))N
    这不就是周期卷积么,再加个窗,就得到下面的式子,也就是循环卷积了。

    y ( n ) = y ( ( n ) N ) R N ( n ) = x 1 ( n ) ⊗ x 2 ( n ) y(n) = y({(n)_N}){R_N}(n) = {x_1}(n) \otimes {x_2}(n) y(n)=y((n)N)RN(n)=x1(n)x2(n)

    另外,由于时频域的对偶性,可以推测有限的时域乘积对应的是有限的频域卷积,也会有别的有趣的结论。不说了。

    联想——OFDM中加CP的解释

    这也是我对循环卷积产生困惑的点。
    现在想来,从时域上看,宽带信道的多径效应和带限特性会产生ISI,用数据片段末端数据作为cyclic pilot (cp)后,把不同径的数据段 “补齐” ,可以统一 “裁剪” 的同时还不损失原本数据,就克服了ISI。
    从频域上看呢?因为是对有限数据进行的时频变换,循环卷积一直存在。假设多径产生的信道冲激响应长度为M,数据段长度为N,一个周期内会产生的卷积的长度为M+N-1。而如果不加CP,接收端以N为窗去截断,就会丢失数据。如果加上CP,使得L=N+CP≥M-N-1,即CP大于等于信道冲激响应强度,循环卷积这时就以L为窗去截了,截到的结果就是线性卷积的循环移位。为此,频域上数据没有丢失,变成了有限长度信道冲激响应和有限长度数据的频域的乘积。所以ISI在频域上也被消除了。

    结论

    最后给结论,玩有限的时候,时域循环卷积对应的是频域DFT乘积。玩无限的时候,时域线性卷积对应的是频域DTFT乘积。

    情况就是这么个情况,因为本科不是搞通信的,这问题困扰了我好久,从认知的角度来说进行了一次不系统的推理,希望对大家有所帮助。第一次编辑,不太会套路,可能会有赘述,谢谢大家包涵。

    展开全文
  • 循环不变(Loop invariant)

    千次阅读 2012-05-03 22:32:59
    循环不变(Loop invariant) 个人理解,欢迎讨论 背景知识: Hoare 逻辑(也叫做Floyd–Hoare 逻辑)是英国计算机科学家 东尼·霍尔 开发的形式系统,随后为 Hoare 和其他研究者所精制。它发表于东尼·霍尔 1969...
  • c语言是什么意思

    千次阅读 2008-10-20 09:34:00
    建议你再看下书 在编译运行后就输出什么东西 i); printf(“x2=%8.4f-%8.4fi/n”r x2); } else {r=-b/(2*a); i =sqrt(-d)/(2*a); printf(“x1=%8.4f+%8.4fi/n”r x1 x2=%8.4f/n” 方程有两个实根 要解释这个问题实在...
  • 循环不变是一种条件(必须满足的条件,对循环而言是保持不变的,无论循环执行了多少次),循环语句没执行一次,就要求中间的结果必须符合不变的要求。(1)进入循环语句时,不变必须成立;(2)循环语句的...
  • C++里面cout.width(4)是什么意思

    千次阅读 2016-05-24 21:25:35
    1.1 什么是C语言...........................1 1.11 C语言的历史..........................58 第二章 方法很多种啦,我们可以这样写: /*一个使用填充,宽度,对齐方式的例子*/ #include <iostream.h> void...
  • 什么是函数编程?

    万次阅读 2018-08-22 11:21:35
    当我们说起函数编程来说,我们会看到如下函数编程的长相: 函数编程的三大特性: immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修改。这样一来...
  • 印刷行业中过UV是什么意思?

    千次阅读 2008-11-25 10:36:00
    一般只有印刷业专门UV技术供应商,才会仔细考虑印刷机的型和印刷的各种成品需求,推荐适合的UV系统。 BEST-UV在UV印刷和上光油应用上,使用适合的标准为“工业用中压力水银灯”或“金属卤素灯”。如第1色(如青色)...
  • Android 一个无限循环滚动的卡片ViewPager

    千次阅读 热门讨论 2017-07-27 16:36:39
    前段时间做了一个关于商城的分享介绍卡片ViewPager,效果看起来还是蛮炫丽的,整体有如下效果特点: 无限轮播 两种卡片布局(中间与两边的不同) 指示灯 滚动到下一个卡片会在Y轴进行偏移 可显示前后卡片的一部分 ...
  • 列表推导: 是对列表进行操作,提供一种简明扼要的方法来创建列表 它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表...
  • 先摘抄“为之漫笔”对这几个概念的一段理解:loop、iterate、traversal和recursion这几个词是...那么这几个词到底各是什么含义,有什么区别和联系呢?下面就试着解释一下。循环(loop),指的是在满足条件的情况下,
  • 循环冗余校验(CRC)算法入门引导

    万次阅读 多人点赞 2012-08-19 12:42:34
    写给嵌入式程序员的循环冗余校验(CRC)算法入门引导 前言 CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验。因此,掌握基本的CRC算法应是...
  • 对于循环缓冲区,传统的操作方法是开辟一块连续的存储区,不断地写入数据,当写入到存储区的末尾的时候,再从存储区的首部再开始写入数据,由此不断地重复下去构成了循环缓冲区。偶曾经写过很多循环缓冲
  • 循环优化与多面体模型

    千次阅读 2019-09-22 21:22:08
    循环转换如Fission(循环裂变)与Fusion(循环融合)的嵌套式循环可促使并行化,并提高工作效率。 本文就几种循环优化的方法与多面体模型的调度进行简要阐述(因为LZ已经被这些循环优化搞得痛不欲生了)。 Loop ...
  • 迭代 循环 区别

    千次阅读 2011-08-26 20:07:25
    个人认为迭代是循环的一种,循环体代码分为固定循环体,和变化的循环体。...所以迭代的意思是:变化的循环,这种变化就是轮番代替,轮流代替。 循环:不变的重复。 固定的循环: for(int i=0;i System
  • 经常会看到类似于 [i for i in range(1,10)] 的表达式,这种表达式称为列表解析(List Comprehensions),类似的还有字典解析、集合解析等等。 列表解析是将一个列表(实际...每个列表解析都可以重写为 for 循环...
  • 嘿, 你知道吗, 再也不需要for循环了!

    千次阅读 2019-01-07 15:23:21
    JavaScript是一门优雅的语言, 这个'优雅'体验在JS逻辑层次处于高段位的水平, 什么意思呢, 就是一个js应用的主线剧情一定全部是函数表达的高层可读逻辑, 还是不懂? 再举个栗子:  一个node.js应用程序中index.js...
  • 在成功的加密项目中,激励循环(Incentive Loops)是很常见的。最棒的加密货币平台或代币通常都内置了鲁棒性(Robust)很好的激励循环(机制)。通过有机增长方式(译者注:Organic growth-有机增长,是指一个公司...
  • 循环冗余校验码

    千次阅读 2020-08-02 10:32:16
    循环冗余校验码简称CRC码,是目前使用非常广泛的数据校验方式.它不仅能校验传递过来的数据正确性,还能筛查出哪一位出现了错误.它的局限性是只能校验一位数据发生跳变,在现实世界当中数据发生跳变很大很大的概率是只有...
  • word)这种循环时,编译运行往往会出现循环不能终止的状况,所以我们有了不知道如何结束这种循环的疑惑。   在 Unix 系统中的实际的现象为:  * 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环; * 当输入...
  • Scala_循环守卫

    千次阅读 2021-06-13 16:20:28
    //就是在for推导后面加了一个if判断,如果i=2直接跳过,(实现java中的continue用法) //就是把for循环体里面的if判断提到了推导里面,这样循环代码块会逻辑非常简洁,一目了然 for(i <- 1 to 10 if i != 2) println...
  • 能模仿韩寒小四写作的神奇循环神经网络

    万次阅读 多人点赞 2016-04-26 19:32:19
    看看这神奇的循环神经网络到底是何许神物,背后的原理又是什么样的。 传统的神经网络(包括CNN)中我们假定所有输入和输出都是相互独立的。很遗憾,对于许多任务而言,这一个假设是不成立的。如果你想预测下一个...
  • 深度学习之RNN(循环神经网络)

    万次阅读 多人点赞 2018-05-28 20:49:09
    什么是RNN, 它到底有什么不同之处? RNN的主要应用领域有哪些呢?这些都是要讨论的问题.  1) BP算法,CNN之后, 为什么还有RNN?  细想BP算法,CNN(卷积神经网络)我们会发现, 他们的输出都是只考虑前一个输入的影响而...
  • scala之for循环

    万次阅读 2018-11-15 18:31:53
    文章目录for循环的几种方式第一种第二种第三种(循环守卫)第四种(引入变量)第五种(嵌套循环)第六种(循环返回值)第七种(会用花括号代替小括号)注意总结 for循环的几种方式 第一种 i 表示循环的变量, &...
  • CRC循环冗余校验的原理

    千次阅读 2018-09-15 12:23:57
    之前学习计算机网络时一直不明白循环冗余校验的原理,今天仔细看了谢希仁的《计算机网络》总算是搞明白了。CRC是数据链路层检验比特差错的校验方法,所谓比特差错,是指在传输过程中1变成0,0变成1的错误。假如在发送...
  • 命令编程(imperative):喜欢大量使用可变对象和指令,我们总是习惯于创建对象或者变量,并且修改它们的状态或者值,或者喜欢提供一系列指令,要求程序执行。 声明编程(Declarative):对于声明的编程范式...
  • 病毒传播、刷屏裂变,想必是很多人员都追求的效果。前几天,微信朋友圈可以说是一片红海,清一色的头像加国旗,文案也是齐刷刷的给我一面国旗@微信官方。这个刷屏活动,让微信用户中超过2亿人参与进来,虽然这次...
  • 如果你不知道为什么循环缓冲区可以利用硬件来做得非常非常高效或者不明白为什么在许许多多的电子产品中都能找到循环缓冲区的影子,那么下面的描述将给你解答。   2.Back in Days of Old... “石器”时代 Once...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,424
精华内容 39,769
关键字:

循环式是什么意思