《重构-改善既有代码的设计》Martin Fowler 摘要: 第九章 简化条件表达式
Decompose Conditinal 分解条件表达式
你有一个复杂的条件(if-then-else)语句
从三个段落中分别提炼出独立函数
Consolidate Conditional Expression 合并条件表达式
你有一系列条件测试,都得到相同结果
将这...
分类:
其他好文 时间:
2014-06-20 13:03:15
阅读次数:
212
POJ 1401 && ZOJ 2202 Factorial 阶乘N!的末尾零的个数
题目地址:
POJ 1401
ZOJ 2202
题意:
求N!后面有几个0。
分析:
组合数学类型的题目。
正常的话可能会去分解1~N数里面有几个5和2,但是这样的复杂度为O(nlogn)。
其实有更巧妙的办法,可以把问题分解成子问题。
可以发现N!末尾的0与1~N中...
分类:
其他好文 时间:
2014-06-05 04:43:02
阅读次数:
248
算法训练 幂方分解
时间限制:1.0s 内存限制:256.0MB
问题描述
任何一个正整数都可以用2的幂次方表示。例如:
137=27+23+20
同时约定方次用括号来表示,即ab 可表示为a(b)。
由此可知,137可表示为:
2(7)+2(3)+2(0)
进一步:7= 22+2+20 (21用2表示)
3=2+20...
分类:
其他好文 时间:
2014-06-05 02:56:01
阅读次数:
232
穷举:生成所有候选解,然后找出需要的解。
回溯:把解表示成向量,每个分量取自一个有限集合。从部分解开始,每次添加解的一个分量,然后判断如果有可能扩展成完整解则递归下去,否则换成下一个。可以看做是隐式图上的深度优先搜索。
回溯/穷举的复杂度,最坏时和后者一样,通常情形因为不必遍历所有子节点,还是比较快的。
回溯框架:
backtrack(a[], k)
if a[0,...,k] i...
分类:
编程语言 时间:
2014-06-05 02:39:10
阅读次数:
246
题目来源:Light OJ 1102 Problem Makes Problem
题意:一个整数n分解成k个数相加有多少种方案 数字可以重复
思路:m个苹果放n个盒子有多少方案 允许盒子有空 盒子空对应0 答案是C(n+m-1, n-1)
首先如果不允许有空 答案是C(m-1, n) 插空法m个苹果有m-1个空档 在这m-1个空档里选n-1个分成了n部分 每部分都不是空的
现在允许为空...
分类:
其他好文 时间:
2014-06-04 21:57:03
阅读次数:
166
[问题2014S13] 解答(1) 先证必要性:若 \(A=LU\)是 非异阵 \(A\) 的
\(LU\) 分解,则 \(L\) 是主对角元全部等于 1 的下三角阵,\(U\) 是主对角元全部非零的上三角阵. 由 Cauchy-Binet 公式知
\[|A_k|=|L_k|\cdot|U_k|=|...
分类:
其他好文 时间:
2014-06-02 21:40:36
阅读次数:
254
parse_url()函数是将输入的URL结构分解成几个部分来将其转变为一个关联数组组成URL的几个基本部分为:scheme(协议名),host(主机名),port(端口号),path(文件路径),query(查询参数),user(用户名),pass(密码)如:http://www.example....
分类:
Web程序 时间:
2014-06-02 12:47:09
阅读次数:
300
BigPipe是一个重新设计的基础动态网页服务体系。大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行。这是类似于大多数现代微处理器的流水线执行过程:多重指令管线通过不同的处理器执行单元,以达到性能的最佳。虽然BigPipe是对现有的服务...
分类:
其他好文 时间:
2014-06-02 06:34:42
阅读次数:
283
我们通过nio学习了Reactor模式,但是在java7中又出现了NIO.2,新的异步框架出来了,在上节中的服务端视线中看不到Reactor的影子了,但是Netty in action中写到:But notice that NIO.2 handles threading and the creation of the so-called event loop for you.所以模式还是没变,只是封装了而已!那让我们来分解下AIO(NIO.2)的封装吧!...
分类:
其他好文 时间:
2014-06-01 01:40:11
阅读次数:
388
1.矩阵分解假设一个矩阵Data是m行n列,SVD(奇异值分解)将Data分解为U,E,VT
三个矩阵:Datam*n=Um*kEk*kVTk*nE是一个对角矩阵,对角元素为奇异值,对应Data的奇异值,即Data*DataT特征值的平方2.选取特征下面确定选取哪几维特征实现降维,去除噪声和冗余信息...
分类:
其他好文 时间:
2014-05-31 18:45:57
阅读次数:
327