要证明n个数:

0 mod m,  n mod m,  2n mod m,  ...,  (m - 1)n mod m

精确地由某种顺序的m/d个数字的d份拷贝组成:

0,  d,  2d,  ...,  m - d

d = gcd(m, n)

第一步先要证明这m个数字是由m/d个数字的d份拷贝组成的,作者说这个证明是小菜一碟,通过

jn ≡ kn (mod m)  <--> j(n/d) ≡ k(n/d) (mod m/d)

就可以得到。

实在看不出这里的逻辑关系,所以按如下方式理解更容易一些。

由于d = gcd(m, n),所以jn ≡ jn + mn/d (mod m)

有jn ≡ (j + m/d)n (mod m)

这意味着,第0个数和第m/d个数是一样的,第一个数和第1 + m/d个数一样,一直到第m/d - 1个数。

也就是说,以这m/d个数为一组,后续是在不断重复这一组数。由于一共有m个数,所以一共重复了d次。

这里选择n/d是因为它是上下文中已知的最小整数,说jn ≡ jn + m (mod m)也是对的,但

jn ≡ (j + m/n)n (mod m)中,不能保证m/n是整数。

接下来,要证明这m/d个数是按某种顺序排列的:

0,  d,  2d,  ...,  m - d

令n = n'd,  m = m'd,原命题变为,证明

0 mod m',  n' mod m',  2n' mod m',  ...,  (m‘ - 1)n' mod m'是按某种顺序排列的

0,  1,  2,  ...,  m' - 1

对于k(0 ≤ k < m'),kn' mod m'的取值肯定是小于m'的,只要证明这m'个数互相不重复,那么它们就肯定是从0到m' - 1。

假设有k1, k2,满足 k1n' ≡ k2n' (mod m')

由于m', n'互素,所以 k1 ≡ k2 (mod m')

又由于k1, k2都小于m',所以只能是 k1 = k2。

所以,原命题得证了。

转载于:https://www.cnblogs.com/dongxuenan/archive/2011/06/19/2213995.html

关于4.8节第一个例子相关推荐

  1. 《LoadRunner 12七天速成宝典》—第1章 1.6节第一个性能测试案例

    本节书摘来自异步社区<LoadRunner 12七天速成宝典>一书中的第1章,第1.6节第一个性能测试案例,作者陈霁,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  2. Ubantu下hadoop运行第一个例子wordcount过程

    Ubantu12.04下hadoop-1.2.1运行第一个例子wordcount过程,分享一下 将WordCount.java文件放在Hadoop安装目录下,并在安装目录下创建输入目录input,目录 ...

  3. 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决

    <Unix网络编程卷1-套接字联网API>是本好书. 但是第一个例子不是很好编译. 需要如下步骤: 本人机器CentOS 5.4 1.下载源码 unpv13e解压到任意目录 然后按其rea ...

  4. python中tornado的第一个例子

    python中tornado的第一个例子 1  先安装tornado pip install tornado 2 新建tor.py 记住不能建立 tornado.py 这样的名字  不然会报错 Imp ...

  5. GLSL着色语言学习。橙皮书第一个例子GLSL+OpenTK+F#的实现。

    Opengl红皮书有选择的看了一些,最后的讲着色语言GLSL的部分看的甚为不理解,然后找到Opengl橙皮书,然后就容易理解多了. 在前面,我们或多或少接触到Opengl的处理过程,只说前面一些处理, ...

  6. TensorFlow版的“Hello World”,运行官网第一个例子

    TensorFlow版的"Hello World",运行官网第一个例子.代码如下: #!/usr/bin/env python import os import tensorflo ...

  7. Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)

    准备开始学一学d3d,听说<Introduction to 3D Game Programming with DirectX 12>这本书不错,于是就拿来学一学.不料第一个例子,按照书中的 ...

  8. DirectX9 SDK 下载、安装、VC++开发环境配置、跑通第一个例子

    一 可在 http://download.microsoft.com/download/F/1/7/F178BCE4-FA19-428F-BB60-F3DEE1130BFA/DXSDK_Feb10.e ...

  9. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

最新文章

  1. 元宇宙:基础-虚拟现实栈开发和虚拟土地
  2. php json_encode 后直接复制给js怎么调用,如何将数组从php(使用json_encode)传递给javascript...
  3. 实验六 Linux进程编程,Linux系统编程实验六:进程间通信
  4. Mongodb副本集--Out of memory: Kill process 37325 (mongod)
  5. 说一下 runnable 和 callable 有什么区别?
  6. eap和psk_针对WildFly和EAP运行Java Mission Control和Flight Recorder
  7. Tengine HTTPS原理解析、实践与调试【转】
  8. C程序设计 电文密码——有一行电文,已按下面规律译成密码
  9. 【解决方案】pytorch中loss变成了nan | 神经网络输出nan | MSE 梯度爆炸/梯度消失
  10. 阿里云服务器上搭建cs远控
  11. SQLSERVER不同数据库联表查询
  12. 对话AI一线大咖,零基础入门Python机器学习与深度学习
  13. 【云存储】企业云存储管理解决方案
  14. python网页登录模板
  15. Kubernetes总结一:初识Kubernetes
  16. html css ps切图教程,CSS切图学习之认识PHOTOSHOP(PS)
  17. html实现短信验证的功能,怎样实现短信验证功能
  18. 测试iphone硬件好坏的软件,iPhone手机如何检测硬件故障,硬件检测必备技能,建议了解一下...
  19. 绑架、做空、造假…是谁搞垮了曾经的“网红公司”网秦?
  20. 三次埃尔米特插值一阶导数的求法

热门文章

  1. MySQL中使用LIMIT进行分页的方法
  2. 如何在面试中介绍自己的项目经验,很重要!
  3. 真正理解 MySQL 的四种隔离级别
  4. 在 Spring Boot 中使用 Spring AOP 和 AspectJ 来测量方法的执行时间
  5. Service Mesh 实践指南:从单体应用到 Service Mesh 的曲折历程
  6. Redis:Redis集群实战
  7. 青少年蓝桥杯_2020_steam考试_中级组_第三题
  8. 软件测试自学舞蹈简单,中舞网APP评测:舞蹈初学者必备的APP
  9. 综合布线成数据中心建设和运营的重要课题
  10. 数据中心机房工程建设需要注意的重大问题