首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么当我给出'y‘作为输入时这个循环会循环,而当我给出一个'n’时却运行得很好?

当您给出'y'作为输入时,循环会循环的原因可能是因为在循环的条件判断中,判断条件被设置为当输入不等于'n'时继续循环。因此,只要您给出的输入不是'n',无论是'y'还是其他任何字符,循环都会继续执行。

而当您给出'n'作为输入时,循环会正常结束的原因是因为循环的条件判断中,判断条件被设置为当输入等于'n'时结束循环。因此,只有当您给出的输入是'n'时,循环才会结束。

这种设计可能是为了实现某种特定的逻辑或功能。如果您希望循环在输入为'y'时也能正常结束,您可以修改循环的条件判断,使其在输入为'y'时结束循环。具体的修改方式取决于您的代码实现和需求场景。

请注意,以上答案是基于一般情况下的推测,具体情况还需要根据代码实现和上下文来确定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【初阶数据结构篇】插入、希尔、选择、堆排序介绍(上篇)

,显然: 初始为0 末态为n-2 tmp:有序序列后的第一个待排序数据,显然 初始为1 末态为n-1 以一次循环为例: 将tmp与end位置数据进行比较, 若end处更大,需要将end...i(0<i<n)的tmp数据进行插入时,会将其与前面i个数据比较i次,总比较次数即1+2+3+……(n-1),为O(n2) 最好情况:数组升序排列 当我们对下标为i(0<i<n)的tmp数据进行插入时...: 外层循环的时间复杂度可以直接给出为:O(log2n) 或者O(log3n) ,即O(logn) 内层循环: 假设⼀共有n个数据,合计gap组,则每组为n/gap(大致)个;在每组中,插⼊移动的次数最坏的情况下为...n,即前⼀阶段排序次数是逐渐上升的状态,当到达某⼀顶点,排序次数逐渐下降⾄n,⽽该顶点的计算暂时⽆法给出具体的计算过程 内外循环综合来看,外层循环总共log3n次,内层循环的每次排序次数暂时无法精确计算...: 在希尔排序开始增量较大,分组较多,每组的记录数目少,n小,此时直接插入最好和最坏时间复杂度n2差距很小,故各组内直接插入较快,后来增量di逐渐缩小,分组数逐渐减少,各组的记录数目逐渐增多,但由于已经按

9110

【深度学习】Transformer及其变种

例如,当我们需要在论文里解释为什么算法或者改动能够work的时候,一张基于attention的热力图显然更容易说明我们的代码究竟做到了什么。...但是关于多头注意力机制是不是有用,为什么有用,目前还没有一个很好的解释。...An Analysis of BERT’s Attention》一文中,作者分析了,同一层中,不同的头之间的差距,以及这个差距是否随层数变化变化。...例如,当我们需要输出直接复制输入时,Transformer并不能很好地学习到这个操作。 不适合处理超长序列:当针对文章处理,序列的长度很容易就超过512。...一个单层网络通常需要占用GB级别的内存,但是当我们训练一个多层模型,需要保存每一层的激活值和隐变量,以便在反向传播使用。这极大地提高了内存的占用量。

