今天我们来做一道题目。

输入正整数\(n\)(\(\le 10^{15}\)),求\(x^2+y^2=n^2\)的整数解的个数。

也就是圆心为原点,半径为\(n\)的圆上整点的数量。

为了得到更普遍的结论,我们改为\(x^2+y^2=n\)来做。


我们引入一个概念,叫做

【定义1】高斯整数:形如\(a+bi\)的数称为高斯整数,其中\(a,b\in Z,i=\sqrt{-1}\)。

于是就转化为了求\((a+bi)(a-bi)=n\)中\(a,b\)的数量。

注意到\(n,a+bi,a-bi\)都是高斯整数,就联想到对高斯整数\(n\)进行质因数分解。

【定义2】高斯素数:高斯整数中,不能分解为两个高斯整数的乘积(\(1,-1,i,-i\)除外)的,称为高斯素数。

至于为什么\(1,-1,i,-i\)除外,就像整数分解中\(1,-1\)除外一样,因为这些东西是单位元,对分解形式没有什么大的影响,所以就去除了。

如何对整数\(n\)进行高斯素数的分解呢?注意到\(n=p_1p_2\ldots p_k\)有唯一分解形式,只要考虑质数\(p\)如何进行高斯素数的分解。于是就有了

【定理1】(费马二平方和定理) 对于质数\(p\),若\(p\equiv 1(\mathrm{mod} \ 4)\)或\(p=2\),则\(x^2+y^2=p\)有一个正整数解;若\(p\equiv 3(\mathrm{mod} 4)\),则\(x^2+y^2=p\)无正整数解。

举个栗子,\(5=(2+i)(2-i),17=(4+i)(4-i),13=(3+2i)(3-2i)\),而\(3,7,31\)这些素数无法分为两个共轭的高斯整数的乘积。

(这个定理的证明被鸽掉了,大家当结论用吧)

也就是说,\(25=5^2=(2+i)(2-i)(2+i)(2-i)\),那么如何计算\(25=(a+bi)(a-bi)\)的解的数量呢?我们把质因子分为两个元素个数相等的可重集合\(A,B\),其中满足\(z\in A\Rightarrow \bar{z}\in B\),也就是\(A,B\)中的元素对应互相共轭,则令\(Z=\prod_{z\in A}z\),则\(\bar{Z}=\prod_{z\in A}\bar{z}=\prod_{z\in B}z\),所以\(n=Z\times \bar{Z}\),令\(a+bi=Z\)即可。

也就是说一种\(A,B\)的分配方法对应了一组整数解,注意到如果\(A\)中有\(a\)个\(2+i\),那么\(B\)中有\(2-a\)个\(2+i\),有\(a\)个\(2-i\),\(A\)中有\(2-a\)个\(2+i\),所以共有3组整数解。。。

吗?

枚举一下就发现实际上是\(12\)组整数解,因为上面我们将\(1,-1,i,-i\)除去了,实际上我们可以对其中一个数乘上\(1,-1,i,-i\),另一个数对应地乘上\(1,-1,-i,i\),于是还应该乘上4倍。

再来看看\(75=3*5^2=3(2+i)(2-i)\),发现无论\(3\)放到哪里都是不行的,因为对面也要有一个\(3\)。所以\(x^2+y^2=75\)没有整数解。

再来看看\(50=2*5^2=(1+i)(1-i)(2+i)(2-i)\),根据刚才的计算方法,我们可以在左边放\(a\)个\(1+i\),\(b\)个\(2+i\),其中\(0\le a,b\le 1\),则有\(4\)种,再乘上\(4\)就是\(16\)个整数解。。。

吗?

枚举一下就发现实际上是\(8\)组整数解,因为上面我们要乘上\(4\)是因为可以对其中的数乘上\(1,-1,i,-i\),但是我们发现\(1+i=i(1-i)\),所以\(1+i\)和\(1-i\)放在哪里并没有关系,所以\(n\)中\(2\)的质因子个数对答案没有影响。应该忽略就可以了。


