Euler problem 19.1

How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?

(defun is-leap-year (year)
  (or (and (zerop (mod year 4))
           (not (zerop (mod year 100))))
      (zerop (mod year 400))))

(defun days-in-month (month year)
  (case month
    ((1 3 5 7 8 10 12) 31)
    ((4 6 9 11) 30)
    (2 (if (is-leap-year year)
           29
           28))))

(defun euler-19 ()
  (let ((day-of-week 2) ; 1 Jan 1901 was a Tuesday
        (sundays 0))
    (loop :for year :from 1901 :to 2000 :do
      (loop :for month :from 1 :to 12 :do
        (when (zerop day-of-week) ; 0 represents Sunday
          (incf sundays))
        (setf day-of-week
              (mod
               (+ day-of-week
                  (days-in-month month year))
               7))))
    sundays))

(print (euler-19))

CL-USER> (euler-19)
171
CL-USER> 

— Me@2024-01-30 01:46:11 PM

.

.

2024.01.30 Tuesday (c) All rights reserved by ACHK

點石成金 8

The Metagame, 2

.

無謂的事務,如果不可避免,你可試試加一個有謂的情境。

For a boring but unavoidable task, add an amazing context.

For an interesting but useless activity, add a meaningful context.

For example, I use video games to train my courage.

— Me@2011.08.24

— Me@2019-12-12

.

.

2019.12.12 Thursday (c) All rights reserved by ACHK

善利用愚蠢 1.2

這段改編自 2010 年 3 月 20 日的對話。

Stupidity is like nuclear power; it can be used for good or evil.

– Dilbert

(安:那樣,即是愚蠢的人當中,有一部分你無論多麼用心教導,也不會變成賢智的人。那怎麼辦?)

愚蠢人士當中,有機會變成賢智人士的,我簡稱為「向智人士」;而沒有機會的,我則簡稱為「不智人士」。面對「不智人士」,很多時也沒有所謂「怎麼辦」。「面對」「不智人士」的最佳方法是,令到自己毋須面對他們。例如,如果你是一間公司的老闆或者高層管理人員,你的其中一個責任,就是避免聘請到「不智人士」。

(安:但是,有些情況下,無可避免要和「不智人士」相處。那又怎麼辦呢?)

你可以試試 copyleft 了「不智人士」的愚蠢。這裡「copyleft」的意思是,把原本有害的東西,透過新奇的用法,轉化成有益的東西。我會把「copyleft」翻譯成「反利用」,或者「幽默利用」。

例如,你有一個學生不智。他的不智之處,在於人云亦云,不肯有自己的思想,獨立思考。你多次告誡他,老師的話未必正確,所以只能作為參考,不能作為金科玉律。但是,他屢勸不改。那樣,你可以思考一下,怎樣可以善加利用,他這個「人云亦云」的缺點,令到他會長期做利人利己的事。

例如,你可以對他下達指令:對人要有禮貌。由於他「人云亦云」,他自然不會有任何哲學的考慮:「為什麼對人要有禮貌呢?」他只會盲從附和。那樣,他自此一生人,也會對人有禮貌。結果,「人云亦云」在這方面,反而對他有利。

— Me@2012.07.12 

2012.07.12 Thursday (c) All rights reserved by ACHK

善利用愚蠢 1.1

這段改編自 2010 年 3 月 20 日的對話。

(安:愚蠢的人,有沒有機會變成不愚蠢的人?)

這個問題很空泛,因為你沒有指明「哪」一個愚蠢人士。我只能說,有些愚蠢人士可以進化成聰明人士,有些不可以。

比喻說,如果你問,不漂亮的人,有沒有機會變成漂亮的人呢?我會答,有時可以,有時不可以。例如,如果一個人不漂亮的主因是髮型不好,他只要改善髮型,方可變成漂亮的人。又例如,如果一個人不漂亮的主因是心腸惡毒,導致面目可憎,他的樣子大概不可救藥。

(安:那樣,即是愚蠢的人當中,有一部分你無論多麼用心教導,也不會變成賢智的人。那怎麼辦?)

愚蠢人士當中,有機會變成賢智人士的,我簡稱為「向智人士」;而沒有機會的,我則簡稱為「不智人士」。面對「不智人士」,很多時也沒有所謂「怎麼辦」。「面對」「不智人士」的最佳方法是,令到自己毋須面對他們。例如,如果你是一間公司的老闆或者高層管理人員,你的其中一個責任,就是避免聘請到「不智人士」。

— Me@2012.07.10 

2012.07.10 Tuesday (c) All rights reserved by ACHK