Forum » Programiranje » [JAVA] algoritem za iskanje....{nujno!}
[JAVA] algoritem za iskanje....{nujno!}
gtramt1 ::
ok v javi se mi je pojavil velik problem za eno nalogo....
Imamo številko, med njih pa poljubno postavimo znake +, - in * tako, da je rezultat izračuna enak 0.
Primer: za šesterico 123456 lahko sestavimo 12+3-4-5-6=0 ali 1+2*3+4-5-6=0.
kako bi najlažje razbil to številko na manjše številke in jih zmetal v tabelo...kjer bi se potem naprej zafrkaval!!!
Imamo številko, med njih pa poljubno postavimo znake +, - in * tako, da je rezultat izračuna enak 0.
Primer: za šesterico 123456 lahko sestavimo 12+3-4-5-6=0 ali 1+2*3+4-5-6=0.
kako bi najlažje razbil to številko na manjše številke in jih zmetal v tabelo...kjer bi se potem naprej zafrkaval!!!
Matek ::
for(int i = 0; i < niz.length(); i++) { tabela[i] = niz.charAt(i); }
Kakšno zvezo ima to zveze z algoritmi za iskanje?
Bolje ispasti glup nego iz aviona.
Zgodovina sprememb…
- spremenil: Matek ()
gtramt1 ::
hja dokaj veliko možnih števil je... in fino jih je nekako sistematično posikat... in sem zkor ziher, da obstaja ...!
Music Man ::
Tukaj ti bo šlo za "preprosto" iskanje prave rešitve v grafu (oz. drevesu) vseh možnih rešitev. Najbolj intuitivna varianta je, da delaš kar vse možne kombinacije, potem pa samo poiščeš željeno, vendar to ti bo porabilo ohoho prostora. Boljša varianta je vpeljava hevristike v iskalni algoritem, ki bo usmerjala iskanje v prave veje drevesa, tako da nesmiselnih kombinacij sploh ne boš preverjal. Recimo en preprost primer:
V grafu imaš delno rešitev 1+2+3+4+5 (=15), v tej rešitvi ti manjka le še številka 6, ampak tukaj že veš, da z razpoložljivimi operacijami te enačbe ne boš spravil na vrednost 0, zato sploh ne boš šel preverjati vseh možnih kombinacij, ki se lahko razvijejo iz te rešitve (+6, -6, *6). Z drugimi besedami: odrezal boš eno poddrevo rešitev. Tukaj prihranek sicer ni velik (ker odrežeš samo 3 liste drevesa), vendar če imaš dobro hevristiko in ti uspe odrezati eno poddrevo rešitev blizu korena drevesa, potem pa so prihranki ogromni.
Kako pa boš tako hevristiko implementiral, je pa stvar tvoje domišljije
V grafu imaš delno rešitev 1+2+3+4+5 (=15), v tej rešitvi ti manjka le še številka 6, ampak tukaj že veš, da z razpoložljivimi operacijami te enačbe ne boš spravil na vrednost 0, zato sploh ne boš šel preverjati vseh možnih kombinacij, ki se lahko razvijejo iz te rešitve (+6, -6, *6). Z drugimi besedami: odrezal boš eno poddrevo rešitev. Tukaj prihranek sicer ni velik (ker odrežeš samo 3 liste drevesa), vendar če imaš dobro hevristiko in ti uspe odrezati eno poddrevo rešitev blizu korena drevesa, potem pa so prihranki ogromni.
Kako pa boš tako hevristiko implementiral, je pa stvar tvoje domišljije
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18056 (8804) | black ice |
» | java pomočOddelek: Programiranje | 1969 (1361) | kr?en |
» | [C++] Podatkovne Strukure - KombinacijeOddelek: Programiranje | 1092 (1092) | BigWhale |
» | Klondike (strani: 1 2 )Oddelek: Programiranje | 5915 (5257) | Thomas |
» | Matematično vprašanje v zvezi s lotomOddelek: Programiranje | 2003 (1671) | OwcA |