作者jurian0101 (小维)
看板puzzle
标题Re: [问题] 13号星期五
时间Wed Feb 10 17:11:46 2010
※ 引述《utomaya (乌托马雅)》之铭言:
: 二十世纪总共出现几次十三号星期五?
: 注:二十世纪的起迄日为1901/01/01至2000/12/31,且1901/01/01为星期二。
13号星期五 = 戴冰上曲棍球面具的怪力杀人魔 (X)
= 一号是礼拜天 (O)
有BUG: 用 1到12代表 1901 每个月的一号 (X)
更正为: 3/1到隔年的2/1 (O)
日 一 二 三 四 五 六
9 4 10 5 8 3 6
12 7 1 11 2
累计 2 2 1 2 1 2 2
365≡1 mod7,1902年的星期数全部往後加一
日 一 二 三 四 五 六
6 9 4 10 5 8 3
2 12 7 1 11
累计 2 2 2 1 2 1 2
1903
日 一 二 三 四 五 六
3 6 9 4 10 5 8
11 2 12 7 1
累计 2 2 2 2 1 2 1
1904 !!闰年日
日 一 二 三 四 五 六
5 8 3 6 9 4 10
1 11 2 12 7
累计 2 1 2 2 2 2 1
合计 8 7 7 7 6 7 6
(1) (5) (2) (6) (3) (7) (4)
365 x 3+366 = 5 mod 7
四年四年一单位,星期数往後推5天。每 4x7 =28 年 将上表所有数字遍历。(修正!!!!)
(加总,次序如括弧内)= 48
听说智商超过150 的人是这样算的
28 x 12 (28年月份数平均分配到一周七天)
48 = ---------
7
100 = 28 x 3 + 16
剩下16年代入四年循环:
合计 8 7 7 7 6 7 6
(1) (2) (3) (4)
因此答案是 48 x 3 + 8 + 7 + 6 + 6 =171
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.164.7.217
1F:推 aaabboy:20x12/7=171....3 差1 有差吗XD? 02/10 17:27
2F:→ aaabboy:100x12 打错 02/10 17:27
3F:→ aaabboy: 早到晚到而已 02/10 17:28
4F:→ jurian0101:答案是171,我检查中... 02/10 18:03
5F:推 utomaya:我的答案也是171个 02/10 18:21
我第一版的算法有两个地方错了 = =
第一是1、2月必须算到上一年,把闰日放在表末。不然不会有漂亮的循环性质。
既然 1901/1/1 1901/2/1 (漏掉) 和 2001/1/1 2001/2/1 (多算) 四天中都没有星期天
这个结果不用再修正。
第二是日期往後推五天,星期日的数字相对是往前找的第五个才对。得解。
後记: 我很无聊。不过至少确认了aaabboy的算法没有问题,如果答案多1少1没有太大
关系的话就用平均法。
不然可以利用Excel的 Weekday函数 以及IF函数
A1 A2 A3
1901/1/1 =Weekday(A1) =IF(A2=1, 1, 0)
︴ ︴ ︴
1~7 代表(日)到(六) IF(布林值, True传回值, False传回值)
※ 编辑: jurian0101 来自: 218.164.7.217 (02/10 19:09)
6F:→ utomaya:而且它的答案是惊人的12*100/171=7.018 颇符合发生的机率 02/10 19:05
7F:→ terrorlone:我好想看杰森系列电影啊~~ 02/11 10:21
※ jurian0101:转录至看板 Horror 02/11 15:55
※ jurian0101:转录至看板 StupidClown
※ 编辑: jurian0101 来自: 218.164.23.205 (02/11 15:57)