摘要: 素数的定义:恰有两个不同正整数因子的整数成为素数。大于1的每个正整数都至少能被两个整数整除,因为正整数可以被1和他自己整除。合数的定义:大于1,又不是素数的正整数。算术基本定理:每个大于1的正整数都可以唯一地写为两个或多个素数的乘积,其中素数因子以非递减序出现。根据此定理可以看出,素数是构成正整数的积木。定理2:如果n是个合数,那么n必有小于或等于√n的一个素因子。定理3:有无限多个素数。整数的素因子分解算法分析: 给定一个整数n,可以从最小的素数2开始,从小到大用一个一个素数去除n。如果n有素数因子,那么必定能够找到一个不大于√n的素因子p,否则,根据定理2,n即为素数。如果找到了素因子p. 阅读全文
posted @ 2012-04-10 14:24 shosciation 阅读(421) 评论(1) 推荐(1) 编辑
摘要: 这个问题来自于How To Share a Secret -- Adi Shamir原文是这样的:Eleven scientists are working on a secret project. They wish to lock up the documents in a cabinet so that the cabinet can be opened if and only if six or more of the scientists are present. What is the smallest number of locks needed? What is the sma 阅读全文
posted @ 2012-03-19 22:06 shosciation 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 矩阵链乘法n个矩阵相乘,A1A2...An,试着找到一种相乘顺序,使得整个相乘的过程中所做的标量乘法次数最少,即相乘的代价最小。问题分析: 记矩阵Ai的行列分别为Pi-1和Pi,那么A1*A2所做的乘法的次数为P0*P1*P2A1A2...An的最小相乘代价为f(1,n),Ai...Aj的最小相乘代价为f(i,j)则 f(1,n) = min{f(1,k)+f(k+1,n)+P0*Pk*Pn} k=1...n-1f(i,i)=0 f(i,i+1)=Pi-1*Pi*Pi+1So 可以由此产生递归式 1 Recursive_Matrix_Multiply(p, i, j) 2 { 3 ... 阅读全文
posted @ 2012-03-16 20:34 shosciation 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 几个重要的概念:java进程 -- 当启动一个java程序时,操作系统为进程分配资源,包括内存空间等jvm -- java进程中必须存在的部分,通俗的说,即启动java程序时,jvm也就启动了,java字节码运行在jvm的管理之中native method -- java跨平台的同时也损失了一些性能,native method使得java可以调用别的语言实现的一些功能模块,如C/C++写的.dll/.so,这些方法的实现代码运行在JVM之 外,所以内存的管理由程序员自己负责,如果这部分程序有内存泄漏,也会造成java进程的内存一直增长。动态链接库 -- linux 下形如 l... 阅读全文
posted @ 2012-03-13 20:57 shosciation 阅读(559) 评论(0) 推荐(0) 编辑
摘要: RSA算法是由Rivest, Shamir 和 Adleman 在1978年公开提出的一种公钥密码算法。一般地,公钥密码算法的安全性都是建立在一些数学难题之上。目前常用的公钥密码算法主要有两大类:一是基于大整数银子分解问题,如RSA算法;一是基于离散对数问题,如ElGamal算法、椭圆曲线密码算法、Diffie-Hellman密钥交换协议等。RSA算法如下: 找两个随机大素数p、q,n=pq,t=(p-1)(q-1);选择随机数e,满足e和t互质,然后计算d=e-1modt,公开(n,e)作为公钥,(n,d)保留作为私钥。其中d=e-1mod t比较费解,这牵涉到一些关于数论的知识。在数论中. 阅读全文
posted @ 2012-03-08 16:30 shosciation 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 桶中有n个黑球,n个白球,取球规则如下:每次从桶中取两个球,如果两球同色,则放回一个黑球,否则放回一个白球。问:最后桶中剩下一个黑球的概率是多大?分析取球的规则,每次取完球之后,黑球的数量要么增1,要么减1,白球的数量要么不变,要么减2。如果说桶中只剩下一个球,鉴于白球的递减是以2为倍数,所以,当n为奇数时,桶中剩下的一定是白球,当n为偶数时,桶中剩下的一定是黑球。编程之美中,作者提出了用异或的数学逻辑来模拟取球的过程,黑球看作是0,白球看作是1,这样的话,取球规则就相当于把取出的数字异或之后再把结果丢回去。0 XOR 0 =01 XOR 1 =00 XOR 1 =1这样以来,每次取完数字之后 阅读全文
posted @ 2012-03-07 21:34 shosciation 阅读(446) 评论(1) 推荐(0) 编辑
摘要: 1.最先想到的办法是x对2求余,判断是否为零,不为零则最低位为1,x除以2,以此往复2.考虑到求余是2比较耗时,想到能否用位操作来处理,于是有了一下解法:x&0x01,如果为1,则最低位为1,x右移一位,以此往复3.位操作虽然比求余效率高,但上述两种解法的时间复杂度都是x的最高位为1的位数,即log2x,例如x为00100100,那么时间复杂度即为O(6),能否把时间复杂度将为只和1的个数相关呢? 编程之美中作者给出了答案: int Count(BYTE v){ int num = 0; while(v) {v&=(v-1); num++; } return num;}为何上面 阅读全文
posted @ 2012-03-06 16:55 shosciation 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 1.在www.google.com.hk下搜索关键字 此种情况下搜到的结果可能会很宽泛,针对性不强,需要自己去浏览结果以寻找比较相关的论文2.在IEEEhttp://ieeexplore.ieee.org/Xplore/guesthome.jsp或ACMhttp://dl.acm.org/dl.cfm?CFID=69108197&CFTOKEN=68217188中输入关键字 在搜索结果中查看论文的摘要和被引用数,一般从标题和摘要就可以看出是否是自己想找的论文,被引用数是与论文的质量挂钩的,被引用数越高,这篇论文的价值越大,一般来说是这样的。3.从论文的引用文献着手 从引用文献的题目、作 阅读全文
posted @ 2012-03-05 22:03 shosciation 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 金山快盘上传文件不是通过http实现的,而是通过swfupload组件实现的swfupload是flash实现的一个组件,flash和服务器通信是通过ActionScript中的一个XMLSocket对象来进行的,XMLSocket.connect(serverIp,port);具体的交互过程及这种实现方式的限制,参见下文http://apps.hi.baidu.com/share/detail/55028351 阅读全文
posted @ 2012-03-05 20:18 shosciation 阅读(272) 评论(0) 推荐(0) 编辑
摘要: vim在启动时,当前用户主目录下的.vimrc文件会被读取,该文件可以包含一些设置甚至脚本。所以在此文件中,用户可以定制vim的一些特性。"显示行号set number"十六进制显示不可打印字符set display=uhexset listset nolist不显示不可打印字符"语法高亮syntax on"检测文件类型filetype on"记录历史的行数set history=100"启用自动对齐,即把当前行的对齐格式应用到下一行set autoindent"启用智能对齐set smartindent"设置ta 阅读全文
posted @ 2012-02-17 16:35 shosciation 阅读(184) 评论(0) 推荐(0) 编辑