ora4 download
dsa
This commit is contained in:
@@ -66,20 +66,20 @@ class Hanoi(Feladat):
|
||||
n = állapot.count('1') #hany darab korong van az egyes rudon | megoldaskor 0
|
||||
return n - állapot.count('2') - 2*állapot.count('3')
|
||||
|
||||
def útköltség(self, c, állapot1, lépés, állapot2):
|
||||
#return super().útköltség(c, állapot1, lépés, állapot2)
|
||||
egy = 2*(állapot1.count('1') - állapot2.count('1'))
|
||||
ketto = 1.5*(állapot2.count('2') - állapot1.count('2'))
|
||||
harom = 0*(állapot2.count('3') - állapot1.count('3'))
|
||||
return c+ egy + ketto + harom
|
||||
#def útköltség(self, c, állapot1, lépés, állapot2):
|
||||
# #return super().útköltség(c, állapot1, lépés, állapot2)
|
||||
# egy = 2*(állapot1.count('1') - állapot2.count('1'))
|
||||
# ketto = 1.5*(állapot2.count('2') - állapot1.count('2'))
|
||||
# harom = 0*(állapot2.count('3') - állapot1.count('3'))
|
||||
# return c+ egy + ketto + harom
|
||||
|
||||
h = Hanoi(5)
|
||||
h = Hanoi(3)
|
||||
print("szelessegi kereses")
|
||||
print(szélességi_fakeresés(h))
|
||||
#print("melysegi kereses")
|
||||
#print(mélységi_fakeresés(h))
|
||||
print("melysegi graf")
|
||||
print(mélységi_gráfkeresés(h))
|
||||
#print("melysegi graf")
|
||||
#print(mélységi_gráfkeresés(h))
|
||||
print("best first")
|
||||
print(best_first(h, h.érték), len(best_first(h, h.érték).út()[::-1])-1)
|
||||
print('a*')
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
#a* vagy valami informalt keresovel
|
||||
|
||||
from keres import *
|
||||
|
||||
class Korso(Feladat): # feladat osztaly a szuroje
|
||||
def __init__(self, kezdo, cél):
|
||||
super().__init__(kezdo, cél)
|
||||
self.korsok=(3,5,8) #korsok meretei
|
||||
|
||||
def célteszt(self, allapot:tuple[int,int,int]) -> bool:
|
||||
if allapot[0] == self.cél or allapot[1] == self.cél or allapot[2] == self.cél:
|
||||
#teljesult a cél allpot
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def rákövetkező(self, allapot: tuple[int,int,int]) -> list[tuple[str, tuple[int,int,int]]]:
|
||||
lepesek = []
|
||||
for i in range(3):
|
||||
for j in range(3):
|
||||
if i != j: #nem toltunk onmagabol onamagaba
|
||||
if allapot[i] > 0 and allapot[j] < self.korsok[j]: #van e folyadek vagy televan a korso:
|
||||
m = min(allapot[i], self.korsok[j]-allapot[j]) #self.korsok[j] max(Hj)-aj
|
||||
tmp_allapot = list(allapot) #ezzel szerkesztheto a tuple
|
||||
tmp_allapot[i] -= m
|
||||
tmp_allapot[j] += m
|
||||
tmp = (f'{i+1}-bol toltok {j+1}-be {m} litert', tuple(tmp_allapot))
|
||||
lepesek.append(tmp) #amit a listaba rakunk
|
||||
return lepesek
|
||||
|
||||
h3 = Korso((2,2,3), 4)
|
||||
|
||||
#print(h3.rákövetkező(h3.kezdő))
|
||||
#print(h3.célteszt((2,5,6)))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user