Programming 板


LINE

挑戰最快的Python code (跟C比直接投降可以算輸一半嗎?) 在MBPR上輸入1~9都印一趟總共需約5.7秒 ========================================================== import time def benchmark(function, args_set=[None], repeat=1): total_time = 0 clock = time.clock for i in xrange(repeat): ret_set = [] for args in args_set: start = clock() ret = function(*args) total_time += clock() - start ret_set.append(ret) print ret_set print "average time : {t}".format(t=total_time/repeat) def recursive_int(n): free_digits = set(xrange(10)) def recurse_1(): if n == 1: for i in xrange(1, 10): yield i else: for i in xrange(1, 10): free_digits.remove(i) for next_level in recurse(i): yield next_level free_digits.add(i) def recurse(tmp): if n == 11 - len(free_digits): for i in free_digits: yield 10 * tmp + i else: for i in free_digits.copy(): free_digits.remove(i) for next_level in recurse(10 * tmp + i): yield next_level free_digits.add(i) ans = map(None, recurse_1()) print ans return len(ans) if __name__ == "__main__": ALGO_TO_BE_TESTED = [ recursive_int, # add other competitors here ] ARGS_SET = [[n] for n in xrange(1, 10)] REPEAT = 1 for function in ALGO_TO_BE_TESTED: benchmark(function, ARGS_SET, REPEAT) =============================================================== ※ 引述《fourdollars (四元)》之銘言: : 這是我目前找出來 Python 3 上面執行速度最快的方法 : 不過還是比 Perl 的版本要慢一點點,最快的還是 C 大概是 Perl 的十倍快 : #!/usr/bin/env python3 : import sys : power = int(sys.argv[1]) : class Num(object): : def __init__(self, power): : self.upper = 10 ** power : def __iter__(self): : for i in range(1, self.upper): : num = str(i) : if len(set(num)) == len(num): : yield(i) : num = Num(power) : numbers = [str(i) for i in num] : print(', '.join(numbers)) : ※ 引述《mikemagic88 (Mikemagic88)》之銘言: : : 使用者輸入1 印1-9 : : 使用者輸入2 印1-98 (11, 22, 33等重複的不印) : : 使用者輸入3 印1-987 (121, 988, 667等有重複的不印) --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.244.24
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Programming/M.1481194180.A.3F4.html ※ 編輯: SocketAM2 (1.164.244.24), 12/08/2016 18:55:51







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP