自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jcwKyl的专栏

蒹葭苍苍,白露为霜。所谓伊人,在水一方。

  • 博客(15)
  • 资源 (3)
  • 收藏
  • 关注

原创 float与double:坚决弃float用double一例

如下9行代码,输出结果说明了问题:#include int main() { float f = 0.01; int i = 1800; printf("%d/n", (int)(f*i)); printf("%f/n", f*i); return 0;}输出:1718.000000编译上述程序时在float f = 0.01语句处会出现一个warning: truncation from

2009-02-25 11:16:00 1217

原创 《编程之美》笔记之——24点游戏

原著中给出了两种解法:穷举和分治。后来加上去除冗余括号等操作,自己写了四个实现代码,但完全还是用的原著中的算法思想。暂且把自己的实现过程记录下来。自己的第一种代码实现,完全穷举,没有任何的优化。代码写得极其笨拙。程序穷举了四个数字能组成的所有可能的算式,分别计算它们的值,找到结果是24的那个算式,输出它。一个不带括号的算式总是有形式a op1 b op2 c op3 d,其中a,b,c,d是运

2009-02-24 11:50:00 7122 3

原创 《编程之美》学习笔记之——算法设计中的逆向思维

两个例子:例一:找符合条件的整数题目概述:给定正整数N,求最小的正整数M,使N*M十进制表示中只有0和1.著者给出多种解法。解法一在正整数范围内穷举M。解法二改进了解法一,在十进制表示中只有0和1的正整数范围内穷举N*M,从而间接找到M。解法三再次改进解法二,在模N同余的意义下按照模N的余数对可能的N*M进行分类,这样,便把搜索空间从指数复杂度降到了线性复杂度。例二:数组分割问题题目概述:有一个没

2009-02-23 10:54:00 3047 3

原创 《编程之美》“让CPU占用率听你指挥”学习笔记

CPU占用率可理解为忙的时间与总的时间的比。若此,自然有第一种解法:空循环与Sleep。具体的方法和代码在《编程之美》的原著中有详述。须注意的是,测出CPU一秒钟能执行的空循环次数(假设能执行C次空循环)后,不能简单地空循环C/2次,然后休息半秒钟。这样得出的曲线虽然大致上是所要求的开头,但是抖动非常厉害。解决方法是什么呢?解决方法就是使用更小的时间片。如果原来一秒钟可以做C次空循环,那么可以

2009-02-16 20:22:00 2944 6

原创 关于JOJ 2042的启发——一种写程序计算幂函数的方法

