5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【JS】スクリプト,バトルロワイヤル39【Perl,Ruby,PHP,Python】

57 :デフォルトの名無しさん:2013/09/17(火) 03:56:18.97
なんか工夫しないとやっぱり遅いな

from itertools import permutations

def solve(problem):
    variables = compile(problem, '<string>', 'eval').co_names
    letters = ''.join(set(''.join(variables)))
    first_letters = [letters.index(y) for y in set(x[0] for x in variables)]
    perms = (''.join(c) for c in permutations('0123456789', len(letters)))
    candidates = (c for c in perms if c.find('0') not in first_letters)
    for candidate in candidates:
        expr = problem.translate(str.maketrans(letters, candidate))
        if eval(expr):
            yield expr

if __name__ == '__main__':
    print(next(solve('send + more == money')))

229 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)