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/cn.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灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP