Skip to content

Instantly share code, notes, and snippets.

@yetty
Created April 15, 2011 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yetty/922188 to your computer and use it in GitHub Desktop.
Save yetty/922188 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
def Vypis(hod):
print " %i%i%i" % (hod['j'], hod['a'], hod['n'])
print " %i%i%i%i" % (hod['d'], hod['n'], hod['e'], hod['s'])
print " %i%i%i%i" % (hod['n'], hod['e'], hod['v'], hod['i'])
print " %i%i%i" % (hod['z'], hod['d'], hod['a'])
print " %i%i" % (hod['s'], hod['e'])
print " %i%i%i%i" % (hod['j'], hod['e'], hod['d'], hod['e'])
print "%i%i%i%i%i" % (hod['j'], hod['e'], hod['d'], hod['n'], hod['a'])
print "%i%i%i%i%i" % (hod['j'], hod['i'], hod['z'], hod['d'], hod['a'])
print "-----"
print "%i%i%i%i%i" % (hod['z'], hod['n'], hod['o'], hod['v'], hod['a'])
print ""
def jednotky():
jednotky = n + s + i + 2*e + 3*a
prebytekJednotky = jednotky // 10
jednotky = jednotky % 10
if jednotky == a:
return prebytekJednotky
else:
return -1
def desitky(hod):
desitky = hod['a'] + hod['e'] + v + hod['s'] + hod['n'] + 3 * d + hod['prebytek']
prebytekDesitky = desitky // 10
desitky = desitky % 10
if desitky == v:
return prebytekDesitky
else:
return -1
def stovky(hod):
stovky = j + hod['n'] + 2 * hod['e'] + hod['d'] + 2 * z + hod['prebytek']
prebytekStovky = stovky // 10
stovky = stovky % 10
if stovky == o:
return prebytekStovky
else:
return -1
def tisice(hod):
tisice = hod['d'] + hod['n'] + hod['j'] + hod['e'] + hod['i'] + hod['prebytek']
prebytekTisice = tisice // 10
tisice = tisice % 10
desetit = 2 * hod['j'] + prebytekTisice
if tisice == hod['n'] and desetit == hod['z']:
return tisice
else:
return -1
def kontrola(hod):
cislice = [False] * 10
for k in hod:
if k == 'prebytek':
continue
c = hod[k]
if cislice[c] == False:
cislice[c] = True
else:
return False
return True
kombinace = []
for a in range(10):
for e in range(10):
for i in range(10):
for s in range(1, 10):
for n in range(1, 10):
prebytek = jednotky()
if prebytek >= 0:
hodnoty = {
'a' : a,
'e' : e,
'i' : i,
's' : s,
'n' : n,
'prebytek' : prebytek,
}
if kontrola(hodnoty):
kombinace.append(hodnoty)
komDesitky = []
for v in range(10):
for d in range(1, 9):
for kom in kombinace:
prebytek = desitky(kom)
if prebytek >= 0:
nKom = dict(kom)
nKom['v'] = v
nKom['d'] = d
nKom['prebytek'] = prebytek
if kontrola(nKom):
komDesitky.append(nKom)
komStovky = []
for z in range(1, 10):
for o in range(10):
for j in range(1, 5):
for kom in komDesitky:
prebytek = stovky(kom)
if prebytek >= 0:
nKom = dict(kom)
nKom['o'] = o
nKom['z'] = z
nKom['j'] = j
nKom['prebytek'] = prebytek
if tisice(nKom) >= 0:
del nKom['prebytek']
if kontrola(nKom):
Vypis(nKom)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment