PageRank



轉移公告

計劃把 http://blog.hoamon.info/ 文章全部轉移至 http://www.hoamon.info/blog/ 這裡,而本 Blogger 站台的文章近 500 篇,我預計在 2014-12-31 前移轉完畢,完成後 http://blog.hoamon.info/ 將只作代轉服務,一律把舊連結如 http://blog.hoamon.info/index.html 轉成 http://www.hoamon.info/blog/index.html ,敬請舊雨新知互相走告。

新文章只發佈在 http://www.hoamon.info/blog/

何岳峰 敬上

2008年5月24日 星期六

我的第二張運動彩券(五場命中)(誤)

我的第一張運動彩券後,朋友相繼要求我下次購買運彩時,務必告知一下。所以,請注意啦,這次我買的是:

台灣 2008/5/25 賽程
#6001 西雅圖水手+1.5 @ 紐約洋基 -1.5 => 主勝
#6003 洛杉磯天使+1.5 @ 芝加哥白襪 -1.5 => 客勝
#6015 聖路易紅雀+1.5 @ 洛杉磯道奇 -1.5 => 客勝
#6013 波士頓紅襪-1.5 @ 奧客蘭運動家 +1.5 => 主勝
#6009 費城費城人-1.5 @ 休士頓太空人 +1.5 => 客勝

= 後記 =
這一次卻是五場皆中,實在是令人難以相信。只不過獎金算來,這張彩券只值 1189 元,賠率連 8 都不到。最後還是提醒大家,運動比賽的結果是沒有計算公式的,如果有的話,那就不值得花三個小時期待了。下注運彩,快樂就好,別太認真。

= 後後記 =
兌獎時,居然只有 270 元,再仔細地比對賽事結果,才發現『#6009 費城費城人-1.5 @ 休士頓太空人 +1.5 => 客勝』這場我看錯了,所以實際上,我只中了四場。



順便提供一個可以快速計算獎金的 Python 程式:
 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 class Combination:
 4     def __init__(self, list, num):
 5         self.line = []
 6         list = range(len(list))
 7         self.Line(list, len(list), [], len(list) - num)
 8
 9         self.combination = []
10         for l in self.line:
11             l.sort()
12             if l not in self.combination: self.combination.append(l)
13     
14     def Line(self, ori, level, res, limit):
15         if level == limit:
16             self.line.append(res[:])
17             return
18
19         for i in xrange(len(ori)):
20             res.insert(0, ori[i])
21             tmp = ori[:]
22             null = tmp.pop(i)
23             self.Line(tmp, level-1, res, limit)
24             res.pop(0)
25
26 def _product(list):
27     product = 1
28     for l in list: product *= l
29     return product
30
31 if __name__ == '__main__':
32     """ 以下設定適用於 6X42, 5X16, 4X5, 3X1 的情況 """
33     ori = [2, 1.46, 1.6, 1.7, 2.1] #有猜中的賠率
34     dollar = 10 #每注金額
35
36     result = []
37     for i in xrange(3, len(ori)+1):
38         C = Combination(ori, i)
39
40         for j in C.combination:
41             r = []
42             for k in j: r.append(ori[k])
43             result.append(r)
44
45     sum = 0
46     for r in result: sum += int(dollar * _product(r))
47         
48     print '中獎注數: %s' % len(result)
49     print '可領彩金: %s' % sum

2008年5月21日 星期三

很難相信,但還是得接受

在軟體領域,年齡就不是那麼重要了。影片是一場在 Google 的演講,講題是 JQuery ,講者是一位 12 歲的年青人。

2008年5月8日 星期四

我的第一張運動彩券

比賽結果如下:
五場皆墨,證明了我的眼光真是獨到,這機率可是只有 1/32 呢!

2008年5月5日 星期一

Python 不支援 Big5 擴充字(誤)

"""README: 感謝使徒提姆,我居然天真地以為 Python 沒有作到 Localization 。下面第一段文是我在放屁,請見諒! 就把此文當作是 os.popen 的一段小範例吧! """

有 7 個 Big5 擴充字:碁, 銹, 裏, 墻, 恒, 粧, 嫺,無法透過 Python 的 unicode 函式作轉換。所以我只好呼叫外部 iconv 程式來作轉換。

一開始,我選用 os.system 來作轉換,但 os.system 的所得到的回傳值是 subshell 執行程式的狀態,而不是轉換後的 utf8 碼,後來就改用 os.popen 。

程式範例如下:
try:
value = unicode(str(v), 'big5')
except:
value = os.popen('echo "%s"|iconv -f big5 -t utf8 2>&1' % v.replace('`', "'").replace('\n', '')).read().replace('\n', '')
if 'iconv: ' in value: value = unicode(str(v), 'big5', 'ignore')
一開始先嘗試用 unicode 函式轉換,不成功後才使用 os.popen ,並將 stderr 的訊息轉到 stdout 去,如果在得到的回傳值中發現了 iconv: 的字串,則再使用 unicode 函式作『錯誤 ignore 』的轉換。

這樣就能兼顧程式效率及轉換正確率了。
Related Posts Plugin for WordPress, Blogger...