发新帖我要提问
12
返回列表
打印

推导还是应该**3月为基月的原则

[复制链接]
楼主: wsl_5631
手机看帖
扫描二维码
随时随地手机跟帖
21
hq_y| | 2008-9-6 20:26 | 只看该作者 回帖奖励 |倒序浏览

有用,收藏起来

使用特权

评论回复
22
hotpower| | 2008-9-7 09:55 | 只看该作者

菜农“反汇编”蔡勒公式终成正果~~~

反推(13*M+8)/5+D到13*(M+1)/5+D-1更简单

(13*M+8)/5+D=(13*M+8+5-5)/5+D
            =(13*M+13)/5-5/5+D
            = 13*(M+1)/5+D-1
相关链接:http://blog.**/hotpower/158297/message.aspx

使用特权

评论回复
23
icmap| | 2008-9-7 12:38 | 只看该作者

不明白 (13*M+8)/5 是什么含义

希望高人说明一下。

使用特权

评论回复
24
hotpower| | 2008-9-7 16:49 | 只看该作者

菜农气晕数学界的(13*M+8)/5推导过程

首先声明菜农不喜欢数学,更不是数学家~~~

刚找到当年(13*M+8)/5)推导过程的“手稿”。它要从月星期表说起

通用星期偏差表(此表是菜农公式中的(13*M+8)/5)
分组           大  小  大  小  大  大  小   大   小   大   大   小  大  小  大
闰年  1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 13月 14月 3月 4月 5月  
天数   31  29  31  30  31  30  31  31  30  31   30   31   32   29  32  30   31 
星期   5   1   2   5   0   3   5   1   4   6    2    4     0    3   5   1    3
星期差         3   2   3   2   3   3   2   3    2    3     3    2   3   2    3

分组           大  小  大  小  大  大  小   大   小   大   大   小  大  小  大
平年  1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 13月 14月 3月 4月 5月  
天数   31  28  31  30  31  30  31  31  30  31   30   31   32   28  32  30   31 
星期   6   2   2   5   0   3   5   1   4   6    2    4     0    3   5   1    3
星期差         3   2   3   2   3   3   2   3    2    3     3    2   3   2    3

由于明年的1月(13月)和今年5月的月表值都是0,2月(14月)和今年6月的月表值都是3
故月表简化为:
通用星期偏差表(此表是菜农公式中的(13*M+8)/5)
分组           大  小  大  小  大  大  小   大   小   大 
 年           3月 4月 5月 6月 7月 8月 9月 10月 11月 12月   
                      1月 2月
天数           31  30  31  30  31  31  30  31   30   31  
                       31  28/29  
星期值         2   5   0   3   5   1   4   6    2    4  
星期差         3   2   3   2   3   3   2   3    2    3  

可以看出"分组"为两组(大月小月大月小月大月),每5(记住这个"5")个月1组(注意1月2月划归为5月6月):
3月 4月 5月 6月 7月 和 8月 9月 10月 11月 12月
星期差同为:3   2   3   2   3

星期差求和=3+2+3+2+3=13(记住这个"13")

再对12个月的星期值求和=0+3+2+5+0+3+5+1+4+6+2+4=40
由于每5个月1组,则40/5=8(记住这个"8")

因为原查表算法为:
某日星期几=(百年%4*5+年+年/4+月星期表+日)%7

所以要琢磨出:
    月星期表 = ((13*M+8)/5)%7
    
因为每5个月1组,故肯定有((aM+b)/5)%7或((aM+b)%5)%7存在。
但是((aM+b)%5)%7可化简为(aM+b)%5,结果只有0,1,2,3,4.这肯定不过!!!

所以((aM+b)/5)%7将是推导的框架!!!

哈哈~~~"5"用到了。该"13"和"8"上阵了。

参数只有a,b.代入((aM+b)/5)%7几次即可搞定((13*M+8)/5)%7~~~

哈哈~~~菜农没文化让大家见笑了~~~搞笑~~~绝对的"非典"

菜农绝对气晕数学教授,不过俺数学不好也难为菜农了~~~

使用特权

评论回复
25
icmap| | 2008-9-7 17:49 | 只看该作者

谢谢 hotpower

使用特权

评论回复
26
icmap| | 2008-9-7 20:44 | 只看该作者

参考 hotpower 提供的程序,我也推导了一下。

使用特权

