算法
文章平均质量分 59
JasonChuanChang
这个作者很懒,什么都没留下…
展开
-
八皇后问题算法
//简单的八皇后问题。看了网上几种算法,还是觉得这样的比较简单易懂。初学算法,欢迎交流#include #include #define N 8int chess[N] = {0};//chess[i]表示i行chess[i]列上有皇后FILE* fp = fopen("out.txt","w"); //用于保存结果的文件,当然最好还是在主程序中验证打开正确再赋值给fp最好int原创 2013-11-11 16:30:01 · 943 阅读 · 0 评论 -
欧几里德算法求最大公约数简介
看过好几次GCD的算法,每次都记不清他的原理,到头来只能是死记硬背,所以利用这次学习离散数学来说明一下欧几里德算法的原理。假设求a,b的最大公约数,那我们假设a=bq+r,这里a,b,q,r都是整数,如果我们能够证明a和b的共同因子等于b和r的共同因子,那最大公约数也是他们的共同因子,那么gcd(a,b)=gcd(b,r)。我们看,r=a-bq,那么a和b的共同因子x提出来原创 2013-11-12 15:00:11 · 844 阅读 · 0 评论 -
如何简单判断一个数是否为素数?
如何简单判断一个数是否为素数?根据定理:如果n为复合整数,那么n有一个小于或者等于n^(1/2)【根号n,后面我们设这个值为m】的素因子。证明其实挺简单,利用反证法,n是复合整数,则n=ab,其中11。假设a>m和b>m,那么ab>m*m=n,所以a注意到小于100的整数必有一个小于10的素因子,利用这一点就可以来判断小于100的整数中哪些是素数了。小于10的素数只有2,3原创 2013-11-12 14:04:32 · 1216 阅读 · 0 评论 -
说说RSA加密解密的知识
说说RSA加密解密的知识。 一般想到的加密方法就是移位,置换字符。比如A变成C,C变成E,如果给每个字母一个数字,比如A为1,B为2类推,用函数表示就是f(p)=(ap+b)mod 26,这种方法很容易被破解。RSA密码系统提供一个公开的加密密钥,但是保留解密密钥,这种方法目前来说非常安全,接下来我们就说说它的原理。 RSA是MIT的Ronald Rivest, Adi Shami原创 2013-11-13 09:31:02 · 1424 阅读 · 0 评论 -
简单的位排序实现
程序珠玑中第一章问题中,给出的实现是基于int型数组的,我自己改改采用char字符数组实现。简单说明一下,因为采用的是char类型,那么一个字符占据的位数就是BITSPERCHAR=sizeof(char)*8了,那么如果有N位数字需要排序,那么需要的数组大小就是N/BITSPERCHAR+1。字符数组中,每一个字符都有BITSPERCHAR位,所以一个整数N,计算他在数组的下标就是N/BIT原创 2013-11-14 19:54:28 · 600 阅读 · 0 评论 -
PAT 1018
PAT 1018题目其实很简单,只要用DFS就可以了,但是我的程序出来5,7两个测试出错,大神看看哪里的问题。#include #define ABS(a) (a>=0?a:-a)int cmax,nstats,sp,m,min,mintime;int map[510][510];int current[510];int visit[510],road[510],mroad[51原创 2014-03-03 20:27:54 · 1296 阅读 · 3 评论