蔡勒公式不对啊???
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蔡勒公式不对啊???相关的知识,希望对你有一定的参考价值。
蔡勒(Zeller)公式:是一个计算星期的公式。
随便给一个日期,就能用这个公式推算出是星期几。蔡勒公式如下:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下:
w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪(前两位数)
y:年(后两位数)
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
d:日
[ ]代表取整,即只要整数部分。
例如1990 1 13日是星期6,但用公式却是星期7
1990 1 13 = 1989 13 13
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=89+[89/4]+[19/4]-2*19+[26(13+1)/10]+13-1
=89+[22.25]+[4.75]-38+[36.4]+12
=89+22+4-38+36+12
=125(125mod7=6)
1990 1 13 周六没错!
在计算机程序设计中通常都有MOD运算,它的含义是 取得两个整数相除后结果的余数。
例如:7 mod 3 = 1
因为7 除以 3 商2余1。余数1即执行MOD运算后的结果
可能是计算失误了吧
对蔡勒(Zeller)公式的改进
作者:冯思琮
W=[y/4]+r (y/7)-2r(c/4)+m’+d
公式中的符号含义如下,r ( )代表取余,即只要余数部分;m’是m的修正数,现给出1至12月的修正数1’至12’如下:(1’,10’)=6;(2’,3’,11’)=2;(4’,7’)=5;5’=0;6’=3;8’=1;(9’,12’)=4(注意:在笔者给出的公式中,y为润年时1’=5;2’=1)。其他符号与蔡勒(Zeller)公式中的含义相同。
以2049年10月1日(100周年国庆)为例,分别用蔡勒(Zeller)公式和笔者给出的公式进行计算,过程如下:
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1
=49+[12.25]+5-40+[28.6]
=49+12+5-40+28
=54 (除以7余5)
笔者给出的公式: w=[y/4]+r (y/7)-2r(c/4)+m’+d
= [49/4]+r (49/7)-2r(20/4)+10’+1
=12+0-2×0+6+1
=19 (除以7余5)
即2049年10月1日(100周年国庆)是星期5。
方便很多吧
参考资料:http://www.21maths.com/public/mlsx/shsx/200407/829.html
参考技术A 蔡勒公式经过了100多年的检验,不会有错的:)2017"百度之星"程序设计大赛 - 初赛(A)-1001.小C的倍数问题(HDU6108) 1005.今夕何夕-蔡勒公式 (HDU6112)
补完题?不存在的。
这么久了,还是一条咸鱼,看一堆乱七八糟的东西,写一堆没用的水题,一点进步都没有,还是那么菜,菜的掉渣。
这个百毒之星初赛A还会写两道最简单的水题,初赛B一点也不会,菜的难过。。。
最近看的dp和kmp,垂死挣扎,一点一点看吧。。。
cf打的还是那么弱,一点进步都没有。。。
好久没写博客了,最近写的都是水题,都没有写博客的必要,但是还是来水一水(;′д`)ゞ,要不就没有写博客的习惯了。
吐槽百毒之星,比赛的时候1005交上去,莫名其妙Output Limit Exceeded,然而晚上在杭电一点没改的又重新交了一次,过了?!过了,了。。。
写1001和1005的智障题解。。。
1001:小C的倍数问题
Time Limit: 2000/1000 MS (Java/Others)
Problem Description
以上是关于蔡勒公式不对啊???的主要内容,如果未能解决你的问题,请参考以下文章