现在我们总结一下\(n=2^ap_1^{a_1}p_2^{a_2}\ldots p_k^{a_k}\),则根据上面的讨论,\(2^a\)对答案没有贡献,如果\(p_i\equiv 1(\mathrm{mod} \ 4)\)则对答案有\(a_i+1\)的贡献,如果\(p_i\equiv 3(\mathrm{mod} \ 4)\),若\(2|a_i\)则对答案没有贡献,否则对答案有\(0\)的贡献(无解),乘起来得到的再乘上\(4\)就是最后答案。

现在我们已经能做出来这道题了,对\(n^2\)进行质因数分解,然后直接套公式就可以做出来了。


众所周知,与圆周率\(\pi\)有关的有一堆的公式,我们今天算的是圆上的整点个数,所以我们讨论一下它和\(\pi\)的关系。

注意到半径为\(R\)的圆面积\(\pi R^2\)近似于内部的整点个数,我们用这个来计算\(\pi\),而且\(R\)越大算的就越精确(误差是\(O(R)\)级别而面积是\(O(R^2)\)级别的)。

虽然上面的结论已经非常简洁了,但是做这道题我们还需要再进行简化一下。我们引入

【定义3】我们定义数论函数\(\chi(n)\),其中
\[
\chi(n)=\begin{cases}1 & (n\equiv 1(\mathrm{mod} \ 4)) \\ -1 & (n\equiv 3(\mathrm{mod} \ 4)) \\ 0 & (2|n)\end{cases}
\]
所以\(\chi(n)\)是一个完全积性函数,而且
\[
\begin{aligned}
\chi(1)+\chi(5)+\chi(5^2)+\chi(5^3)&=4 \\
\chi(1)+\chi(3)+\chi(3^2)+\chi(3^3)&=0 \\
\chi(1)+\chi(3)+\chi(3^2)+\chi(3^3)+\chi(3^4)&=1 \\
\chi(1)+\chi(2)+\chi(2^2)+\chi(2^3)&=1
\end{aligned}
\]
整明白点儿啥没?

\(x^2+y^2=n\)的整数解的数量(除以4)为
\[
\begin{aligned}
&(\chi(1)+\chi(p_1)+\chi(p_1^2)+\ldots+\chi(p_1^{a_1}))\times \\
&(\chi(1)+\chi(p_2)+\chi(p_2^2)+\ldots+\chi(p_2^{a_2}))\times \\
&\ldots \\
&(\chi(1)+\chi(p_k)+\chi(p_k^2)+\ldots+\chi(p_k^{a_k})) \\
=&\sum_{0\le b_i\le a_i}\prod_{i=1}^k\chi(p_i^{b_i}) \\
=&\sum_{0\le b_i\le a_i}\chi(\prod_{i=1}^k p_i^{b_i}) \\
=&\sum_{d|n}\chi(d)
\end{aligned}
\]
【定理2】\(x^2+y^2=n\)的整数解的数量为\(4\sum_{d|n}\chi(d)\)。

圆内整点的数量实际上就是同心且比它小的所有圆经过的整点数量,我们设\(R^2=n\)。
\[
\begin{aligned}
\frac{\pi}{4}&=\lim_{n\rightarrow +\infty}\frac{\sum_{i=1}^{n}\sum_{d|i}\chi(d)}{n} \\
&=\lim_{n\rightarrow +\infty}\frac{\sum_{d=1}^n\chi(d)\frac{n}{d}}{n} \\
&=\lim_{n\rightarrow +\infty}\sum_{d=1}^n\frac{\chi(d)}{d} \\
&=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\frac{1}{11}+\ldots
\end{aligned}
\]
整明白点儿啥没?

