n2

结对编程 第二阶段报告

£可爱£侵袭症+ 提交于 2020-04-05 21:08:16
一、实验目标   1)体验敏捷开发中的两人合作。   2)进一步提高个人编程技巧与实践。 二 、实验内容   1)根据以下问题描述,练习结对编程(pair programming)实践;   2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。   3)要求在结对编程工作期间,两人的角色至少切换 4 次;   4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。 1、代码规范 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 尽量使用标准库函数和公共函数。 不要随意定义全局变量,尽量使用局部变量。 使用括号以避免二义性。 可读性第一,效率第二。 保持注释与代码完全一致。 每个源程序文件,都有文件头说明,说明规格见规范。 每个函数,都有函数头说明,说明规格见规范。 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义 2、程序的总体设计 程序流程图: 3、程序结对编程过程及功能实现情况 刚开始我们确定了选题为四则运算,用C语言实现,不过后来实验中觉得用Python比较好就更改了实验环境。 代码: import random #四则运算 def szys(): sym = ['+', '-', '×', '÷'] f= random.randint(0, 3

结对编程 第二阶段

帅比萌擦擦* 提交于 2020-04-04 18:05:49
一、实验目标: 1)体验敏捷开发中的两人合作。 2)进一步提高个人编程技巧与实践。 二 、实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践; 2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。 3)要求在结对编程工作期间,两人的角色至少切换 4 次; 4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。 三、 问题描述(二选一) 1)生命游戏 生命游戏是英国数学家 约翰·何顿·康威 在 1970 年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。 游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。 游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态: 每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;

C#中ref与out使用小结

陌路散爱 提交于 2020-04-03 12:01:05
使用ref前需要将变量初始化,而使用out前初始化与否都可以,ref传递的是参数的地址,out则是参数的返回值,ref传递的参数在函数退出时,赋值与否,编译器都不会报错;而out传递的参数则需要在退出函数时完成赋值操作。 示例如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyTest { class Program { static void Method1(out int nNum) { nNum = 10; } static void Method2(ref int nNum) { nNum = 20; } static void Main(string[] args) { int n1; int n2 = 1; Console.WriteLine("n2 = {0}", n2); Method1(out n1); Method2(ref n2); Console.WriteLine("n1 = {0}", n1); Console.WriteLine("n2 = {0}", n2); Console.ReadKey(); } } } 来源: https://www

数构与算法 | 什么是大 O 表示算法时间复杂度

烂漫一生 提交于 2020-03-28 18:22:03
 正文: 开篇我们先思考这么一个问题:一台老式的 CPU 的计算机运行 O(n) 的程序,和一台速度提高的新式 CPU 的计算机运 O(n2) 的程序。谁的程运行效率高呢? 答案是前者优于后者。为什么呢?我们从时间复杂度分析就可以知道。 1、什么是时间复杂度? 在进行算法分析时,语句总的执行次数 T(n) 是关于问题的规模n 的函数,进而分析 T(n) 随 n 的变化情况并确定 T(n) 的数量级,算法的时间复杂度,也就是算法的时间度量,记作:T(n) = O(f( ))。它表示随问题的规模 n 的增大,算法的执行时间的增长率 f(n) 的增长率相同,称作算法的渐近时间复杂度,简称为时间的复杂度,其中 f(n) 是问题规模n的某个函数。 这样用大写 [ O( ) ] 来体现算法时间复杂度的记法,我们就称之为大O记法。例如:O(n)、O(1)、O(n2)、O(log n) 等等。一般情况下,随着 n 的增大,T(n) 增长最慢的算法为最优算法。 2、推导大O阶的方法 如何推导大O阶的表示方法,总结了三句口诀: 用时间1取代运算时间中的所有加法常数。 在修改后的运行的函数中,只保留最高阶项。 如果最高阶项存在且不是1,则去除与这个项相乘的常数。得到的结果就是大O阶。 说了太多文字显得太抽象,我们来看看一个例子你就明白了。 如图这个时间复杂度你知道是多少吗? ​ 分析: 当 i = 0时

二叉树的有关计算

て烟熏妆下的殇ゞ 提交于 2020-03-26 12:01:18
有关概念:https://www.cnblogs.com/schips/p/10630533.html 参考:  https://blog.csdn.net/bojie5744/article/details/30744767 计算公式 https://blog.csdn.net/stf1065716904/article/details/80874065 1. n个节点的二叉树一共有((2n)!)/(n! * (n+1)!)种   catalan数,C(n)=(1/(n+1))*((2*n)!/(n!*n!)) 2. n层二叉树的第n层最多为2^(n-1)个 3. 二叉树节点计算公式 N = n0+n1+n2,度为0的叶子节点比度为2的节点数多一个。N=1*n1+2*n2+1 4. 对任何一棵二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1 5. 具有n个节点的完全二叉树的深度为log2(n) + 1 6. B-树,除叶子与根节点以外的任意结点的分支数介于[m/2,m](取上整) 7. 具有n 个结点的完全二叉树的深度为[log2n]+1 二叉树的度计算 有一个计算二叉树节点的公式,相信很多人都知道:   度为0的节点数为度为2的节点数加1,即n0=n2+1,知道这个公式,相关题目就可以轻松解决; 下面来讨论下如何得出这个公式的: 设: k:总度数 k+1

同符号数学运算

