精华内容
下载资源
问答
  • #include<stdio.h> struct student { int bh; char name[20];... printf("1.... printf("2.... printf("3.... printf("4.... printf("5.... printf("6.... printf("请输入编号:");... printf("查无此客户,请重新输入\n"); }
  • import java.util.Scanner; import edu.princeton.cs.algs4.Bag;...如上代码,我想问的是在控制台输入一组数据怎么得出结果,一直都是输入的过程,按回车也是继续输入数据,怎么停止输入到背包中计算结果啊?
  • 如果在刚开始学习算法,做算法题的时候,题上经常会要求输入组数据,对于刚开始学习的小白来说,可能不知道怎么输入组数据,也不知道该怎么处理,刚好想起来,就把方法记录一下 怎么输入组数据? 一般题中...
  • C/C++中输入组数据方法

    万次阅读 多人点赞 2017-07-31 10:58:35
    如果在刚开始学习算法,做算法题的时候,题上经常会要求输入组数据,对于刚开始学习的小白来说,可能不知道怎么输入组数据,也不知道该怎么处理,刚好想起来,就把方法记录一下 怎么输入组数据? 一般题中...

    如果在刚开始学习算法,做算法题的时候,题上经常会要求输入多组数据,对于刚开始学习的小白来说,可能不知道怎么算输入多组数据,也不知道该怎么处理,刚好想起来,就把方法记录一下


    怎么算输入多组数据?


    一般题中要求输入多组数据的意思就是读取数量不定的输入数据(不能确定输入数据的数量),在这种情况下,需要不断读取数据直至没有新的输入为止。


    方法一:

    #include <stdio.h>
    int main()
    {
        int a;
        while(scanf("%d",&a)!=EOF)
        {
            printf("%d\n",a);
        }
        return 0;
    }

    上面是使用C语言的的方法,把输入语句作为while循环的判断条件,当输入数据不是文件结束符(EOF)的时候,就可以实现连续输入



    方法二:

    #include <iostream>
    using namespace std;
    int main()
    {
        for(int i;cin>>i;)
        {
            cout << i << endl;
        }
        return 0;
    }

    方法二是用C++for循环实现,将输入语句作为for循环的condition部分,而expression部分省略不写,因为条件部分能改变i的值,所以这个循环无需表达式部分,其中,条件部分不断检查输入流的内容,只要读取完所有的输入或者遇到一个输入错误就终止循环



    方法三:

    #include <iostream>
    using namespace std;
    int main()
    {
        int a;
        while(cin>>a)
        {
            cout << a << endl;
        }
        return 0;
    }


    方法三和方法二类似,使用istream对象作为循环的判断条件,检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符(EOF)或者遇到一个无效输入时istream对象的状态就会变为无效。处于无效状态的istream对象会使条件变假



    展开全文
  • matlab程序是个关于灰色关联度计算的,现在大概知道框架是这样,现在问题是网页怎么调用matlab程序
  • 比如我输入112 34 50 则为正确,就等待输入 输入112 a 34 则为错误 但并不是舍弃a之后的数,而是将112 和 34 都读入 现在遇到的问题就是无法...但是如果不加cin.sync的话那么就永远停留在a这个错的地方,请问怎么跳过
  • 向量和矩阵不是MATLAB提供的将数据组合成个实体的唯一手段使用者自定 义的数据结构也是有效的它能够使程序设计者创造出数字字符串和数混 合在一起的变量类型作为例子我们创造个包含个学生信息的数据结构 ...
  • 文 | Conor Lazarou译 | Mr Bear对抗生成网络(GAN)是一种在给定一组旧的「真实」样本的情况下,生成新的「人造」样本的工具。这些样本几乎可以是任何的东西:手写数字、人脸图片、表现主义绘画作品,等等所有你能...

    759c251238357d8845227c0a5bfeb0aa.png

    文 | Conor Lazarou

    译 | Mr Bear

    对抗生成网络(GAN)是一种在给定一组旧的「真实」样本的情况下,生成新的「人造」样本的工具。这些样本几乎可以是任何的东西:手写数字、人脸图片、表现主义绘画作品,等等所有你能想出的物体。

    为了实现这一点,GAN 会学习到原始数据集背后的底层数据分布。在整个训练过程中,生成器会近似这个分布,而判别器将会告诉它哪里产生了错误,在这种博弈中,二者交替地得到提升。为了从分布中抽取出随机的样本,我们将会把随机噪声作为生成器的输入。然而,你是否曾经想过:为什么 GAN 需要随机输入呢?一种广为接受的答案是:这样,GAN 就不会每次生成相同的结果。这确实是事实,但这个问题的真正答案实际上还暗藏玄机!

    1、随机采样

    在我们继续讨论 GAN 之前,不妨先宕开一笔,讨论一下从正态分布中采样的问题。假设你想要在 Python 环境下做到这一点,而你从未阅读过有关「numpy」库的文件,也不知道「np.random.normal()」方法的存在,此时你只能利用「random.random()」(该方法会均匀地生成(0,1)区间内的值)。

    eb19c93e74b762aaf997f56c15b3c680.png
    图 1:从我们的输入中采样得到 100,000 个样本的直方图,蓝色为均匀分布,橙色为我们的目标:正态分布。

    简而言之,我们希望将图 1 中蓝色的分布转换为橙色的分布。幸运的是,有一种函数可以做到这一点:逆累积分布函数(又称分位函数)。(非逆的)累积分布函数(CDF)如图二所示,它描述了从所讨论的分布中任意抽取出的值小于等于特定的 x 值的概率。

    c60d5cf87cb7803ba63cb8f8866abbcb.png
    图 2:标准正态分布的 CDF 曲线

    举例而言,如图 2 所示,在 x = 0 时,y = 0.5;这意味着 50% 的分布落在 x = 0 左侧。CDF的一个方便的特性是:输出的范围在 0 到 1 之间,这正是我们可以通过「random.random()」函数得到的输入!如果我们对 CDF 求反函数(将其坐标轴翻转),我们就可以得到分位函数:

    1825e1062d93296eda677dafe61b028f.png
    图 3:标准正态分布的分位函数

    该函数为我们给出了确切的分位数(范围在 0 到 1 之间的 x)和相应的正态分布中的值的对应关系,让我们可以直接从正态分布中采样。也就是说「 f(random.random()) ~ N(0, 1)」,其中输入空间中的每个点都对应于输出空间中的唯一一个点。

    849da1cc2df4a4477ec1e8e99eb2228f.png
    图 4:使用分位函数将均匀分布(蓝色)映射到正态分布(橙色)的示意图。

    2、这与 GAN 有何关系?

    在上述场景下,我们在处理过程中使用了分位函数。但如果我们不这么做,并且必须学习一个从输入空间到输出空间的映射,那该怎么办呢?这正是 GAN 旨在解决的问题。

    在《Training a GAN to Sample from the Normal Distribution》一文中,我们解释了在数据紧缺、并且没有可以使用的分位函数的情况下,如何使用 GAN 从正态分布中采样。

    阅读链接:https://towardsdatascience.com/training-a-gan-to-sample-from-the-normal-distribution-4095a11e78de

    从这个角度看来,我们发现不将 GAN 看做随机采样的工具,而是将 k 维潜在(输入)空间映射到 p 维采样(输出)空间是很有益的,后者可以被用来将潜在空间中的样本变换为采样空间中的样本。这样看的话,正如分位函数一样,就不会涉及到随机性的问题。在这种映射下,我们不妨考虑一下如何只将 0 到 1 之间的一维随机样本作为输入,从一个二维的正态分布中抽取随机样本。

    8e8aef90ba75b51de707dedc9f2629ec.png
    图 5:一个二维的正态分布(橙色)和一维的均匀分布(蓝色)的示意图,样本量为 100,000。

    我们如何将蓝色直线中的 100,000 份样本映射到橙色部分中的 100,000 分样本中去呢?貌似没有很好的方法能做到这一点。

    当然,我们可以使用 Peano 曲线,但是这样我们就会失去某种很有用的特性,即:令数据点在输入空间中距离相近,也会使数据点在输出空间中接近,反之亦然。

    正因为如此,GAN 的潜在空间的维度必须大于或等于其采样空间的维度。这样的话,函数就有足够的自由度将输入映射到输出上。

    出于兴趣,让我们将只拥有一维输入的 GAN 学习多维分布的过程可视化出来。也许你不会对这些结果感到惊讶,但它们仍然非常有趣,值得一看。

    3、二维高斯分布

    首先,让我们讨论一下如图 5 所示的问题:将 0 到 1 之前的数据映射到二维正态(又称「高斯」)分布上。我们在这里将使用一个典型的原始 GAN 架构(代码链接见文末)。

    2c012f23f60a3fc950bf2ce87428e5f9.png
    图 6:一个潜在空间维数为 1 的 GAN 试图学习二维高斯分布。灰色的点是从真实分布中抽样得到的样本,红色的点是生成的样本。每一帧都是一个训练步。

    如你所见,这种糟糕的办法并不知道应该要做什么。由于只有一个自由度,它很难探索采样空间。

    更糟糕的是,由于生成的样本被密集地包围在一个一维的流形中(实际上,这个动图中灰色的点和红色点的数量是一样的!),判别器就可以懈怠了,永远不用努力地将真实点和生成的点区分开来,这样一来生成器就不会得到非常有用的信息(即使它有能力,也不足以学习一个空间填充曲线)。

    图 6 展示了前 600 个训练步的情况。三万步后,结果如下图所示:

    f7b4df00865fd783789b651a103254a6.png
    图 7:在 30,000 个训练步后,图 6 中的 GAN 学到的分布。

    这个涂鸦一样的曲线很可爱,但它几乎与高斯分布无关。GAN 在 30,000 步后完全没有学习到映射。在这种背景下,让我们考虑一下具有相同架构和训练例程的 GAN 在给定二维、三维、十维,以及一百维潜在空间时,映射到上述分布时的表现:

    2c7101ecf958eeac1e884fe06b2d77f6.png
    图 8:拥有二维、三维、十维,以及一百维潜在空间的 GAN 在训练了 30,000 训练步后的输出。

    拥有二维潜在空间的 GAN 的性能要远优于一维潜在空间的 GAN,但是仍然与目标分布差距很大,存在一些明显的扭结。拥有三维和十维潜在空间的 GAN 生成了具有视觉说服力的结果,而一百维的 GAN 生成了似乎具有正确方差但是均值错误的高斯分布。但是我们要注意到,高维 GAN 在输出空间为高斯分布的前提下,实际上是有一定特殊性的,因为大量均匀分布的均值近似于正态分布(中心极限定理)。

    4、八个高斯分布

    782abd0e5f04025889eabd8526b6e068.png
    图 9:八个高斯分布

    顾名思义,图 9 中的八个高斯分布指的是:八个二维高斯分布围绕原点排列成一个圆圈,每个高斯分布的方差足够小、几乎没有重叠,协方差为零。虽然样本空间是二维的,但这种分布的合理编码需要三个维度:第一个维度是离散的,描述了模式(编号为 1 到 8),另外的两个维度分别描述了该模式的 x 和 y 坐标。我将「latent_dim」设置为 1,在八个高斯分布上将 GAN 训练了 600 步,结果如下:

    6f63456d030bfe2ec0cced3499bfdd89.png
    图10:潜在维度为 1 的 GAN 试图学习八个高斯分布。灰色的点是从真实分布中抽取出来的样本,红色的点代表生成的样本。每一帧都是一个训练步。

    正如所料,GAN 很难学习到有效的映射。在 30,000 个训练步后,学到的分布如下:

    2aa414d2e357461a87293aa3b1e5719e.png
    图 11:图 10 中的 GAN 经过了 30,000 个训练步后学到的分布。

    显然,GAN 很难将一维潜在空间映射到这个三维分布中:最右边的模式被忽略掉了,模式之间的区域生成了大量的样本,而且这些样本也并不服从正态分布。作为对比,我们不妨再考虑下面四个 GAN,他们的潜在维度分别为 2,3,10,以及100,在经过了 30,000 个训练步后,结果如下所示:

    dcd5d9cf812eb626d0454b6acaba59dc.png
    图 12:潜在空间为二维、三维、十维以及一百维的 GAN,在经历了 30,000 个训练步后的输出。

    在没有实际度量真实分布和学习到的分布之间的 KL 散度时,很难说上面哪种情况是最好的,但是潜在空间维度较低的 GAN 似乎在模式之间的负空间内生成的样本更少。更有趣的是,二维的 GAN 并没有展现出模式崩溃的问题,三维和十维的 GAN 仅仅显示出了轻微的模式崩溃,而一百维的 GAN 在两个模式上并未能生成样本。

    5、螺旋式分布

    3c409fa4817c7a499b26108d6d552c17.png
    图 13:螺旋式分布。随着螺旋从圆心向外扩展,分布的密度在减小,在悬臂上横向的密度是均匀的。

    如图 13 所示的螺旋式分布,从某种程度上来说比八个高斯分布的问题更简单。螺旋式分布只有一种模式(尽管被拉长和扭曲了),GAN 不会被迫将其连续输入离散化。它可以被高效地描述为两个维度:一个维度描述沿着螺旋的位置,另一个维度描述在螺旋内横向的位置。

    我将 「latent_dim」设置为 1,对 GAN 训练了 600 步,结果如下:

    713ef777ac8a2d6eac6fe4a59d2abece.png
    图 14:潜在维度为 1 的 GAN 试图拟合螺旋分布。灰色的点是从真实分布中抽取出的样本,红色的点是生成的样本。每一帧都是一个训练步。

    相同的,GAN 也难以学到有效的映射。在经历了 30,000 个训练步后,学到的分布如下:

    e5c5b37692cbf9a897cc10cc3d5731da.png
    图 15:图 14 中的 GAN 学到的分布,在经历了 30,000 个训练步后的结果。

    与「八个高斯分布」一节中的情况相类似,GAN 在映射螺旋式分布时性能很差。螺旋中有两个区域没有能够被拟合,而且在负空间内生成了许多样本。

    我在文章《GANs and Inefficient Mappings》中详细地讨论了这个低效率的映射问题,因此这里不再赘述。

    阅读链接:https://towardsdatascience.com/gans-and-inefficient-mappings-f185fdd62a78

    相反,我们不妨再考虑下面四个 GAN,他们的潜在维度分别为 2,3,10,以及100,在经过了 30,000 个训练步后,结果如下所示:

    a714becf56dc177a10c7ea6fe6bb42e2.png
    图 16:潜在空间为二维、三维、十维和一百维的 GAN 在经历了 30,000 个训练步后的输出。

    同样的,在没有真正度量 KL 散度的情况下,很难说上面哪种情况是最好的,但是覆盖率、均匀性、在负空间内的样本是很值得研究的问题。

    6、结语

    人们很容易陷入对 GAN 的狂热中,把它们当作“魔法机器”,用随机数作为燃料来创造出新的样本。了解一个工具如何工作的基本原理,对于有效地使用它以及在它损坏时进行故障排除是至关重要的。

    对于 GAN 来说,这就意味着理解生成器所做的是学习从一些潜在空间到一些采样空间的映射,并理解学习是如何进行的。将一维分布映射到高维分布的极端情况清晰地说明了这种任务有多复杂。

    本项目使用的所有代码可以从下面的 GitHub 代码仓库中获取:

    https://github.com/ConorLazarou/medium/tree/master/12020/visualizing_gan_dimensions

    展开全文
  • 对于多组数据输入

    2019-04-29 22:27:24
    怎么输入组数据? 一般题中要求输入组数据的意思就是读取数量不定的输入数据(不能确定输入数据的数量),在这种情况下,需要不断读取数据直至没有新的输入为止。 方法: 1 2 3 4 5 6 7 8 9 10 #include <...

    怎么算输入多组数据?

    一般题中要求输入多组数据的意思就是读取数量不定的输入数据(不能确定输入数据的数量),在这种情况下,需要不断读取数据直至没有新的输入为止。

    方法一:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    #include <stdio.h> 
    int main() 
    { 
      int a; 
      while(scanf("%d",&a)!=EOF) 
      { 
        printf("%d\n",a); 
      } 
      return 0; 
    } 
    

    上面是使用C语言的的方法,把输入语句作为while循环的判断条件,当输入数据不是文件结束符(EOF)的时候,就可以实现连续输入

    方法二:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    #include <iostream> 
    using namespace std; 
    int main() 
    { 
      for(int i;cin>>i;) 
      { 
        cout << i << endl; 
      } 
      return 0; 
    }
    

    方法二是用C++for循环实现,将输入语句作为for循环的condition部分,而expression部分省略不写,因为条件部分能改变i的值,所以这个循环无需表达式部分,其中,条件部分不断检查输入流的内容,只要读取完所有的输入或者遇到一个输入错误就终止循环

    方法三:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    c

    #include <iostream> 
    using namespace std;
    int main() 
    { 
      int a; 
      while(cin>>a) 
      { 
        cout << a << endl; 
      } 
      return 0; 
    } 
    

    这个方法按ENTER键加Z键结束录入

    方法三和方法二类似,使用istream对象作为循环的判断条件,检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符(EOF)或者遇到一个无效输入时istream对象的状态就会变为无效。处于无效状态的istream对象会使条件变假。
    ------------转载于脚本之家

    展开全文
  • 输入组数据,每组格式如下 m n A B 其中m,n 分别表示顺序表A和B的元素个数,A、B为顺序表元素 输出 顺序表C的从小到大的输出。(请注意输出,行末无空格)最后行无换行符 我最初的想法是 while(cin>>m) { cin...
  • 输入有多组数据 输入一个正整数n。 Output 输出数列前n项的和。输出保留5位小数。 #include int main(void){ int i,n; double s; while(scanf("%d", &n)!=0) { scanf("%d",&n); if(n) ...
  • 个结构体表示信息,信息包括作业编号,提交时间,运行时间 下面是编码,请问要怎么改 //录入数据按钮 void CMFCApplication2Dlg::OnBnClickedButton1() { counter = GetDlgItemInt(IDC_EDIT5,NULL,TRUE)...
  • 昨天,终于搞明白用whlile语句来多输入到底怎么一回事,希望能让大家明白: 就...=0)就可以达到目的,其实要明白在while里scanf()的返回值是正确输入的变量的个数,比如当你输入一个数,他返回的值就是1,while...

        昨天,终于搞明白用whlile语句来多组输入到底怎么一回事,希望能让大家明白:

        就比如说有一个题,要你多组输入,当输入为0时结束程序,你该用while语句怎样去写呢?

        开始我并不太明白,以为while(scanf("%d",&n)!=0)就可以达到目的,其实要明白在while里scanf()的返回值是正确输入的变量的个数,比如当你输入一个数,他返回的值就是1,while(scanf("%d",&n)!=0)就相当于while(1!=0),显然这样写,并不是输入0时,程序结束。

       所以有两种方法:

       1.while(scanf("%d",&n))                   //当n有输入时

          {if(n==0)                                        //如果n=0

           break;  }                                         //程序结束

       2.while(~scanf("%d",&n)&&n!=0)

         注意:~的意思实际上是检测是不是到文件尾,没 ~就错了

       写了这么多东西,希望对大家有所帮助啊。

    展开全文
  • 安装并导入模块打开命令行窗口,输入:pip install -i https://mirrors.aliyun.com/pypi/simple/ openpyxl导入:from openpyxl import load_workbook打开表格有两种方式:1、sheet = workbook.active 打开活跃的/...
  • UEFI控制台设计是支持很多类型的终端[1]...EFI Scan Codes先说一下EFI scan codes,EFI Scan Codes是在UEFI环境下,键盘上的功能键(ESC,F1-F12,方向键)对应的一组数值,在BIOS启动过程中,从键盘按下按键后,从EF...
  • 怎么编程你输进去一个数据 然后输出的会是一组数列 其中前两个数字之和等于第三个数字。例如你输入7, 输出会显示1,2,3,5,8,13,21(每行显示一个数)
  • C语言接收一组数据

    2014-01-29 19:47:24
    编程中经常会用到接收一组输入数据,通常情况下需要先指定输入数据的个数,不指定的情况下怎么做呢? scanf("%d",&a[0]); while(getchar()!='\n') { i++; scanf("%d",&a[i]); } 这种方法相当于交替...
  • 需求:在命令行任意输入一组数字(0~9),然后统计这组数据中每个数字出现的个数,然后将统计个数逆序输出 输出样例: 开始分解: 1、首先看到样例输出,第一想到的是什么,怎么从命令行中获取一组数字(根据...
  • 1. 就是红色圈出来这部分就是运行时的效果,应该怎么实现呢,想了for循环 for (int i = 0; i ; i++) { Scanner input=new Scanner(System.in); String temp =input.nextLine(); String a[]=temp.split(" "); ...
  • 点击蓝字关注我们通过上篇文章,大家已经了解到R中有4种数据类型(数值型、字符型、逻辑型、因子型),它们的组合形式有5种(向量、矩阵、数组、数据框、列表)。今天我们通过个例子来介绍如何在R中创建常用的数据...
  • 输入一个数组,求出这个数组中的逆序对的总数。 示例 1: ​ 输入: [7,5,6,4] 输出: 5方法:归并排序思路这道题就想到了双循环暴力法,但是马上我就知道肯定会超时,然后,我就没有想法了......题解是使用归并排序...
  • 1. 几个概念1.1 表达式• 表达式... 表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响• 如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出1.2 语句• 一个语法上自成体系的单位,它由一...
  • 比如我现在有一个book表,里面有一组001~100id的数据,我现在想实现随便输入一组id{003,005,006,009,056...},从表中查询出这组数据,请问这个的sqlite语句怎么写,新手入门,求大神帮忙!!!
  • 今天给大家分享怎么快速对指定数据标记颜色先来看数据表:有些情况下我们为了方便操作需要对一些指定的数字或者字符串进行高亮显示以便我们后续的工作顺利开展,今天给大家带来两种方法:、条件格式:选中需要...
  • 目录Python输入和输出...语法格式:变量名=input("输入提示信息字符串")功能:从标准输入读取行,并以字符串形式返回(去掉结尾的换行符)注意:通过int()、float()、eval()和input()函数的组合,可以输入整数或小...
  • json配置文件可以按时间顺序多组数据,并将其输入至程序中吗![图片说明]... 像这样是输入一组数据,那可以要求每一秒都产生这样一组数据输入到程序当中吗?该怎么操作?
  • 我的数据是在excel里,一组365个数字,希望有大神可以帮忙!!!感谢!!! 代码来源:https://www.cnblogs.com/huangyc/p/10274881.html from scipy.special import logsumexp from utils.misc_utils import * ...
  • 【简答题】为“gzsd成绩管理”数据库添加个文件(名为 group1)并将个次要数据文件(逻辑名称为arch2,实际文件名为archdat2.ndf)添加到此文件中。【判断题】音节是听觉上自然感到的最小的语音单位。【单选题】...
  • 数据有多组输入,第一行输入一个整数n(1),表示食材的数量;接下来一行为n个整数ai(1),表示每种食材的料理难度。以EOF结束。 输出要求 对于每组数据,每行输出一个整数,为最短花费时间。 例如 5 1 1 1 1 1, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 980
精华内容 392
关键字:

怎么输入一组数据