数学吧 关注:934,173贴子:8,933,994
  • 9回复贴,共1

[求教]取模运算与星期几

只看楼主收藏回复

电影<夏日大作战>中,男主角利用取模运算算出了某年某日是星期几,想问各位大神其中的原理...


IP属地:美国1楼2012-07-23 21:26回复
    学过同余吗?没学过去学一下。
    最简单的例子:整数可以做加法、减法、乘法、带余除法,这四种运算。
    通过模2——也就是除2取余数,可以把整数分成奇数、偶数,
    而且可以验证奇数、偶数是保持加法、减法、乘法的结构的。
    类似地,模7的话,就可以用来处理一些关于星期几的问题了。
    


    IP属地:上海2楼2012-07-23 21:30
    回复
      2026-01-21 23:00:13
      广告
      不感兴趣
      开通SVIP免广告
      mod


      3楼2012-07-23 22:01
      回复
        蔡勒公式
        公式都是基于公历的置闰规则来考虑。
        公式中的符号含义如下:
        w:星期(计算所得的数值对应的星期:0-星期日; 1-星期一; 2-星期二; 3-星期三; 4-星期四; 5-星期五; 6-星期六)
        c:世纪减1(即年份前两位数)
        y:年(即年份后两位数)
        m:月(m的取值范围为3至14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
        d:日
        [ ]:称作高斯符号,代表取整,即只要整数部份。
        mod:‎‎同余‎(这里代表括号里的答案除以7后的余数)


        IP属地:浙江4楼2012-07-23 23:02
        收起回复
          万恶的验证码,输死我了。。。


          IP属地:美国5楼2012-07-24 21:14
          回复
            现行历法(格里历)最简捷的计算公式:W=[5y/4]+5r(c/4)+ m’+d 。公式中的符号含义如下,w:星期;c:世纪;y:年(两位数);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)。
            参考链接:http://www.21maths.com/public/mlsx/shsx/200407/829.html


            6楼2012-10-20 15:12
            回复
              重温了一下以前看的夏日大作战;
              发现了这题目;
              上网搜了C++代码;
              拷贝验证了一下发现是星期一;
              主角算错了;


              IP属地:广东8楼2017-06-28 21:35
              回复
                两潘的书里有计算的方法


                IP属地:广东来自Android客户端10楼2017-07-05 00:26
                回复
                  2026-01-21 22:54:13
                  广告
                  不感兴趣
                  开通SVIP免广告
                  注意,现行公历是1582年10月15日之后才确立的,之前的历法有所不同。


                  IP属地:河北来自Android客户端11楼2017-07-05 07:12
                  回复