会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
GuiQuQu
博客园
首页
新随笔
联系
订阅
管理
2020年8月1日
取子问题,取数问题等等(总共n个棋子),每次轮流取1~m个,问谁能取到最后一枚
摘要: 这个问题主要看n%(m+1)的结果 如果n%(m+1)为0,那么后手赢,如果n%(m+1)!=0,那么先手赢。 考虑到只剩m+1个棋子的时候,这个时候谁取谁输。 所以 如果n%(m+1)为0,那么先手至少取了1个,后手可以对应的取,使得剩下棋子数保持n%(m+1)=0,这样下去,先手一定会面临在m+
阅读全文
posted @ 2020-08-01 13:55 GuiQuQu
阅读(1218)
评论(0)
推荐(0)
2020年6月26日
软件构造复习内容(10)---并发(2)
摘要: 保证线程安全的策略: 保证线程安全,就要避免Race Condition,竞争的存在能破坏ADT的RI,使数据混乱。 策略1.限制数据共享 将可变数据限制在单一线程内部,避免竞争,不允许任何线程直接读写数据。 核心思想:线程之间不共享mutable的数据类型 避免全局可变变量 2.共享不可变数据 使
阅读全文
posted @ 2020-06-26 22:12 GuiQuQu
阅读(130)
评论(0)
推荐(0)
软件构造复习内容(9)---并发(1)
摘要: 1.并发: 网络上多台计算机,一台计算机上多个应用,一个CPU上的多核处理器,都可以算作并发。 为了充分利用多核和多处理器,需要将程序转化为并发执行 并发的两个Model: 1.共享内存 2.消息传递,通过channel交换消息 2.进程和线程: 进程:私有空间,彼此隔离 1.拥有整台计算机的资源
阅读全文
posted @ 2020-06-26 21:00 GuiQuQu
阅读(219)
评论(0)
推荐(0)
2020年6月24日
软件构造复习内容(7)---正则表达式
摘要: 1.正则表达式符号 yz y和z连接 y* 0个y或者对个y,是y的克林闭包 y | z y或者z y? 一个y或者0个y y+ 1个y或者多个y,y的克林闭包除去空串 [....] 多个或者,例如 [abc] 是 a或者b或者c 的意思 [a-z] 表示从a到z中的字母中的任意一个。 [^..]
阅读全文
posted @ 2020-06-24 17:18 GuiQuQu
阅读(167)
评论(0)
推荐(0)
软件构造复习内容(6)---可维护性
摘要: 1.Modular design 模块化设计 模块化编程想要实现的目标是 高内聚 模块之内高内聚 低耦合 模块之间低耦合 https://blog.csdn.net/caoxuecheng001/article/details/80231220 这个链接介绍了模块之间的耦合和聚合 模块设计的5个原则
阅读全文
posted @ 2020-06-24 16:40 GuiQuQu
阅读(285)
评论(0)
推荐(0)
2020年6月23日
软件构造复习内容(5)---面向复用的设计模式
摘要: 1.Structural Patterns(结构模式) 1.Adapter 适配器 将某个类/接口转换为client期望的其他形式 通过增加一个接口,将已存在的子类封装起来,client面向接口编程,从而隐藏了具体实现子类 举例说明: 如果有一个类LegacyRectangle中一个方法展示一个左上
阅读全文
posted @ 2020-06-23 18:14 GuiQuQu
阅读(152)
评论(0)
推荐(0)
2020年6月22日
软件构造复习内容(4)---可复用性(1)
摘要: 复用类型: 白盒复用:源码可见,可修改和扩展 黑盒复用: 源码不可见,不能修改,只能通过API接口使用 一。代码层面的复用 copy--paste 二。模型层面的复用(class and interface) 类复用 继承 inheritance 委托 delegation 库复用(一系列方法API
阅读全文
posted @ 2020-06-22 22:56 GuiQuQu
阅读(215)
评论(0)
推荐(0)
软件构造复习内容(3)--ADT
摘要: 一。可变类和不可变类(Mutability and Immutability) 可变类有Mutator方法,不可变类没有Mutator方法,该类一旦被实例化,不能再被改变 二。SnapShot Diagram(程序快照图) 用于描述程序运行时的内部状态。 用于描述程序运行时的内部状态 便于程序员之间
阅读全文
posted @ 2020-06-22 11:58 GuiQuQu
阅读(320)
评论(0)
推荐(0)
软件构造复习内容(2)--Process and Tools of Software Construction
摘要: 一。 传统软件开发模型 2个基本模型 线性过程 迭代过程 扩展模型 瀑布模型 增量模型 V字模型 原型过程 螺旋模型 敏捷开发(Agile Development):通过快速迭代和小规模的持续改进,以快速适应变化 二。 Software Configuration Management(SCM) 软
阅读全文
posted @ 2020-06-22 11:51 GuiQuQu
阅读(210)
评论(0)
推荐(0)
软件构造复习内容(1)--软件构造的三维视图和软件构造的质量目标
摘要: 软件构造的三维视图 一图流 三维视图为Moment/Period Code-level/Compoment-level Bulid-time/Run-time Moment强调瞬时,Period强调在一段时间内(比如说日志记录,版本控制,代码变化等,均是一段时间内发生的事) Code-level是在
阅读全文
posted @ 2020-06-22 11:05 GuiQuQu
阅读(211)
评论(0)
推荐(0)
下一页
公告