Kezdőoldal » Számítástechnika » Programozás » Részletesen leírná valaki...

Részletesen leírná valaki hogy a következő backtrack pszeudókódban az egyes sorok mit csinálnak? Mondjuk a 8 királynő problémára lefordítva.

Figyelt kérdés

Itt az algoritmus :

[link]


2011. dec. 27. 12:16
 1/5 anonim ***** válasza:
Itt részletesen le van írva: [link]
2011. dec. 27. 16:57
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Ugyanezt a diasort nézegetem és nem értem meg belőle. De azért köszi.
2011. dec. 27. 18:45
 3/5 anonim ***** válasza:

Első válaszoló vagyok.

A lényegét kell megérteni, vizsgán sem azt kérik hogy az előadás vázlattal minél több százalékban pontosan megegyezzen amit vizsgára írsz , hanem hogy helyes legyen.

Az életbe is a lényegét kell megérteni a backtrack-nek. Számtalan helyes pszeudó kódot lehetne írni konkrétan a 8 királynő-re, meg általánosan is a visszalépéses keresésre.


Most ugyan azt tudnám leírni ami ott van, ha pontosan a kérdésre válaszolnék. E helyett leírom a saját szavaimmal hogy működik a backtrack a 8 királynőre, most elvonatkoztatva kicsit az óravázalttól, az alapelv tulajdonképpen ugyan az. Itt ott pongyolán fogok fogalmazni azért mert az a tapasztalatom hogy így könnyebb így megérteni, mintha végig precízen/ formálisan írnám.

Vegyük a 8 királynő problémáját ahol a cél egy sakktáblán van 8 királynőt úgy elhelyezni hogy (a sakk szabályainak megfelelően) egyik sem üti a másikat.

Első megközelítésbe van egy nagyon nagy problématerünk, de ezt lehet csökkenteni pl egy sorba csak egy bábú lehet ezért elég csak 8 számot tárolni ami az egyes sorokra vonatkozik hogy hol van a bábú az adott sorba.Továbbá megállapíthatjuk hogy föntről le haladva a táblán már a 2. sor nem stimmel akkor kár a további sorokba próbálkozni előbb az 1. és 2. sornak kell stimmelni aztán jöhet a 3. sor és így tovább. Vagyis az n-edik sorba lévő bábút csak akkor rakjuk le ha a szabálynak megfelel az 1. sortól az n-1-ik sorig. Elő fordulhat hogy nem rakhatunk sehova az n-edik sorba de az n-1-ik sorba még a szabálynak megfelel, akkor vegyük a következő megoldást az n-1 sorra és most próbáljuk meg az n-ik sorba rakni.

Az n-1-ik sorig sem közvetlenül oldjuk meg hanem ugyan így. Vissza vezetjük a problémát n-2 sorra, ezt n-3 sorra egészen addig vezetjük vissza egyre kisebb részproblémáig amíg közvetlenül meg tudjuk oldani, vagyis visszavertjük egészen addig amíg csak 1 sor van vagyis a táblának vesszük a 8x1-es részét, itt bárhogy is rakunk 1-et az jó lesz. Majd vesszük a 8x2-es részét stb ahogy már leírtam.


Nem kell mereven ragaszkodni az általánosan felírt pszeudó kódhoz, az alapelvéhez igen.

A 8 királynő pszedó kódja:

probal(i){

--for j= 1 to 8 do

----if eddig_jo(j) then

--------{

-------------tabla[i]:=j;

-------------if i<8 then probal(i+1) else{

---------------kiír(tabla)

---------------{kilépés a programból}

--------------}

--------}

}

A probal(1) függvényhívással kell meghívni, ha elhagyjuk a {kilépés a programból} sort akkor az összes megoldást kiírja. A sok - jel azért van hogy megmaradjon az indentáció. Ha jól tévedek akkor ez jó pszeudo kód, impelentáld a 8 királynőt ez alapján. Impelmentáld a sudokut is teljesen egyedül és több visszalépéses kereséssel megoldható problémát is ezeken kívül! Gondolkozz közbe,lényegébe mást nem is kell tenni! Majd nézd meg a jegyzetet és világos lesz mint a nap! :)

2011. dec. 27. 21:42
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Csak el cseszte az oldal a szép identáció-mat: [link]
2011. dec. 27. 21:44
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
a pastebin-be meret(tabla) van 8 helyett, eredetileg így gondoltam csak átírtam 8-ra, a jegyzettömbbe írtam először ide beillesztettem itt meg átírtam, másodjára meg úgy hagytam véletlen, természetesen nem csak 8x8-as táblára működik, ha 8 helyett meret(tabla) van, ez a 8 királynő problémája általánosítása n királynő problémájára.
2011. dec. 27. 22:03
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!