def byggut(ord): """ Rekursiv djupetförst""" global rekord if len(ord) > len(rekord): rekord = ord for tkn in alfabet: if svenska.exists(ord+tkn): byggut(ord+tkn) from bintree import Bintree alfabet="abcdefghijklmnopqrstuvwxyzåäö" rekord="" svenska=Bintree() svenskfil = open("words.txt") for rad in svenskfil.readlines(): svenska.put(rad.strip()) #Ta bort returtecknet byggut("") print "Längsta strykord: ", rekord |
from queue import Queue q = Queue() def makesons(tal): if tal==100: ' print "Hundra!" q.put(tal+7) q.put(tal-7) q.put(tal*7) if(tal%7==0): q.put(tal/7) q.put(0) while not q.isempty(): makesons(q.get()) |
from queue import Queue def makesons(tal): if tal==100: print "Hundra!" return True q.put(tal+7) q.put(tal-7) q.put(tal*7) if(tal%7==0): q.put(tal/7) return False q = Queue() q.put(0) funnen = False while not q.isEmpty() and not funnen: funnen = makesons(q.get()) |
from queue import Queue class Klar(Exception): pass def makesons(tal): if tal==100: print "Hundra!" raise Klar q.put(tal+7) q.put(tal-7) q.put(tal*7) if(tal%7==0): q.put(tal/7) q = Queue() q.put(0) try: while not q.isEmpty(): makesons(q.get()) except Klar: print "Lösning funnen." |
from queue import Queue from sys import exit class Node: def __init__(self, tal = 0, op = "", far = None): self.tal = tal self.op = op self.far = far def insert(tal, op, far): nod=Node(tal, op, far) q.put(nod) def makesons(far): tal = far.tal if tal == 100: writechain(far) exit() insert(tal+7, "+", far) insert(tal-7, "-", far) insert(tal*7, "*", far) if(tal%7==0): insert(tal/7, "/", far) def writechain(p): if p != None: writechain(p.far) if p.far != None: print p.op, "7 =", p.tal else: print p.tal q=Queue() q.put(Node()) while not q.isEmpty(): makesons(q.get()) |
0 + 7 = 7 + 7 = 14 * 7 = 98 * 7 = 686 + 7 = 693 + 7 = 700 / 7 = 100 |
Fråga: Kan man snabba upp programmet ytterligare genom att slopa dumbarn? Hur många gånger kommer 0 att läggas in i kön?
hj E sp D kl Kn ru K kl K ru Kn hj D sp E ru D kl E sp K hj Kn sp Kn hj K ru E kl DDu behöver inte skriva programkod, men du ska förklara algoritmen utförligt och beskriva datastrukturer, metoder och klasser.