打印

菜农与蔡勒和基姆拉尔森三个星期公式的继续繁衍

[复制链接]
3094|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2011-7-17 09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2011-7-18 23:05 编辑

本文验证工具http://www.hotpower.org/HotAjax/HotPower_HotAjax.html

首先列出“菜农与蔡勒和基姆拉尔森三个星期公式”:

蔡勒星期公式=(203+百年/4-2*百年+年+年/4+13*(月+1)/5+日-1)%7
或:
蔡勒星期公式=(203+百年/4-2*百年+年+年/4+(13*月+8)/5+日)%7
或:
蔡勒星期公式=(203+百年/4-2*百年+年+年/4+(13*月+3)/5+日+1)%7

基姆拉尔森星期公式
=(百年/4+百年*5+年+年/4+(13*月+3)/5+日+1)%7
或:
基姆拉尔森星期公式=(百年/4+百年*5+年+年/4+(13*月+8)/5+日)%7
或:
基姆拉尔森星期公式=(百年/4+百年*5+年+年/4+13*(月+1)/5+日-1)%7

注意:(13*月+8)/5+日最简洁!!!

菜农星期公式=((百年%4)*5+年+年/4+(13*月+8)/5+日)%7
或:
菜农星期公式=((百年&3)*5+年+(年>>2)+(13*月+8)/5+日)%7

我们可以看到三个星期公式的组成:
1.百年(日期/100)
蔡勒星期公式有:203+百年/4-2*百年
基姆拉尔森星期公式有:百年/4+百年*5
菜农星期公式有:(百年%4)*5
2.年(日期%100)
三个公式都有:年+年/4
3.月日
三个公式都有:(13*月+8)/5+日

可以看出三个公式最大的不同点在于百年的算法构成大不一样。
蔡勒星期公式中的“-2*百年”最为独特,真不明白在干什么。
其次是基姆拉尔森星期公式中的“百年*5”,有5的倍数的身影。
菜农星期公式中的“(百年%4)*5”构成了0,5,10,15,0,5,10,15,...序列
并且((百年%4)*5)%7又构成了我们需要的0,5,3,1,0,5,3,1,...序列

蔡勒星期公式需要0,5,3,1,0,5,3,1,...序列
基姆拉尔森星期公式有0,5,10,15,0,5,10,15,...序列的念头
而菜农星期公式两个序列都满足,即百年的计算核心实际就是0,5,10,15,0,5,10,15,...序列!!!

在数学中,(百年%4)*5=(百年*5)%20,即都能得到0,5,10,15,0,5,10,15,...序列
故即可衍生出《菜农第二星期公式》!!!

菜农第二星期公式=((百年*5)%20+年+年/4+(13*月+8)/5+日)%7
其中:其中: 百年=0~99,年=0~99,月=1~12,日=1~28/29/30/31 当月=1或2时,月=月+12或月=月+4,年=年-1

假若用:日期=百年*100+年,百年=日期/100

故有:
菜农第二星期公式=(((日期/100)*5)%20+日期%100+(日期%100)/4+(13*月+8)/5+日)%7
其中:其中: 日期=0~9999,月=1~12,日=1~28/29/30/31 当月=1或2时,月=月+12或月=月+4,日期=日期-1


大家可以随意采用:
菜农星期公式=((百年%4)*5+年+年/4+(13*月+8)/5+日)%7
或:
菜农星期公式=((百年&3)*5+年+年/4+(13*月+8)/5+日)%7

菜农第二星期公式=((百年*5)%20+年+年/4+(13*月+8)/5+日)%7
或:
菜农第二星期公式=(((日期/100)*5)%20+日期%100+(日期%100)/4+(13*月+8)/5+日)%7

雁塔菜农HotPower@126.com 2011.7.17 9:18 于西安雁塔菜地

相关下载

相关帖子

沙发
weshiluwei6| | 2011-7-17 14:38 | 只看该作者
沙发 强烈支持 要学习的这个

使用特权

评论回复
板凳
hotpower|  楼主 | 2011-7-17 15:25 | 只看该作者
好好学习,随后再附三个星期公式的C语言代码。

使用特权

评论回复
地板
plc_avr| | 2011-7-18 07:12 | 只看该作者
沙发没抢到,地板也没了。顶菜农!

使用特权

评论回复
5
123jj| | 2011-7-18 07:21 | 只看该作者
菜农的贴子要勤顶!

使用特权

评论回复
6
hotpower|  楼主 | 2011-7-18 12:29 | 只看该作者
注意已更新:
菜农第二星期公式=(((日期/100)*5)%20+日期%100+(日期%100)/4+(13*月+8)/5+日)%7

日期/20 != ((日期/100)*5)

这里不能化简,否则出错。

使用特权

评论回复
7
delong_z| | 2011-7-19 09:56 | 只看该作者
顶!!!!

使用特权

评论回复
8
Ryanhsiung| | 2011-7-19 13:51 | 只看该作者
好东西啊

使用特权

评论回复
9
hotpower|  楼主 | 2011-7-24 19:29 | 只看该作者
好东西啊
Ryanhsiung 发表于 2011-7-19 13:51


哈哈,只有你是知道的~~~

使用特权

评论回复
10
hotpower|  楼主 | 2011-11-30 00:51 | 只看该作者
顶起来,有小朋友要用~~~

使用特权

评论回复
11
寅辰思瑜| | 2011-12-3 20:16 | 只看该作者
膜拜中....

使用特权

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

本版积分规则

个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1460

主题

21619

帖子

506

粉丝