Algorithm:
http://poj.org/problem?id=1001
解法思路:
利用一个字符数组来存放数字,数字的每一位存放到数组中的一个单元,然后控制第二个乘数因子每个位相乘时在数组中的移位。
Review:
本周主要对计算机网络相关的知识进行了一下回顾,这里对一些问题进行归纳和总结。
计算机网络主要解决的问题是将世界上存在的计算机连接起来,形成一个可以相互访问的整体,为了达到这个目的,先驱们采用分解的方法对问题进行建模,将网络的体系结构设计成一个具有多个层次的模型,主要的标准是OSI参考模型和TCP/IP参考模型。两种相结合,目前主流的分层为:应用层->传输层->网络层->数据链路层->物理层。这里先主要归纳各层需要解决的问题:
物理层: 本层定义了比特作为信号在信道上发送时相关的电气、时序接口。关注的点主要是在信道上传输的原始的比特,主要遇到的问题有:
1. 不同的物理信道(有线【铜线和光纤】、无线【无线电】和卫星)传输的性能不相同。如何在这些不同的信道上传递信息能够可靠。
2.不同的传输信道用什么信号来表示比特(0、1),连接如何建立和如何撤销。
3.传输的效率问题。
数据链路层:本层的主要任务是将一个原始的传输设施变成一条没有漏检传输错误的线路。并避免一个快速发送方将数据过快的发送,导致接收方来不及接受造成问题。并且对于广播式网络如何控制对共享信道的访问。主要解决以下的问题:
1.向网络层提供一个定义良好的接口。
2.能够处理传输错误。
3.调节数据流,确保慢速的接受方不被快速的发送方给淹没。
网络层:本层是将整个网络体系结构贯穿在一起的关键层。主要的任务是允许主机将数据包注入到任何网络,并且让这些数据包独立的到达接收方。主要的设计目标:
1.向上提供的服务应该独立于路由器技术。
2.应该向传输层屏蔽路由器的数量、类型和拓扑关系。
3.传输层可用的网络地址应该有一个统一的编址方案,可以跨域LAN和WAN。
传输层:本层的主要目标是允许源主机和目标主机上的对等实体进行对话。并且服务所需的可靠程度独立于当前所用的物理网络。
应用层:本层包含了所有的高层协议以及使用网络的应用程序。
Reference: <<计算机网络>>---严伟、潘爱民译版
Tips:
Python的切片可以很好的用来对列表数组进行操作,这一点比起JAVA来方便太多,主要的切片语法:
简单切片语法:s[begin : end]
其中,s表示任何sequence类型的对象,begin和end必须是int值或求值后可以得到int值的表达式,它们及其之间的分号共同构成了一个前闭后开区间(即begin<= idx <end),指明切片操作将要访问的源序列s的索引值的begin和end,其中真正的end位置是s中end的前一个位置,也即,切片返回的序列的最后一个element在源序列s的索引为(end-1)。
扩展切片语法:s[begin : end : stride]
与简单切片语法相比,扩展切片只是增加了第3个参数,即步长参数("stride"或"step")。
1) 当stride参数为正值(positive)时,表明切片操作从左至右(即正向)访问源序列s的元素,此时,若begin和end参数有缺省,则Python解释器默认将其设置为None。如s[0 : :1]会被解释器当作s[0 : None :1],此时,end实际取值要大于其有效索引范围的上限值,以保证切片操作能访问到源序列s从begin开始的所有元素(从左向右)。
2) 当stride参数为负值(negative)时,表明切片操作从右至左(即逆向)访问源序列s的元素,此时,若begin和end参数有缺省,则Python解释器默认将其设置为None。如s[-1 : :-1]会被解释器当作s[-1 : None :-1],此时,end实际取值要小于其有效索引范围的下限值,已保证切片操作能访问到源序列s从begin开始的所有元素(逆向,从右向左)。
3) 无论stride参数取正值还是负值,切片表达式的begin和end索引值需要保证在切片操作的访问方向上,从begin到end之间有元素,这样切片操作才能保证返回非空集。
Share:
分享一篇关于Refactor模式应用的文章:http://www.blogjava.net/DLevin/archive/2015/09/02/427045.html
Refactor模式是基于事件驱动模型,并利用多路复用组合起来的模式。能够提高应用的事件响应能力,提升资源利用率。
网友评论