心算任何一天是星期几.doc_第1页
心算任何一天是星期几.doc_第2页
心算任何一天是星期几.doc_第3页
心算任何一天是星期几.doc_第4页
心算任何一天是星期几.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

心算任何一天是星期几 (刘顺平)不动纸笔,电脑,不查万年历,仅凭心算,说出任何一天是星期几,读过这篇文章后,你就可以做到。我最先是从一本心理学书上知道,有人能说出几十年里任何一天是星期几,但其智商很低,被称为“白痴天才”。当时觉得很神奇,就想找到一种方法,通过简单计算来得到结果,经过一番研究,终于独立找到了算法。若干年后,我在网上看到了蔡勒公式,知道蔡勒也找到了类似的方法。但蔡勒公式并没那么简单,一般人很难用蔡勒公式来实现心算。前几天,又看到了维基百科的相关内容,其中的方法原理与我的一样,但仍显凌乱,计算涉及的数字也稍大,不便使用。而且重点只说方法,没有详细解释原理,为什么那么算,时间久了,难免容易遗忘。这里,我用当初研究时的思路,把我掌握的算法介绍给大家。首先,如果某月的1日是星期1,那么这个月的任何一天是星期几很容易算出来,把日数除以7求余数即可,例如9日就是星期2。如果1日不是星期1怎么办?可以看上月底是星期几,把上月底星期数当成本月的月基数,只要把月基数再加上本月算出的余数就行了,因为这月的星期数就是从那天往后数的。例如上月底是星期3,那么本月9日就是3+2=星期5。在现行历法里,各月的天数是固定的,知道了1月份的月基数,以后各月的月基数都可以推算出来。如果1月1日是星期1,那么1月31日就是星期3,这就是2月份的月基数;据此又可以算出2月28日(暂只考虑平年)还是星期3,这就是3月份的月基数;3月31日是星期6,是4月份的月基数,一年12个月的月基数分别是0,3,3,6,1,4,6,2,5,0,3,5,这串数字叫做基本月基数(后文简称月基数),非常重要,要心算星期必须记住。每季度3个数字一组,也很好记,即033,614,625,035。但实际上,每年1月份的月基数不一定是0,可以是06的任何一个数字,为此,可以引入一个与月基数类似的年基数概念:上年底的星期数,就是今年的年基数。把年基数与基本月基数相加,就是各月实际的月基数。例如,年基数为4,那么8月份的月基数就是4+2=6,实际月基数是6。我们只要知道某年的年基数,这一年任何一天是星期几也就可以很容易算出来。例如,2013年的年基数是1,2013年5月23日是星期几?年基数+月基数+23%7=1+1+2=4,那天是星期4。(%表示求余数)如何才能知道某年的年基数?如果只是有限的三两年,可以查下日历,然后记住就行了,但要知道任何一年的年基数,只能通过计算。首先要明白,一个平年365天,用7除余1天,所以在星期计算意义上,过一个平年等于过1天,一个闰年相当于2天。 如果一个世纪的00年的年基数是0,在只考虑平年的情况下,某年的年基数就是年份数除以7的余数,由于实际历法是4年一闰,还要加上因闰年增加的天数。例如1917年,17%7=3,而17年里有4个闰年,所以1917年的年基数就是3+4=7=0。再例如1936年,36/7余1,而36年里有9个闰年,9%7=2,1+2=3,年基数是3。要心算星期数,年基数计算是重点,应尽可能简化。在同一个世纪里,每经过28年,不仅按平年算增加的28天可以被7整除,而且其中7个闰年增加的7天也正好可以被7整除,所以在同一个世纪里,年基数是28年一循环。当年数大于28,56,84时,可以减去这些数字,以求简化,结果是一样的。例如1959年,与1903年的年基数是一样的,而03年显然更简单。再例如,1981年,差3年到84年,28-3=25,所以81-56=25,这比直接心算81-56更简单。另外,星期计算中+6=-1,+5=-2。例如5+6=5-1=4,4+5=4-2=2。再说说闰年的计算。我们在计算年基数时,是见到闰年就直接多加一天,但实际这一天是加在了2月29日,所以从2.月29日以后的计算结果没有问题,而之前的1,2月份就多加了一天,必须减去。例如,1904年的年基数是5,3月份的月基数是3,所以1904年3月1日就应该是(5+3+1)%7=2,是星期2;前一天的2月29日就是星期1,但计算结果=年基数+月基数+日数=(5+3+29)%7=2,必须再减去一天,才是正确结果星期1。1900年的年基数正好就是0,从19001999年都可以用上面的方法来算。例如1949年10月1日星期几?49年-28年=21年的年基数是0+5=5,10月份的月基数0,所以5+0+1=6,开国大典是星期6。1937年7月7日星期几?37年-28年=9年,年基数是2+2=4,月基数是6,日数7可以直接舍去不算,4+6=4-1=3,七七事变那天是星期3。并不是每一个00年的年基数都是0,也可以是其他数字,为此,我们可以像月基数和年基数一样,再用一个世纪基数来调整,道理是完全一样的。现行的历法是400年97闰,整百的年份只有能被400整除的才是闰年,其他的不是。1700年,1800年,1900年都是平年而不是闰年,2000年是闰年。(400+97)%7=0,整除无余数,所以现行公历每400年一循环,只要知道连续四个世纪的世纪基数就,行了。先说第一个世纪,没有00年,公元1年1月1日是星期1,年基数+月基数+日数=1+0+1=2,只要再加上世纪基数就能求出星期数1,显然,世纪基数是6;99年12月31日,年基数+月基数+日余数=4+5+3=12,12%7=5,再加上世纪基数,5+6=5-1=4,那天是星期4,4就是公元100199年的世纪基数;同理,4+5=4-2=2,公元199年12月31日是星期2,也就是公元200299年的世纪基数;公元300399年的世纪基数是,0。以后就6,4,2,0循环往复。在具体计算时,可以把表示世纪的百位和千位数字当成一个二位数用4除,当余数是0,1,2,3时,对应的世纪基数就分别是6,4,2,0。例如18*年,18%4=2,对应的世纪基数是2;19*年对应的世纪基数是0;20*年的世纪基数是6,这3个世纪的基数经常用,记住就行了,不用临时算。整百同时又是闰年的00年份,如2000年,多出的一天不能被计算出来,而是直接加在了世纪基数上,所以后面年基数的计算,不受任何影响。1万年等于25个400年,2千年等于5个400年,所以无论给出的年份数字有多大,万位以上的都可以舍去,够2000就减2000,够4000就减4000,只用不到2000的余数来算世纪基数,结果不受影响。例如公元12345678年9月10日星期几?年份数字虽大,前面的1234都可以舍去不算,后面的5678-4000=1678,16*对应的世纪基数是6,78-56=22,年基数是1+5=6,月基数是5,日余数3,所以(6+6+5+3)%7=6,那一天星期6。至此,我们可以轻松的计算出公元后任何一天(按现行公历法则推延,不说儒略历)是星期几,一般不用动笔。心算能力稍差的可以用几个手指头辅助计算。在世纪基数+年基数+月基数+日余数,逐个相加过程中,注意运用+6=-1,+5=-2的技巧来简化,且当中间结果超过7时,立即减7,使中间结果保持在6以内,这样,一只手的几根手指就足够用了。对于星期的计算来说,掐指一算,知过去将来并非难事。作为趣味问题,按照现行公历规则,将历法向前推至公元前的某一天,这种方法还能用吗?回答是:可以用。根据400年一循环的原则,可以把公元前的某一天转换成与之等效的公元后日期来算。由于没有公元0年,公元前1年实际相当于公元0年,与公元400年正好相差400年,如果公元前1年记作-1,只要数字上再加401就可以得到与之等效的公元400年,公元前1前400年都可以这样来转换到公元后。具体计算上,可以把公元前年份用400来除,也就是减去若干个400年,得到不足400的年份,用401减这个年份,就得到与之等效的公元后年份,然后根据前面介绍的方法计算星期数就行了。例如,武王伐纣是在公元前1046年1月20日,那一天是星期几?1046-800=246,用401-246=155,世纪基数4,年基数6+6=6-1=5,月基数0,日余数6,(4+5+0+6)%7=1,所以武王伐纣那天是星期1。一般人能了解这些方法也就够了,不必追求速度。有人做这方面的表演,速度很快,据说吉尼斯记录是一分钟能说出几十个。他们并不是单纯在算,更多靠的是记忆。熟记几十年里每一个月的实际月

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论