ora4 download

dsa
This commit is contained in:
2025-03-16 18:27:00 +01:00
parent 9a403fbebb
commit a09b1f05e4
10 changed files with 282 additions and 67 deletions

View File

@@ -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*')

View File

View File

@@ -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)))