CDW数学小笔记的更多相关文章

  1. 转:【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber

    http://www.bubuko.com/infodetail-382485.html 标签:des   class   style   代码   html   使用   问题   文件   数据 ...

  2. 小笔记:Timer定时间隔时间操作

    小笔记:Timer定时间隔时间操作,后面有时间再补充和完善: public class TimingSvc { /// <summary> /// 定时器,执行定时任务 /// </ ...

  3. 关于 linux中TCP数据包(SKB)序列号的小笔记

    关于  SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq  一直没有找到seq 不清楚在那里初始化了,就 ...

  4. Linux下postgres9.4 版本的单机版安装小笔记

    1.添加RPMyum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redha ...

  5. php的一些小笔记--数学函数

    通常我们使用的数学函数不多,经常出现的有 floor 地板->舍去 ceil   天花板->进一 round 四舍五入 rand 随机数 mt_rand 产生更好的随机数 pow 指数表达 ...

  6. 深入剖析Nginx一点小笔记

    前几天在图书馆看书,恰好看到这本<深入剖析nginx>,花了快一周的时间看完了这本书,写点笔记心得便于以后复习. 以前对nginx的认识就只是停留在一个反向代理服务器上.百度了一下ngin ...

  7. 3D数学学习笔记——笛卡尔坐标系

    本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24601215 1.3D数学 ...

  8. 3D数学读书笔记——3D中的方位与角位移

    本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/25339595 方位和角位移 ...

  9. # ML学习小笔记—Gradien Descent

    关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 根据前面所为,当我们得到Loss方程的时候,我们希望求得最优的Loss方 ...

随机推荐

  1. PowerShell自动部署ASP.NET Core程序到 IIS

    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能.有关于更多PowerShell的信息,可参阅百度词条 接 ...

  2. github新建远程仓库初始化记录

    …or create a new repository on the command line echo "# 输出内容" >> README.md git init ...

  3. win10下,cmd,power shell设置默认编码为‘UTF-8

    power shell 注:以下内容在非Windows平台上写的,可能会有拼写错误,如果有,请指正,我会尽快修正.可以用Powershell的配置文件(\(PROFILE)来实现.\)PROFILE默 ...

  4. iOS - Objective-C 关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)

    关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分. 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的. 在类的定义之外为类增加额外的存储空间 使用关联,我 ...

  5. 【转载】Asp.Net中应用程序的事件响应次序

    Asp.Net应用程序事件响应次序是指Application事件的相应次序,涉及到的事件包括Application_Start事件.BeginRequest事件.AuthenticateRequest ...

  6. 【转载】网站配置Https证书系列(一):腾讯云申请免费的SSL证书的流程步骤(即https安全连接使用的证书)

    很多网站为了安全性考虑都会上https安全连接,此时就需要考虑使用SSL证书,其实在腾讯云这边提供有免费的SSL证书申请,登录腾讯云管理控制台后,进入SSL证书管理页面,里面有个申请免费证书.腾讯云申 ...

  7. c#的异步处理思路和vue前端中异步处理思路比较

    前语:目前工作在做的项目是前端基于vue的组件式开发,通过api接口调用,后端数据逻辑是一个c#实现的WCF服务 1.总结自己在c# .NET 4.5后的新异步方式  async搭配await来实现  ...

  8. 移动端隐藏滚动条,css方法

    小白第一次发文记录自己遇到的问题. 关于隐藏移动端滚动条方法很多,这里只说本人用到的. 在PC端隐藏html右侧默认滚动条 html { /*隐藏滚动条,当IE下溢出,仍然可以滚动*/ -ms-ove ...

  9. HTML5 - 初识

    众所周知,我们现在的手机APP开发模式分为一下几大类: 一.原生APP 二.纯HTML5 三.原生+HTML5 四.React Native 公司的职位划分: 1.平面设计师  : 作图.切图.HTM ...

  10. 【DRF框架】视图组件

    基于mixins视图类 from rest_framework import mixins # 创建视图 class CreateModelMixin(object) def create(self, ...