分類
程式技術

13號星期五的機率

今天是 2009/2/13 的 13號星期五, 13號星期五, 也是黑色星期五, 印象中, 應該一年平均會有兩次, 不過為了驗證這件事, 我們利用 vbs 寫個小程式來驗證一下就知道了..

這裡會用到的重要 vbs 函數有兩個 DateSerial 及 WeekDay 這兩個, 程式碼如下:

counts = 0  
  
For i = 1 to 2000  
  For j = 1 to 12  
    If WeekDay(DateSerial(i, j, 13), vbSunday) = 6 Then  
      counts = counts + 1  
    End If  
  Next  
Next  
  
WScript.Echo counts

計算西元1年至2000年的13號星期五有幾次, 來平均一下應該就很公平了吧.. 這樣計算出來的結果是 3439 次, 平均下來就是 1.7195 次 (3439 / 2000) 這樣就和印象中的 13號星期五的機會很接近了. (若用 3000年來算是 1.7196 次 (5159 / 3000), 9000年來算是 1.7198 (15479 / 9000))

再來列出最近10年的 13號星期五:
2001/4/13 2001/7/13
2002/9/13 2002/12/13 2003/6/13
2004/2/13 2004/8/13
2005/5/13 2006/1/13
2006/10/13 2007/4/13
2007/7/13
2008/6/13
2009/2/13 2009/3/13 2009/11/13
2010/8/13

很有趣的, 今年吃掉了2007, 2008, 2010 三年的 quota 耶, 哈哈..

相關討論:
一年中最多有幾個黑色星期五?最少有幾個黑色星期五?
上面文章內, 即使碰到閏年的 2月 29日, 算出的結果仍是介於1~3日之間, 所以也不會有超過3日或少於1日的沒有13號星期五的日子.

[2017/10/13 10:16]
補上 codepen 的 javascript 程式碼結果.

(https://codepen.io/timhuang/pen/pWZXYL)