两盒软妹~` 提交于 2020-03-24 20:38:12
N=eval(input()) t=0 if N<0: n1=-N+10 n2=-N-10 n3=-N*10 t=-1 else: n1=N+10 n2=N-10 n3=N*10 t=1 if n1<0: n1=-n1 if n2<0: n2=-n2 if n3<0: n3=-n3 print(t*N,n1*t,n2*t,n3*t) 来源: https://www.cnblogs.com/2640335699qqcom/p/12561351.html

构建高可用ZooKeeper集群

时光毁灭记忆、已成空白 提交于 2020-03-22 06:03:37
ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基 础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。    本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式、集群组成、容灾和水平扩容四方面逐步深入,最终构建出高可用的 ZooKeeper 集群。 运行模式   Zookeeper 有三种运行模式:单机模式、伪集群模式和集群模式。 单机模式   这种模式一般适用于开发测试环境,一方面我们没有那么多机器资源,另外就是平时的开发调试并不需要极好的稳定性。   在 Linux 环境下运行单机模式需要执行以下步骤:    1. 准备 Java 运行环境     安装 Java 1.6 或更高版本的 JDK,并配置好 Java 相关的环境变量 $JAVA_HOME 。    2. 下载 ZooKeeper 安装包     下载地址: http://zookeeper.apache.org/releases.html 。选择最新的 stable 版本并解压到指定目录,我们用 $ZK_HOME

day2-python基础2

痴心易碎 提交于 2020-03-21 04:49:53
本节内容   1、列表,元组的使用   2、字符串操作   3、字典操作   4、集合操作   5、文件操作 1、列表,元组的使用         列表是python常用的数据类型,通过列表实现对数据的存储、修改等操作。 定义列表 1 n2 = ['a','b','c','d'] #通过中括号存储数据赋予给n2 通过列表的下标取值 n2 = ['a','b','c','d'] print(n2[0]) print(n2[1]) print(n2[2]) print(n2[3]) 切片 n2 = ['a','b','c','d'] print(n2[1:3])  #取下标1-3的值,包括1 'b'、不包括3 'd' #['b', 'c'] print(n2[:])  #取所有值 #['a', 'b', 'c', 'd']   print(n2[-1])  #取倒数第一的值 #d print(n2[0:3:1])  #一个一个值取0-3的值,但不包括3 'd'的值 #['a', 'b', 'c'] print(n2[0:3:2])  #两个两个值取0-3的值,但不包括3 'd'的值 #['a', 'c'] print(n2[-3:-1]) #取倒数第三至倒数第一的值,但是不包括-1 'd'的值 #['b', 'c'] print(n2[-3:])  #取倒数第三至倒数第一的值 #['b

01.Python安装与初识

放肆的年华 提交于 2020-03-16 03:49:29
1.python开发概要 一、Linux基础    计算机以及日后我们开发的程序放置的服务器的简单操作 二、Python开发   a. Python基础    b. 网络编程   c. WEB框架 --用于写网站   d. 设计模式 + 算法   e. 项目阶段 2.编程语言介绍 一、开发语言:   高级语言:Python Java、PHP C# Go ruby C++… → 字节码   低级语言:C、汇编 → 机器码 二、语言之间的对比:    PHP类:适用于写网页,局限性    Python Java: 及可以写网页 也可以写后台功能    - Python执行效率低,开发效率高    - Java执行效率高, 开发效率低 3.Python种类介绍 一、Python种类:        JPython    IronPython    JavaScriptPython    RubyPython    CPython **********    ...    pypy 这是用CPython开发的Python 4.Python安装及环境变量 一、安装:   Python安装在OS上,   执行操作:写一个文件文件中按照python的规则写,将文件交给Python软件,读取文件中的内容,然后进行转换和执行,最终获取结果。   Python软件 ==> Python解释器(内存管理

数据结构 - 树、二叉树、完全二叉树、真二叉树、满二叉树

血红的双手。 提交于 2020-03-10 10:13:07
01-树 节点的度:子树的个数。 树的度:所有节点度中的最大值。 叶子节点:度为0的节点。 非叶子节点:度不为0的节点。 层数:根节点在第一层,根节点的子节点在第二层,以此类推 节点的深度:从根节点到当前节点的唯一路径上的节点总数。 节点的高度:从当前节点到最远叶子节点的路径上的节点总数。 树的深度:所有节点深度中的最大值。 树的高度:所有节点高度中的最大值。 树的深度等于树的高度。 有序树:树中任意节点的子节点之间有顺序关系。 02-二叉树及其性质 二叉树: 每个节点的度最大为2(最多拥有2棵子树) 左子树和右子树是有顺序的。 即使某节点只有一棵子树,也要区分左右子树。 非空二叉树的第i层,最多有2^(i-1)个节点(i>=1) 在高度为h的二叉树上最多有2^h-1个节点(h>=1) 对于任何一棵非空二叉树,如果叶子节点个数为n0,度为2的节点个数为n2,则有:n0=n2+1 假设度为1的节点个数为n1,那么二叉树的节点总数 n = n0 + n1 + n2 二叉树的边数 T = n1 + 2*n2 = n-1 = n0 + n1 + n2 -1 03-真二叉树、满二叉树 真二叉树:所有节点的度要么是0,要么是2。 满二叉树:所有节点的度要么是0,要么是2。并且所有叶子节点都在最后一层. 在同样高度的二叉树中,满二叉树的叶子节点数量最多、总节点数量最多。 满二叉树一定是真二叉树