关于数论中的互质数的最大不能组合数
来源:互联网 发布:免费国际交友软件 编辑:程序博客网 时间:2024/06/05 19:38
最近看数论,转头重新思考了这题,参考了下论文和lrj的黑书,重新证明一遍,做个笔记。
例题:HDOJ 1792 A New Change Problem
题意:给定A和B,A和B互质,求最大不能组合数,和不能组合数的个数。
基础知识:
Gcd(A, B) = 1 → Lcm(A, B) = AB
剩余类,把所有整数划分成m个等价类,每个等价类由相互同余的整数组成
任何数分成m个剩余类,分别为 mk,mk+1,mk+2,……,mk+(m-1)
分别记为{0(mod m)},{1(mod m)}……
而n的倍数肯定分布在这m个剩余类中
因为Gcd(m,n)=1,所以每个剩余类中都有一些数是n的倍数,并且是平均分配它的旁证,可见HDOJ 1222 Wolf and Rabbit
设 kmin = min{ k | nk ∈ {i (mod m)} }, i ∈ [0, m)
则 nkmin 是{i (mod m)}中n的最小倍数。特别的,nm ∈ {0 (mod m)}
nkmin 是个标志,它表明{i (mod m)}中nkmin 后面所有数,即nkmin + jm必定都能被组合出来
那也说明最大不能组合数必定小于nkmin
我们开始寻找max{ nkmin }
Lcm(m, n) = mn,所以很明显(m-1)n是最大的
因为(m-1)n是nkmin 中的最大值,所以在剩下的m-1个剩余类中,必定有比它小并且能被m和n组合,这些数就是(m-1)n -1,(m-1)n -2,……,(m-1)n -(m-1)
所以最大不能被组合数就是(m-1)n -m
如果m和n不互素,那{1 (mod m)}不能被m组合,同样也不能被n和m组合
我们能求出各个剩余类的nkmin之后,不能组合数的个数就是每个剩余类中小于各自nkmin的数的个数总和。
观察如下:
M = 5,N = 3
{0(mod 5)}:0,5,10,15……
{1(mod 5)}:1,6,11,16……
{2(mod 5)}:2,7,12,17……
{3(mod 5)}:3,8,13,18……
{4(mod 5)}:4,9,14,19……
红色的就是不能组合数,可以看出在剩余类中它的数目有规律
Total = [0+1+2] + [0+1]
因为m和n互质,必有一个不完全周期
整理以后,可得公式 Total = (n-1)*(m-1)/2
int main()
...{
int a,b;
while (scanf("%d %d",&a,&b)==2) ...{
printf("%d %d ", (a-1)*b - (a-1) -1,(a-1)*(b-1)/2);
}
}
- 关于数论中的互质数的最大不能组合数
- 最大不能组合的数
- HDU 1792-A New Change Problem(互质数的最大不能表示数)
- hdu 1792 (最大不能组合数,最大不能组合数的个数)
- 两个数求不能组合成的最大数
- HDU 2662 Coin && HDU 1792 A New Change Problem (互质数最大不能生成数)
- 2017-07-25 51nod 1119 组合数取模 某数关于质数的逆元
- 【数论】计算组合数
- 最大不能买的数
- 最大不能表示的数
- 求偶数的两个质数,最大公倍数,星期几
- ACM数论-求组合数
- 【数论 / 数值】【RQNOJ】[stupid]愚蠢的组合数
- SDUTOJ-1574 组合数的计算(简单数论)
- 组合数的中的递归
- 关于一个群号分解的最大质数的求法
- bzoj 1485 有趣的数列 卡特兰数 + 数论 %p 不为质数
- 求最大的组合数:用不同的数字组合,找到最大的那一个组合
- JavaScript技巧——Submit到无菜单窗口
- FPGA的配置及接口电路
- 学习Java的30个基本概念
- Prolog教程 1
- Prolog教程 2
- 关于数论中的互质数的最大不能组合数
- 结构在优化编译中的对齐问题 pragma(push, N) pragma(pop)
- Stop-Transcript 帮助信息
- Prolog教程 3
- pligg9.7beta搭起后HTML编辑器插件的安装(-fckeditor的配置与修改变相支持中文文件名:默认上传后不能正常调用-)就像csdn的这个编辑器
- 姑娘的心啊,已经飞了
- C/C++语言面试题目
- SQL语句导入导出大全
- 一道清华上机题目(求n! 高精度)