JOJ 2042是一个程序理解题,其中给出了一段奇妙的计算x^3的程序。它的原理如下:由上可知,幂函数的增加量第次加6,其初始值为1.所以,就可以把程序写成这样来计算立方:int f(x) {       int c = 0, d = 1, e = 6;       while(x--) {              c += d;              d +

2009-02-14 18:36:00 1967 1

原创 《编程之美》之:"程序理解和时间分析"与JOJ 2042

 这是《编程之美》的2.20题目,给出一段C#代码,要求不用电脑,理解程序并回答问题。下面是从C#代码中改写成的C++代码:#include #include using namespace std;int main() { int rg[] = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20

2009-02-14 13:11:00 6413 2

原创 《编程之美》之寻找发帖水王与JOJ 1069

两个题目解题思想非常相似。就是把一个问题转化为规模较小的问题,在转化的过程中小问题与原问题本质上一致。这样,可以通过把小问题转化为更小的问题。寻找发帖水王题目是找出一堆数据中出现次数超过总数一半的那个数据。《编程之美》上的分析是:如果每次删除两个不同的数据,那么剩下的数据列表中,我们要找的那个数据的出现次数仍然超过总数的一半。于是,可以在O(N)的时间复杂度内和O(1)的空间复杂度解决这个问题。J

2009-02-14 09:20:00 1934

转载 约瑟夫环的数学解法

原文出处:http://blog.csdn.net/MapReduce/archive/2007/04/02/1549494.aspx作者:MapReduce全文:约瑟夫环问题是一道经典的数据结构题目问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。一般我们采用一个循环队列来模拟约瑟夫环的求解过程,但是如果n比较大的时候,采用模拟

2009-02-13 08:36:00 3451 1

原创 数组循环移位问题

《编程之美》中的题目要求只使用两个附加变量。王晓东编著的《算法设计与实验题解》中要求只用到O(1)的辅助空间。其它地方两本书的要求相同,都是O(n)的时间复杂度。两本书中的解法总结起来就是三种方法:(1)循环换位算法(2)三次反转算法(3)排列循环算法。这三种算法在王晓东的著作中都有实现代码。第一种算法是最原始的算法。第二种算法比较巧妙,即使用VU=reverse(reverse(U)reserv

2009-02-10 16:41:00 6994 5

原创 正则表达式元字符集

&l基本元字符元字符说明.匹配任意单个字符|逻辑或操作符[]定义一个字符集合,匹配该集合中的一个字符[^]对字符集合求非(是对整个集合求非,而不是紧挨着^符号的字符)-在字符集合中定义一个区间。如[A-Za-z]/对下一个字符转义。比如/n表示换行。 

2009-02-08 18:28:00 9799 3

原创 排列的生成

排列和组合的生成在组合数学书中都有,这里是做一个小总结。下面是两种实现方法:#include #include #include using namespace std;#define MAX_N 32int A[MAX_N], used[MAX_N], n, total;void backtrack(int i) { if(i > n) {

2009-02-06 22:38:00 1728

原创 给Adobe Reader添加书签功能

Adobe Acrobat Professional和Adobe Reader都是Adobe公司的产品。前者用来编辑制作PDF文档,后者只能用来阅读PDF。令人郁闷的是Adobe Reader中虽然有书签这一项显示,却没有添加书签的功能。解决方法一是使用Adobe Acrobat Professional,另一个方法如下:在http://www.pdfhacks.com/bookmark_pa

2009-02-05 11:10:00 18318 9

原创 一种写程序快速计算常系数线性齐次递推关系的指定项的方法

上次学习到了利用Fibonacci恒等式在log(n)时间内计算出F(n)的方法。这种方法也适用于任何常系数线性齐次递推数列的计算。在这里把能想到的东西小结一下。例一:扩展Euclid算法。两个整数a,b的最高公因数为gcd(a,b)。扩展Euclid算法在计算出gcd(a,b)的同时计算出gcd(a,b)=sa+tb中的系数s,t。因为:这样,只要计算出中间那些矩阵的乘积,就很容易计算出系数s,

2009-02-03 14:58:00 2258

原创 编程之美——找符合条件的整数

题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0.解决这个问题首先考虑对于任意的N,是否这样的M一定存在。可以证明,M是一定存在的,而且不唯一。简单证明:因为 这是一个无穷数列,但是数列中的每一项取值范围都在[0, N-1]之间。所以这个无穷数列中间必定存在循环节。即假设有s,t均是正整数,且s,所以例如,取N=3,因为10的任何

2009-02-02 22:12:00 8534 7

原创 使用位段实现整数的二进制形式输出

下面是简单的演示代码。可以将它封装成类使用。#include using namespace std;#define D(name) unsigned name:1union _U{public: struct { D(a0); D(a1); D(a2); D(a3); D(a4); D(a5); D(a6); D(a

2009-02-02 00:36:00 1268

phrame 示例代码

这是初学phrame mvc框架写的示例代码。与代码相关的文档可以在http://blog.csdn.net/jcwKyl/archive/2009/10/31/4752531.aspx这篇日志中看到。

2009-10-31

phrame的api文档

这是使用phpDoc从phrame的源代码注释中生成的phrame文档,phrame的版本是2.1pre4。

2009-10-28

王晓东:算法与数据结构学习指导与习题解析[1]\王晓东:算法与数据结构学习指导与习题解析.pdf

书的名字虽然不显眼,但内有乾坤。里面的每一个算法题目都值得好好思考和经常复习。是打好算法基本功的最佳教程。《算法导论》讲的太略。而《计算机程序设计的艺术》有点太高级。

2008-10-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除