随笔分类 -  数学

摘要:分析: 扩展的欧几里德算法,ax+by=gcd(a,b),若gcd(a,b)!=1,输出-1,否则,用扩展的欧几里德算法求出 最小的x与y即可,注意到 当存在0时,若有1输出1,否则输出-1; 当存在1,若有2输出1,否则输出2(因为直接a-a+1即可) 当上面都不满足时,直接用扩展的欧几里德算法求出x,在解方程求出y,两绝对值相加减一即可#include <cmath>#include <iostream>using namespace std;long long ex_gcd(long long a,long long b,long long &x,long 阅读全文
posted @ 2012-03-17 11:53 yejinru 阅读(189) 评论(0) 推荐(1) 编辑
摘要:中国剩余定理例1:一个数被3除余1,被4除余2,被5除余4,这个数最小是几?题中3、4、5三个数两两互质。则〔4,5〕=20;〔3,5〕=15;〔3,4〕=12;〔3,4,5〕=60。为了使20被3除余1,用20×2=40;使15被4除余1,用15×3=45;使12被5除余1,用12×3=36。然后,40×1+45×2+36×4=274,因为,274>60,所以,274-60×4=34,就是所求的数。例2:一个数被3除余2,被7除余4,被8除余5,这个数最小是几?题中3、7、8三个数两两互质。则〔7,8〕=56;〔3, 阅读全文
posted @ 2012-02-29 22:41 yejinru 阅读(238) 评论(0) 推荐(0) 编辑
摘要:Find a minimal interger K which is merely comprised of N and can be divided by M.For example,11 is the minimal number that and be divided by 11, and it is comprised of two '1's, and 111111 can be divided by 13 which is comprised of six '1's.InputOn each line of input , there will be 阅读全文
posted @ 2012-02-29 22:35 yejinru 阅读(372) 评论(0) 推荐(0) 编辑
摘要:编辑器加载中...自己写了一个:根据m^n mod y,m*m*...*m = y*x+r,再乘以m时相当于r乘以m即可同理,令r = 1,r = (r*m)%y,这样相乘n次,我的模板(时间复杂度为O(n)),n太大时,可能超时:int r = 1;for(j=0;j<n;j++)r = (r*i)%m;求a^b%c(这就是著名的RSA公钥的加密方法) 算法1:直接将b个a相乘,利用a*b%c=((a%c)*b)%c,每一步都进行这种处理,解决了a^b可能太大存不下的问题,这个算法的时间复杂度是O(n)。当b很大时运行时间会很长 。 算法2:利用分治的思想,可以达到O(logn)。 可 阅读全文
posted @ 2012-02-29 22:34 yejinru 阅读(195) 评论(0) 推荐(0) 编辑
摘要:题目大意就是给出一个不超过2^31的数,来判断它是否为素数,对于此题的规模,一般的素性检测显然不行,要用到Miller rabin, 这个算法主要是基于费尔马小定理,如果 n 为素数,那么对于小于n的数a有a^(n-1) = 1(mod n) ('='在这里就代表同余符号)。显然这是一个必要条件,然而只要满足这个条件就基本上是一个素数了,称为‘伪素数’,正确率为1-(1/4)^m,m用不同的基测试的次数,所以多测试几次就可以保证结果的正确了#include <iostream>#include <cstdlib>#include <cstdio&g 阅读全文
posted @ 2012-02-29 22:21 yejinru 阅读(272) 评论(0) 推荐(0) 编辑
摘要:题意:给出一个区间,长度<=1000 000;求其中素数相邻素数之间的差最小的和最大的;分析:双重筛法,其中区间的数可能较大,因此如果用试除法的话,显然不行的;用筛选法,首先第一次筛选出从1到47000之间的素数;第二次筛选时,利用第一次筛选出来的素数,判断L到U区间范围内的数是否是素数;因为范围是1<=L< U<=2,147,483,647,而U-L<=1000 000;所以我们可以设置一个1000000以内的数组,用res[i-L]的值为0或者1来表示是否是素数;核心算法是第二次的筛选,其中j=begin*prime[i]表示的是在A,B区间中prime[i] 阅读全文
posted @ 2012-02-29 22:19 yejinru 阅读(191) 评论(0) 推荐(0) 编辑