评论回复
27
hotpower| | 2008-9-9 02:19 | 只看该作者

揭露“心算星期”骗人的把戏

某日星期几=(百年%4*5+年+年/4+月星期表+日)%7

通用星期偏差表(此表是菜农公式中的(13*M+8)/5)
闰年  1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 13月 14月 3月 4月 5月  
天数   31  29  31  30  31  30  31  31  30  31   30   31   32   29  32  30   31 
星期   5   1   2   5   0   3   5   1   4   6    2    4     0    3   5   1    3

平年  1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 13月 14月 3月 4月 5月  
天数   31  28  31  30  31  30  31  31  30  31   30   31   32   28  32  30   31 
星期   6   2   2   5   0   3   5   1   4   6    2    4     0    3   5   1    3

例如2008年的“骗术”

根据星期表查表公式:

某日星期几=(百年%4*5+年+年/4+月星期表+日)%7
          =(20%4*5+08+08/4+月星期表+日)%7
          =(0+10+月星期表+日)%7
          =(3+月星期表+日)%7
查2008.9.8

因为9月表=4,故(3+月星期表+日)%7=(3+4+日)%7=(0+日)%7
即9月的日就是“星期”

所以你就会“聪明”地立即“说出”2008.9.8是星期一(8=7+1=0+1=1)

2008.1.8如何查表???

这里有2种查法。
注意顶部的通用星期偏差表的1月2月和13月14月,
1月2月需要知道今年是否闰年,13月14月不需要,但要将年-1。

1.不需知道闰年的查法
  因为是1月,需要变换为13月或5月,且年变换为2007年。
  即需要查2007年的13月的8日是星期几。
某日星期几=(百年%4*5+年+年/4+月星期表+日)%7
          =(20%4*5+07+07/4+月星期表+日)%7
          =(0+8+月星期表+日)%7
          =(1+月星期表+日)%7
          =(1+13月星期表+日)%7
          =(1+0+日)%7
故2008.1.8是(1+8)%7=(2+7)%7=2


2.需知道闰年的查法
因为2008是闰年,故需要查闰年表
某日星期几=(百年%4*5+年+年/4+月星期表+日)%7
          =(20%4*5+08+08/4+月星期表+日)%7
          =(0+10+月星期表+日)%7
          =(3+1月星期闰年表+日)%7
          =(3+5+日)%7
          =(1+日)%7
故2008.1.8是(1+8)%7=(2+7)%7=2
  
哈哈~~~这种“心算”骗人的把戏就是当知道年月时,日+偏差就是星期~~~

更详细的可以参见下列连接,注意月星期表是可以随意折腾的~~~

可以看出我04年用:
某日星期几=(百年%4*5+年+年/4+月星期表+日+2)%7

这主要是根据我瞎编的"古老的传说"所造的月星期表~~~

相关链接:http://blog.**/hotpower/11893/message.aspx

使用特权

评论回复
28
wsl_5631|  楼主 | 2008-9-9 15:45 | 只看该作者

受益非浅

谢谢各位!

使用特权

评论回复
29
yzqok| | 2008-9-28 17:58 | 只看该作者

学习

使用特权

评论回复
30
lshlin| | 2008-11-3 16:39 | 只看该作者

不错,赞一个

使用特权

评论回复
31
s46410864| | 2008-11-4 10:07 | 只看该作者

学习

在灌水中学习灌水.........

使用特权

评论回复
32
ilaohu| | 2008-11-4 15:05 | 只看该作者

学习

学习

使用特权

评论回复
33
李冬发| | 2008-11-5 10:12 | 只看该作者

一个日历哪来这么复杂噢.总天数,算有几个平年几个润年就可

使用特权

评论回复
34
天雨粟| | 2008-11-5 22:36 | 只看该作者

哪位老师能讲讲农历算法啊!

哪怕是只适合2000至2099年也好!
不需要"农历08年11月5日"这样的东东,完全用天干地支纪年月日时,最好还能算出24节气,市面上的东东太粗略了!

使用特权

评论回复
35
李冬发| | 2008-11-7 14:45 | 只看该作者

农历算法用查表法吧,真真计算难!还得观天象呢

使用特权

评论回复
36
wp35265| | 2008-11-15 18:43 | 只看该作者

选3月1日为基月还是很不错的

使用特权

评论回复
37
armpu| | 2008-12-20 11:05 | 只看该作者

学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则