例题: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

转载于:https://www.cnblogs.com/anderson0/archive/2009/05/14/1456964.html

1792 关于数论中的互质数的最大不能组合数相关推荐

  1. 素数在c语言表达能力,巧用C语言中的Continue语句解决数论中的问题

    .#0 福建电脑!""#年第$%期 巧用!语言中的!"#$%&'(语句解决数论中的问题 杨爱梅 !河南工业大学河南郑州"#$$#%& !摘要!运 ...

  2. 数论中的十个基本概念

    数论 1. 整除 2. 最大公约数 3. 模运算 4. 逆元 5. 欧拉函数 6. 欧拉定理 7. 费马小定理 8. 一次同余方程 9. 中国剩余定理 10. 二次剩余和Blum整数 1. 整除 设 ...

  3. 数论中的无数公式 总结

    斯特林公式是一条用来取n阶乘近似值的数学公式.一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用,而且,即使在 n很小的时候,斯特灵公式的取值已经十分准确. 公式为: 以下等式或者 ...

  4. 输入90输公因数java_关于Java中的几个数论中的知识

    1.将一个正整数分解质因数.例如,输入90,则打印 90=2*3*3*5: importjava.util.Scanner;/*** 分解质因数 *@authorAdministrator **/ p ...

  5. 从数论中的原理来说算法

    Algorithm对我们来说可能一千个人有一千个想法,但是对于我们来说,最熟悉的就是数学课中学到的原理和定理,公式了.比如同余定理.思考一个问题,如何找出一个大数的质因子?我们也可以使用遍历法,但是这 ...

  6. HDU4394(数论中的广搜)

    题目:Digital Square   题意: Given an integer N,you should come up with the minimumnonnegative integer M. ...

  7. 计算组合数的几种方法总结

    前言 组合数就是 Cmn C n m C_n^m,是排列组合中非常重要的一部分,最近做到了几道与计算组合数有关的题,想在此总结一下如何编程计算组合数. 某位大佬在我之前也写过类似的文章,这是他的博客: ...

  8. c语言数论应用有关题目,中学数学中及初等数论相关的几个问题.docx

    . 目录 1.前言1 2.利用整除性判别法解决整除问题1 2.1 能被 2k 或 5k 整除的判别法1 2.2 割尾判别法2 3.利用整除的基本性质解题4 4. 最大公因数6 5. 抽屉原理在数论中的 ...

  9. 数论学习书籍及信奥中的数学之数论相关资料

    1.数学女王的邀请 初等数论入门(2020.07) 2.初中数学竞赛中的数论初步(第2版)-2020.04 3.初等数论(2015.11) 4.数论初步(2023.01) 5.初等数论(第3版)-20 ...

最新文章

  1. python训练数据集_python – 如何训练大型数据集进行分类
  2. 链家混三个月底薪_链家悲惨工作经历,新人参考
  3. linux .net core java_仅在.NET Core 2.0运行时的Linux上缺少运行时存储库错误
  4. 第二章:08运算符[比较运算符]
  5. 为C++程序添加文件保存加载功能
  6. log中文乱码 springboot_springboot + shiro 权限注解、统一异常处理、请求乱码解决
  7. 石油、黄金与美元的游戏
  8. LNMP安装了哪些软件?安装目录在哪?
  9. Python稳基修炼的经典案例8(计算机二级、初学者必须掌握的例题)
  10. Python爬虫入门教程 44-100 Charles的安装与使用-手机APP爬虫部分
  11. .Net Core Nopi 工具的使用
  12. 1小时赚300块,不打代码帮人做个吃鸡网页 [IVX实战第3篇]
  13. 记录element ui dialog弹框生命周期问题
  14. iOS攻城狮修炼之路
  15. Elasticsearch配置拼音分词和自定义分词器
  16. 大学计算机科学与技术试题,大学计算机试题模拟卷3-大学教育计算机科学与技术类计算机及应用试卷与试题.pdf...
  17. Numpy简易教程7——读/写文件
  18. SMTP错误码/建议解决方法
  19. 计算机编程平方怎么按,电脑键盘上怎么打平方,次方之类的
  20. 记一次“Could not resolve host: mirrorlist.centos.org; 未知的错误“的解决过程

热门文章

  1. Question: Database Of Tumor Suppressors And/Or Oncogenes
  2. T1-TensorFlow基础
  3. JavaScript对象的创建之构造函数
  4. Java向前引用容易出错的地方
  5. Strut2的属性驱动,模型驱动的理解
  6. binutils-2.22编译心得
  7. mysql 利用binlog增量备份,还原实例
  8. dropdownlist 实现无限级树形菜单
  9. df=df.reset_index(drop=True)
  10. AR报表控件的常见问题汇总