百科问答小站 logo
百科问答小站 font logo



怎么计算某一年的干支所表示的是一甲子中的第几年? 第1页

  

user avatar   maigo 网友的相关建议: 
      

@端木弗貢 的答案中可以提炼出一个公式: ,其中 x 代表一个干支的组合在六十甲子中的次序,a 和 b 分别代表其中天干、地支的次序。

@端木弗貢 是通过「凑」的方法得到这个公式的。其实,推导类似的公式有系统的方法,即利用中国剩余定理。我就以本题为例,讲解一下中国剩余定理背后的直觉和套路。不过说实话,严格按照定理来推导,过程还是有些麻烦,最好还是适当地引入「凑」的成分。

中国剩余定理

中国剩余定理解决的是这样的问题:已知一个数除以若干个数的余数,求这个数。比如,要求「壬寅」年是六十甲子中的第几年,就是问:一个数除以 10 余 9,除以 12 余 3,这个数是多少?显然,这样的数可以有很多,它们之间相差所有除数的最小公倍数;我们只要随便找到一个,就可以推出所有其它的了。

中国剩余定理告诉我们:可以先求出若干个「单位解」,再把它们线性组合起来得到答案。所谓「单位解」,就是除以某一个除数余 1,而除以其它除数余 0 的解。上面 10、12 这两个除数有些蹊跷,我们先换一组 —— 设三个除数分别为 3, 4, 5,那么 40, 45, 36 就是它们对应的「单位解」:

  • 40 除以 3 余 1,除以 4 和 5 都余 0;
  • 45 除以 4 余 1,除以 3 和 5 都余 0;
  • 36 除以 5 余 1,除以 3 和 4 都余 0。

我们可以先随便猜一个初始答案,比如 0,它除以所有的除数都余 0。然后,我们往答案上加减这些「单位解」,就可以单独调整答案除以某一个除数的余数,而不影响除以其它除数的余数。比如,往答案上加 40,就可以让除以 3 的余数加 1,而除以 4 和 5 的余数不变。根据这个思路,不难发现,最终的答案,就会是每个「单位解」与其对应的余数的乘积之和。如果要求一个数除以 3, 4, 5 分别余 p, q, r,那么答案就会是 。

那么问题来了:40, 45, 36 这三个「单位解」是怎么找到的呢?不会是硬凑的吧?当然不是。

寻找「单位解」

以 40 这个单位解为例:我们要找一个数 n,除以 4 和 5 都余 0,而除以 3 余 1。为了满足「除以 4 和 5 都余 0」,n 必须是 4 和 5 的最小公倍数(20)的若干倍,即 n = 20t。使得 n 除以 3 余 1 的 t,叫做「模 3 下 20 的数论倒数」。「数论倒数」可以用扩展的辗转相除法系统地求解,不过在这篇答案里,我就把它略过了,因为对于比较小的数来说,数论倒数「凑」起来更快。对于本例,不难凑出 t = 2,m = 40。这也是 t 在模 3 同余意义下的唯一解。

一般地,设各个除数为 ,除了 以外其它除数的最小公倍数为 ,则第 个单位解就是 ,其中 是模 下 的数论倒数,即 。中国剩余定理则可以表述为:如果一个数 除以 的余数为 ,那么就有 ,其中 是所有除数的最小公倍数。

数论倒数要有解,要求除数 与其它除数的最小公倍数 互质。这也就是要求所有的除数两两都互质。此时 就是所有除数之积,而 就等于 。

现在回到最初的干支问题:两个除数分别是 10 和 12,并不互质。怎么办呢?

除数不互质的情形

先把原始问题写成同余方程组的形式:

和 不互质。我们可以把每个同余方程拆开,使得每个方程的模都只有一个质因子:

这一步很简单,因为余数(a 和 b)可以保持不变。

下面要做的,就是对于模的质因子相同的那些方程,检验它们是否矛盾。在本例中,就是要检验第一、三个方程,也就是确认 a 和 b 的奇偶性相同。这是成立的:在干支中,奇数号天干只能搭配奇数号地支,偶数号天干只能搭配偶数号地支。

检验完了之后,同一组方程中可以只留下模的指数最高的那一个;在本例中,就是留下第三个方程,丢掉第一个方程。于是得到:

呀,除数们正好是 3, 4, 5!于是可以套用之前已经求得的「单位解」,得到:

能不能简单点儿?

上面,我们把两个除数 10 和 12 都拆得七零八落,很麻烦。能不能简单点儿?其实可以,只不过这样的方法就不系统了。在本例中,我们可以只拆 10,不拆 12:

确认 a 和 b 的奇偶性相同后,可以丢掉第一个方程:

两个除数 5 和 12 互质。下面要求出两个除数在模对方下的数论倒数:

不难凑出 ,于是两个「单位解」就是 和 ,同样可以得到 。

临门一脚

36 和 25 这两个系数好大,不好算也不好记。不过我们可以稍微再化简一下。

记得 a 和 b 的奇偶性相同吗?这就是说, 。

由此可以得到 。嗯,我承认,这一步是凑的。

从刚刚得到的答案中减掉这个式子,就能把系数弄小了:

这个结果就十分方便计算和记忆了。




  

相关话题

  手机计算器为什么会出现10%+10%=0.11这样明显错误的算式? 
  如何证明将任意3的倍数各数位数字立方求和,重复数次后得到固定数值153? 
  如何证明1的pi次方等于1? 
  Excel中带文字的计算式如何设置,且不影响前列计算结果? 
  10000⁴ 和 4¹⁰⁰⁰⁰,怎样比较大小? 
  为什么-1的4/6次方不等于-1的2/3次方? 
  (-1)^(0.4) 是否等于 (-1)^(2/5)? 
  2+2为什么等于4而不是22,加号的本质是什么? 
  我在想 无限不循环小数算到后面会不会开始循环 他们的循环只是长一些呢? 
  女生问我99加1等于10是什么意思? 

前一个讨论
多模态训练,怎么解决不同模态之间差异的问题?
下一个讨论
为什么 larger batch size 对对比学习的影响比对监督学习的影响要大?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利