随笔分类 -  数论

十个利用矩阵乘法解决的经典题目
摘要:好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人,今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质。 不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵,其结果是一个2行3列的矩阵。其中,结果的那个4等于2*2+0*1: 下面的算式则是一个1 x 3的矩阵. 阅读全文

posted @ 2012-04-26 19:58 c语言源码 阅读(317) 评论(0) 推荐(0)

一个数学期望问题
摘要:1 . 有一个经典的概率问题:平均需要抛掷多少次硬币,才会首次出现连续的 n 个正面?它的答案是 2^(n+1) - 2 。证明还不会。http://www.matrix67.com/blog/archives/3638http://www.cnblogs.com/atyuwen/archive/2010/09/12/coin.html2 . 随便取一个 0 到 1 之间的数,再加上另一个 0 到 1 之间的随机数,然后再加上一个 0 到 1 之间的随机数⋯⋯直到和超过 1 为止。一个有趣的问题:平均需要加多少次,才能让和超过 1 呢?答案是 e 次。http://www.matrix67.c 阅读全文

posted @ 2012-03-30 12:25 c语言源码 阅读(281) 评论(0) 推荐(0)

poj 1845
摘要:大致题意:求A^B的所有约数(即因子)之和,并对其取模 9901再输出。解题思路:要求有较强数学思维的题应用定理主要有三个:要求有较强数学思维的题应用定理主要有三个:(1) 整数的唯一分解定理:任意正整数都有且只有一种方式写出其素因子的乘积表达式。A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均为素数(2) 约数和公式:对于已经分解的整数A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)有A的所有因子之和为S = (1+p1+p1^2+p1^3+...p1^k1) * (1+p2+p2^2+p2^3+….p2^k2) * (1+ 阅读全文

posted @ 2012-03-25 11:51 c语言源码 阅读(152) 评论(0) 推荐(0)

Codeforces Problem 161E - Polycarpus the Safecracker
摘要:先暴力打素数表,然后枚举5位数里(从高位到低位)有i位确定且为x的数有多少个。具体解某个数时暴力即可#include<stdio.h> #include<math.h> #include<vector> #include<string.h> using namespace std; bool vis[100010]; vector<int>dp[5][100010]; int k,l; int a[6][6]; int dfs(int now){ int i,j,x=0,sum=0; for(i=0;i<now;i++) x=x 阅读全文

posted @ 2012-03-23 23:23 c语言源码 阅读(176) 评论(0) 推荐(0)

蔡勒(Zeller)公式(计算星期)
摘要:蔡勒(Zeller)公式:是一个计算星期的公式。随便给一个日期,就能用这个公式推算出是星期几。蔡勒公式如下:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下:w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六c:世纪(前两位数)y:年(后两位数)m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)d:日[ ]代表取整,即只要整数部分。为了您的安全,请只打开来源可靠的网址打开网站取消 阅读全文

posted @ 2012-02-13 20:59 c语言源码 阅读(666) 评论(0) 推荐(0)

计算n!末尾所包含0的个数
摘要:这是一个有趣的问题。例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。这里先给出其计算公式,后面给出推导过程。令f(x)表示正整数x末尾所含有的“0”的个数,则有: 当0 < n < 5时,f(n!) = 0; 当n >= 5时,f(n!) = k + f(k!), 其中 k = n / 5(取整)。从而可以递归求解。证明: 先证明一个结论。 结论1: 对于n的阶乘n!,其因式分解中,如果存在一个因子“5”,那么它必然对应着n!末尾的一 阅读全文

posted @ 2012-01-21 13:58 c语言源码 阅读(594) 评论(0) 推荐(0)

导航