60810
  • 没有之一,我见过的最漂亮代码!!

    我很喜欢这个算法,但我总是无法弄明白算法中最内层的循环。我曾经花两天的时间来调试一个使用了这个循环的复杂程序,并且几年以来,当我需要完成类似的任务,我会很小心地复制这段代码。...由于内部循环总是执行u-l次比较,因此我们可以通过在循环外部增加一个简单的操作来统计比较次数,这就可以使程序运行得更快一些。在示例3-3的Quicksort算法中给出这个修改。...如果我们能够计算这个数值,那么将使我们实验的功能更加强大。我们现在无需对一个n运行多次来估计平均值,只需一个简单的实验便可以得到真实的平均值。...它的运行时间将正比于N2,并且所需的存储空间正比于N这个程序的优点之一就是:在程序执行结束,数组t中将包含数组中从元素0到元素N的真实平均值(不是样本均值的估计)。...当我给出这些没有被实现过的程序感到不安,Alan Perlis的话安慰了我,他说“软件是不是不像任何一个事物,它就是意味着被抛弃:软件的所有意义就是把它看作为一个肥皂泡?”

    1.8K2219

    教程 | 一个基于TensorFlow的简单故事生成案例:带你了解LSTM

    有着最高概率值的元素的索引便是逆序字典中预测符号的索引值(例如:一个 one-hot 向量)。图 2 给出这个过程。 ? 图 2.每一个输入符号被分配给它的独一无二的整数值所替代。...(例如:「mouse」,「mouse」,「mouse」)但并不一定是这个故事中的序列,那么自动生成另一个故事。...将输出表达成单向量是效率较低的方式,尤其当我们有一个现实的单词量大小时。牛津词典有超过 170,000 个单词,上面的例子中只有 112 个单词。再次声明,本文中的示例只为了简化讨论。 3....本文例子中的输入大小为 3,看一看当采用其它大小的输入时会发生什么吧(例如:4,5 或更多)。 5. 每次运行代码都可能生成不同的结果,LSTM 的预测能力也不同。...训练次数越多(超过 150,000 次)精度也相应提高。每次运行代码,建立的词典也不同 6. Tensorboard 在调试中,尤其当检查代码是否正确地建立了图很有用。 7.

    1.2K90

    VS调试技巧

    事实上当我运行起来后屏幕上会一直打印“加油”,好像跟我们的猜测有很大的差别。那么为什么会发生这样的现象呢?像这种情况我们光靠脑子想是想不出来个所以然的,我们需要借助强大的调试功能。...当我们继续按F10给 arr[12] 赋0值后,i 的值也跟着变为0。如此循环下去,程序就陷入了死循环。...(如果你已经看出了问题所在,还请不要声张),但是运行起来才发现有问题,程序陷入了死循环。...作为程序员,不使用调试或不会调试是万万不可的。同时,调试还可以让开发者深入了解程序的运行机制,提高编程技能和经验。...调试解决的是运行时问题,也就是说调试的前提是你的程序先能运行起来,没有简单的语法和链接错误,然后才能调试。

    9810

    通俗易懂--循环神经网络(RNN)的网络结构!(TensorFlow实现)

    例如, 当我们写下⼀个句⼦,可能根据句⼦后⾯的词来修改句⼦前⾯的⽤词。**双向循环神经⽹络通过增加从后往前传递信息的隐藏层来更灵活地处理这类信息。...t)},y^{(t)})L(y′,y)=t=1∑Tx​​L(t)(y′(t),y(t))$ 在这个计算图中,通过y′(1)y^{'(1)}y′(1)可以计算对应的损失函数,于是计算出第一个时间步的损失函数...在这个反向传播的过程中,最重要的信息传递或者说最重要的递归运算就是这个从右到左的运算,这也就是为什么这个算法有一个很别致的名字,叫做**“通过(穿越)时间反向传播(backpropagation through...为什么RNN 训练的时候Loss波动很大 由于RNN特有的memory影响后期其他的RNN的特点,梯度小,learning rate没法个性化的调整,导致RNN在train的过程中,Loss震荡起伏...,为了解决RNN的这个问题,在训练的时候,可以设置临界值,当梯度大于某个临界值,直接截断,用这个临界值作为梯度的大小,防止大幅震荡。

    3.2K30

    对不起,我的代码评审毁了一个程序员!

    他为人很好,我甚至感觉他有点可怜,但我也不能因此放过他的代码。我有权批评他的代码,不是吗?我比他优秀,所以我做的没错。没有人会把很差的代码说成很好,不是吗?...但当我接到另一个拉取请求的审核,事情发生了戏剧性的变化。 刚开始一切一如既往。我打开 pr,查看了它想要解决的问题,设想了一下我可能采用的解决方案,然后开始阅读代码。...技术上,我比这个人更强。所以 1000 行的 pr 中夹杂了我给出的 200 多条评论,似乎这个人毫无生还的希望。 当我把鼠标移到“提交评审”上我突然想:我为什么要这样?...事实证明,你不必成为一名优秀的程序员,只需要说服别人你是一个好的程序员。这种行为造成一种恶性循环,不利于培养专业人员,而是有害的问题。 如果你想爬得更高,那么你无时无刻不担心这种伪装会被识穿。...即便我们在年轻被嘲笑,那并不意味着日后你必须以牙还牙。恶性循环很容易被打破。如果你能够承认另一个开发人员比你更有才华,那么可能你输掉争论,但你的生活也更加幸福。 这有点像日本合气道的做法。

    78520

    学会VS调试

    在介绍调试前,我们需要了解一个东西,bug。相信大家对这个词应该不陌生吧! 想象一下你正在建造一座房子,你按照自己的设计图努力施工,但是等房子建好了,发现有些地方不对劲,比如门打不开,或者屋顶漏雨。...有时候,当我运行代码,发现结果不是我们想要的,这就说明代码里可能有“毛病”,也就是我们说的 bug 。 bug 就是在一个系统、一个东西或者一件事情里,那些影响正常运行或使用的小毛病、小错误。...那你知道bug这个词是怎么来的吗?为什么我们现在管故障叫bug呢?...F5:启动调试,经常用来直接跳到下⼀个断点处,⼀般是和F9配合使用 注意:如果有两个断点,执行逻辑上的第一个断点,不是按顺序执行。...上图中有两个断点,但是由于第一个循环,因此当你使用F5的时候,再次跳到第一个断点,不会跳到第二个断点。

    7210

    线程清理(pthread_cleanup_push函数和pthread_cleanup_pop函数)

    当我们注释掉pop函数调用之后,再次编译,会发现报错如下: ? 当你发现这个错误,无可奈何的时候,你甚至像我一样,检查了好几遍自己的代码。发现没有意料之外的结尾,所有的{}都是成对出现的。...—————————既有趣,又很烦人的坑————————— 下面给出这两个宏的定义,就可以很直观的看到到底是怎么回事。...do...while循环没完。...上述代码中pthread_self()函数是用来获取正在调用它线程的ID。pthread_setcanceltype()函数是用来设置线程取消立即生效的,否则线程取消不是立即生效的。...调用pthread_exit()结束线程; 响应取消线程请求; 用非0的参数调用pthread_cleanup_pop()

    4.1K30

    【概念】深度学习25个概念,值得研读

    如果你想知道我为什么要写这篇文章——我之所以在写,是因为我希望你开始你的深度学习之旅,不会遇到麻烦或是被吓倒。...想象一下,当我们得到新信息我们该怎么做。当我们获取信息,我们一般处理它,然后生成一个输出。...激活的神经元的组合会给出输出值。 一个很好的神经网络定义—— “神经网络由许多相互关联的概念化的人造神经元组成,它们之间传递相互数据,并且具有根据网络”经验“调整的相关权重。...当我们将滤波器滑动到输入体积的宽度和高度,将产生一个二维激活图,给出该滤波器在每个位置的输出。我们将沿深度尺寸堆叠这些激活图,并产生输出量。 你可以看到下面的图,以获得更清晰的印象。 ?...这个神经元的基本优点是它给出了更广义的输出。 ? 23)循环神经网络(RNN)——循环神经网络特别用于顺序数据,其中先前的输出用于预测下一个输出。在这种情况下,网络中有循环

    58570

    深度学习必知必会25个概念

    如果你想知道我为什么要写这篇文章——我之所以在写,是因为我希望你开始你的深度学习之旅,不会遇到麻烦或是被吓倒。...想象一下,当我们得到新信息我们该怎么做。当我们获取信息,我们一般处理它,然后生成一个输出。...激活的神经元的组合会给出输出值。 一个很好的神经网络定义—— “神经网络由许多相互关联的概念化的人造神经元组成,它们之间传递相互数据,并且具有根据网络”经验“调整的相关权重。...当我们将滤波器滑动到输入体积的宽度和高度,将产生一个二维激活图,给出该滤波器在每个位置的输出。我们将沿深度尺寸堆叠这些激活图,并产生输出量。 你可以看到下面的图,以获得更清晰的印象。 ?...这个神经元的基本优点是它给出了更广义的输出。 ? 23)循环神经网络(RNN)——循环神经网络特别用于顺序数据,其中先前的输出用于预测下一个输出。在这种情况下,网络中有循环

    63150

    理解这25个概念,你的人工智能,深度学习,机器学习才算入门!

    如果你想知道我为什么要写这篇文章——我之所以在写,是因为我希望你开始你的深度学习之旅,不会遇到麻烦或是被吓倒。...想象一下,当我们得到新信息我们该怎么做。当我们获取信息,我们一般处理它,然后生成一个输出。...激活的神经元的组合会给出输出值。 一个很好的神经网络定义—— "神经网络由许多相互关联的概念化的人造神经元组成,它们之间传递相互数据,并且具有根据网络"经验"调整的相关权重。...当我们将滤波器滑动到输入体积的宽度和高度,将产生一个二维激活图,给出该滤波器在每个位置的输出。我们将沿深度尺寸堆叠这些激活图,并产生输出量。 你可以看到下面的图,以获得更清晰的印象。 ?...这个神经元的基本优点是它给出了更广义的输出。 ? 23)循环神经网络(RNN)——循环神经网络特别用于顺序数据,其中先前的输出用于预测下一个输出。在这种情况下,网络中有循环

    686141

    CS231n第九节:循环神经网络RNN

    输入一串视频帧的序列,然后生成一个标签代表这个视频中发生了什么动作。另外一个多对一任务的例子是NLP领域的情感分类任务,给出一个句子的单词串,然后判断这个句子的情感类别。...比如说给视频添加字幕,输入是一个可变的视频帧(比如说可能是10分钟的也可能是10小的视频),输出也是不定长度的字幕。卷积神经网络只能接收固定长宽大小的输入,并且不能很好地泛化到不同大小的输入。...为了解决这一问题,我们需要学习循环神经网络RNN。 1.3 RNN概念 RNN基本上就是一个黑盒(如下图左所示),当逐一处理一个输入的序列,黑盒中的“内部状态”也随之更新。...在每个时间段,我们向RNN输入一个向量,RNN将这个内部状态(上一间段的状态)和输入的向量一起作为接收到的输入。当我们调整RNN的权重,RNN在接受同样的输入后,会对内部状态产生不一样的改变。...RNN的预测结果一个得分分布的形式给出,代表了RNN认为在字母表中的每个字母在接下来出现的可能性。

    68540

    R语言的好与坏丨讲座中字视频丨附讲座PDF

    因此一定程度上作为编程语言的R语言与统计概念同义。于是使用其他语言变成不可想象的事。 R语言是领域特定语言(DSL) 要理解一个领域特定语言,你必须了解这个领域。先了解这个领域开始,不是语言。...作为统计学家,我们常常做这类事,在语言中有子语言能够更好的表达。再详细讲解下,设置这一组六个变量,计算X Y Z相加和的平方。这不能按照字面理解为一个多项式的平方,完全不是这个意思。...你能得到所有想知道的信息,这个包含在一个对象中。所以当我调用总结,会打印出一个对象。当我仅只对对象的某部分感兴趣,我会使用$符号。当你想要点样分布的模型的时候,R使用$符。...y~x 指我想绘制关于x的y函数等等。 语言的特点 R是动态型的,具有第一级函数,具有闭包(closures),因此你可以将一个函数作为一个参数传递给另一个函数,诸如此类。...这种对需要的向量进行预分配的方式,是很好的R语言方式。但是不适合C语言,因为浪费内存。所以如果你是一个从C语言转到R语言的程序员,你觉得这种写法很糟糕。没错,这个代码很简洁。但要聪明一点。

    1.8K90

    C程序设计(第四版)课后习题完整版 谭浩强编著

    (一般经历6个阶段:①问题分析;②设计算法;③编写程序;④对源程序进行编辑,编译和连接;⑤运行程序,分析结果;⑥编写程序文档;) 2、为什么需要计算机语言?高级语言的特点?...为什么要提倡结构化的算法? 答:由顺序结构,选择结构,循环结构构成的算法即为结构化的算法。结构化的算法不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。...循环结构有效提高简单重复率高程序的运行效率。...(x=a)&&(y=b)&&0 5. !(a+b)+c-1&&b+c/2 答:如下: 0因为a+b=7是大于c的,这个式子1,b==c是不成立的,0.1&&00。...("该数的平方根为%d\n",result); 12 }else 13 { 14 printf("输入错误,请重新一个小于1000的正数!!!

    1.4K10

    python模块与包揭秘

    math模块对象所有的属性 写过c语言程序的人都喜欢把python中的import比作c中的#include,其实这是不太正确的,因为import不只是把一个文件插入到另一个文件,导入时运行时的运算,程序第一次导入指定文件是...,执行三个步骤: 找到模块文件 编译成位码(需要) 执行模块的代码来创建其定义的对象 上面三个步骤都比较好理解,第三步需要记住,第一次导入模块文件,模块文件是运行的,所以如果你的模块文件中又print...reload函数主要是让我们的程序变得更加动态: 只会在第一次导入时,加载和执行该模块代码 之后导入只会使用已加载模块对象 reload函数强制已加载模块代码重新载入并重新执行。...例如当我自定义了一个文件叫做string.py,然后我另一个文件中有import string这么一条语句,目的是导入内建模块string,但是导入了我自己写的string.py,这是由于在python2.7...还有一个用的比较广泛的技巧:每个模块都有一个__name__属性,如果一个文件是作为模块被导入的那么__name__的值就是它的文件名,如果一个文件是作为主程序运行的(也就是不是被导入的),那么它的__

    48310

    如何才能学习好编程?

    1.知道自己为什么学编程? 明确目标,你才能更好的前进,以终为始才是高效的学习。比如你学习编程最初的动机就是想做一个小游戏,那么这个就是你对目标,你要时刻记住,不要让自己远离它。...盯住目标,我们知道做游戏写程序实现。...但是当我们还不了解学科内容,没有高度优先的问题来引导探究,没有目的的学习很容易让人产生困惑,是没有意义和使人厌烦的。这就好像我们只是一页页地阅读百科全书,只是考察知识,掌握情况。为什么学这些内容?...为什么现在学这些内容?学了这些知识会有什么用?这些问题被不断地提出,但却被学习本身所忽略(不管老师在口头上给出什么样的合理解释)。...游戏中需要用到循环这个时候就学循环,学完后就可以直接用进去,跑完整个流程后,我们对游戏制作过程应该也就了解了,知道了学习做游戏需要用到那些知识,并且也实践过了。

    27620

    交叉熵代价函数定义及其求导推导(读书笔记)

    C=-\frac{1}{n}\sum[ylna+(1-y)ln(1-a)] 其中 n 是训练数据的总数,求和是在所有的训练⼊ x 上进⾏的, y 是对应的⽬标输出。...第⼆,如果对于所有的训练⼊ x,神经元实际的输出接近⽬标值,那么交叉熵将接近 0。 假设在这个例⼦中, y = 0 ⽽ a ≈ 0。这是我们想到得到的结果。...(这里假设输出结果不是0,就是1,实际分类也是这样的) 综上所述,交叉熵是⾮负的,在神经元达到很好的正确率的时候接近 0。这些其实就是我们想要的代价函数的特性。其实这些特性也是⼆次代价函数具备的。...所以,交叉熵就是很好的选择了。但是交叉熵代价函数有⼀个⽐⼆次代价函数更好的特性就是它避免了学习速度下降的问题。为了弄清楚这个情况,我们来算算交叉熵函数关于权重的偏导数。...我这⾥不再给出详细的过程,你可以轻易验证得到: \frac{\partial C}{\partial b}=\frac{1}{n}\sum ({\varsigma}(z)-y) 再⼀次, 这避免了⼆次代价函数中类似

    1K180

    CS224n 笔记1-自然语言处理与深度学习简介1 自然语言处理简介2 词向量(Word Vectors)3 基于奇异值分解(SVD)的方法4 基于迭代的算法-Word2vec

    这个想法就是设计一个模型,其参数为一个词向量(word vector)。然后,在一定的目标上训练模型。在每次迭代中,我们都运行模型,评估错误,并遵循一个规则,对引起模型错误的参数进行更新替换。...我们创建两个矩阵,V∈IRn×|V|和U|V|×n.其中n可以使任意大小的,它定义了嵌入空间的大小。V是输入矩阵,当单词wi作为模型的输入时,V的第i列是wi的输入向量,记为vi。...这幅图片解释了CBOW的工作原理 现在当我们拥有一个V和U我们将会理解CBOW如何工作,将如何学习这两个矩阵?那么我们需要创建一个目标函数。...很多时候,当我们尝试从一些真实概率学习概率,我们期望使用信息理论给出我们两个分布之间距离的度量。 在这里,我选择使用流行的距离/损耗方法来计算交叉熵H(y-hat,y)。...下面解释下公式: 我们假设ch(n)总算是节点n的左孩子,那么当路径向左,[n(w,j+1)=ch(n(w,j))]返回1;当路径向右,[n(w,j+1)=ch(n(w,j))]返回-1.

    1K30

    【C语言】扫雷游戏的一步一步的实现

    但是问题来了,但当我们如果要排查(8,1)这个坐标的时候,当我们开始访问周围一圈8个位置,统计雷的个数,最下面的三个位置由于没有开辟空间,导致数组越界访问,越界访问,代码就执行不起来了呀?...此时此刻我们的雷阵大小的设计是不是创建好了呢,雷是1,非雷是0,如果我们要排查一个某一位置,这个坐标是不是雷,这个坐标周围有一个雷,我们将统计周围的雷数量打印在棋盘上的时候,这个雷如果打印在棋盘上面,那到底是雷的个数信息...将雷的信息放在一个棋盘上,雷的个数信息通过专门给玩家猜雷的棋盘,玩家猜雷的棋盘统计雷的棋盘并打印在玩家的棋盘上,而我们的埋雷的棋盘上的信息并没有发生相应的改变。...1.2.2 ⽂件结构设计 当我们去写一个游戏,设计一个游戏,我们可以采用分文件的形式来写: 1 test.c //⽂件中写游戏的测试逻辑 2 game.c //⽂件中写游戏中函数的实现等 3...,玩与不玩,接下来,巧妙的地方来了,我们把玩家输入的选择作为do....while(intput)的循环条件,因为这样可以让玩家选择继续玩,或者退出!

    13410
    领券