python-穷挙アルゴリズム
10487 ワード
窮挙アルゴリズム
アルファベットは0~9の10の数字の1つを表し、繰り返しません.
wwwdot - google = dotcom
式のトップは0にできません.
各アルファベットが表す数字を求め、この式に合致します.
W - 1-9
G - 1-9
D - 1-9
O - 0-9
T - 0-9
L - 0-9
E - 0-9
C - 0-9
M - 0-9
貧乏以上.Forサイクル.時間がかかりすぎて、1時間15分あります.
ソース:
アルファベットは0~9の10の数字の1つを表し、繰り返しません.
wwwdot - google = dotcom
式のトップは0にできません.
各アルファベットが表す数字を求め、この式に合致します.
W - 1-9
G - 1-9
D - 1-9
O - 0-9
T - 0-9
L - 0-9
E - 0-9
C - 0-9
M - 0-9
貧乏以上.Forサイクル.時間がかかりすぎて、1時間15分あります.
ソース:
# encoding=utf-8
import os
import time
from datetime import datetime
class data_struct():
def __init__(self, letter, status):
self.letter = letter
self.status = status # True , , False
if self.status == False:
self.digit = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 0-9
else:
self.digit = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 0-9
def norepeat(list0):
length = len(list0)
list1 = [0 for i in range(0,10,1)] # 0-9
for i in range(0,length,1):
list1[list0[i]] += 1
if int(list1[list0[i]]) > 1:
return False
return True
if __name__ == '__main__':
'''wwwdot - google = dotcom'''
letterW = data_struct('W', True)
letterG = data_struct('G', True)
letterD = data_struct('D', True)
letterO = data_struct('O', False)
letterT = data_struct('T', False)
letterL = data_struct('L', False)
letterE = data_struct('E', False)
letterC = data_struct('C', False)
letterM = data_struct('M', False)
# list0 = [1,2,3,4,5,6,0,8,9]
# if True == norepeat(list0):
# print 'hello'
str1 = ''
str2 = ''
str3 = ''
begintime = datetime.now()
for w in letterW.digit:
for g in letterG.digit:
for d in letterD.digit:
for o in letterO.digit:
for t in letterT.digit:
for l in letterL.digit:
for e in letterE.digit:
for c in letterC.digit:
for m in letterM.digit:
list0 = [w, g, d, o, t, l ,e, c, m]
if True == norepeat(list0):
str1 = str(w)*3 + str(d) + str(o) + str(t)
str2 = str(g) + str(o)*2 + str(g) + str(l) + str(e)
str3 = str(d) + str(o) + str(t) + str(c) + str(o) + str(m)
if int(str1) - int(str2) == int(str3): # wwwdot - google = dotcom
print str1, str2, str3
endtime = datetime.now()
deltatime = endtime - begintime
print ' : ' , deltatime
'''
wwwdot - google = dotcom
777589 188103 589486
777589 188106 589483
: 1:15:39.682000
'''