» »

program, ki ti najde vse kombinacije črk oz. številk, ki mu jih podaš

program, ki ti najde vse kombinacije črk oz. številk, ki mu jih podaš

«
1
2

vilonja ::

Lep pozdrav vsi na tem forumu.
Mene pa zanima, če je možno narediti program, ki ti napiše vse možne kombinacije črk oz. številk ki mu jih podaš.

Npr.
123

In računalnik bi mi jih razvrstil
123
132
213
231
312
321

Samo da bi računalnik lahko naredil to recimo za 10 ali celo več črk oziroma številk.

Hvala za vse odgovore.
  • spremenilo: vilonja ()

s6c-gEL ::

specing ::

seveda je. Hitra implementacija bi bila rekurzija: vzames en element ven iz seznama in klices rekurzijo na preostalih elementih. Ko prides do praznega seznama, izpises izbran seznam in returnas.

hojnikb ::

z pythonom se da tole lepo sprogramirat...
#brezpodpisa

vilonja ::

specing oprosti ampak te prav nič ne razumem

Heavy ::

Seveda lahko, prebereš začetni niz v tabelo in nato narediš permutacije nad njo. Odvisno v katerem jeziku delaš, eni že imajo funkcijo vgrajeno (v c++ je std::next_permutation).

illion ::

Najbrž si mislu permutacije?
kle je online javasckripta, sam pazi, če boš dal velik znakov, bo delal kar nekaj časa:)
http://learn.roguecc.edu/IT/JMiller/Jav...

vilonja ::

recmo tja največ do petnajst črk

kako pa lahko potem izločim tiste, ki niso v slovarju, ali lahko sam v word prekopiram in mi potem prikaže besede, ki so narobe napisano podćrtano

Zgodovina sprememb…

  • spremenilo: vilonja ()

Heavy ::

Če imaš podan seznam veljavnih besed samo loopaj po njemu pa primerjaj če se stringi ujemajo

Randomness ::

vilonja je izjavil:

recmo tja največ do petnajst črk
Good luck >:D

vilonja ::

heavy ampak problem je ker nimam jaz nobenega znanja o programiranju
bi mi lahko prosim pomagal ali vsaj povedal kako to narediti

shadeX ::

Sicer nisi povedal za kaj potrebuješ, ampak bi rekel da obstaja že kar nekaj takih in podobnih programov.

tomaz- ::

kaj, a to bi rad z bruteforce ugotovil geslo gmaila od punce?:))

vilonja ::

nene pac k je beseda premetanka v kaksnih revija in potem samo črke not vstavim in mi premeče vse črke, potem pa to primerjam s slovarjem in dobim besedo besede so pa tja do 10 črk dolge

Heavy ::

Mogoče pride prav, ampak se zablokira pri daljših nizih.

http://users.telenet.be/vdmoortel/dirk/...

Smurf ::

Hitreje bo, ce vzames spisek besed v slovarju in preverjas vsebovanje tvojih crk v teh besedah. Permutiranje vsega je overkill.

epicVoid ::

Ena ideja bi recimo bila takšna da izbereš najprej dolžine nizov v slovarju, ki ustrezajo vhodnemu nizu (če ima vhodni podatek 6 mest potem iščeš v slovarju samo besede z dolžino 6 mest)

s6c-gEL ::

Za take zadeve, crunch + awk, na linux distro .
http://awk.freeshell.org/ComparingTwoFi...

file1 = permutacije, ki jih narediš s crunch , npr za 12 mestno besedo (a-z charset) potrebuje okoli 6 gb prostora.
file2 = slovarji

Zgodovina sprememb…

  • spremenilo: s6c-gEL ()

vilonja ::

sm že probal
dolžina je bila 10 črk ampak potem tega nisem mogel kopirati pa ne vem zakaj

a bi mi lahko povedal kdo za kaksen dober slovar, ki ima možnost omejevanja dolžine besed

kje bi pa dobil file s slovarji

s6c-gEL oprosti ampak jaz sem res nevešč v tem pa te ne razumem dobro

ali je mogoce tudi kaksen vodic na youtubu

Zgodovina sprememb…

  • spremenilo: vilonja ()

Randomness ::

Yacked2 ::

Vse tiste črke, ki jih lahko uporabiš shrani v tabelo, nato po pojdi čez slovar in tam kjer se število znakov v besedi ujema z številom elementov v tabeli, preveri ali so v besedi vse te črke, če so potem besedo izpišeš/shraniš v drugo tabelo, drugače funkcija vrne false in gremo na naslednjo. Zagovovo boljša ideja kot generiranje vseh.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Spura ::

Isuse, zakaj noben tle ne ni navedel cisto preproste optimizacije, ce isces anagrame slovarskih besed, in sicer, da preprosto za vsako besedo v slovarju posortiras crke in to uporabis kot kljuc? Potem se te kljuce posortiras in zapises v fajl. Oziroma verjetno z lahkoto cel slovar zbases v RAM. Recimo hashmap String - > List[String], z entryi tipa:
"ajnov" -> ["vojna", "javno"]


Pol za vsako besedo lahko izracunas kljuc (posortiras crke), in iz hashmapa prakticno takoj dobis vse slovarske besede, ki so anagrami iz teh crk.

Tak hashmap lahko dumpnes v fajl in pol loadas iz fajla da ga ne racunas vsakic znova.

Zgodovina sprememb…

  • spremenil: Spura ()

vilonja ::

spura pa je to težko narediti

bluefish ::

Jah, če ne poznaš niti enega programskega jezika, potem najbrž je.

vilonja ::

a bi mi kdo bil mogoče pripravljen to bolj podrobno razložiti ali pomagati

res bil bi zelo hvaležen ali pa če bi mi vsaj pomagali najti kakšen youtube vodič
pa še to me zanima ali je potrebno veliko časa da napišeš to kodo

Zgodovina sprememb…

  • spremenilo: vilonja ()

illion ::

kle mas http://wikisend.com/download/293446/bes... odpri index.html z browserjem (ff/chrome, IE ne vem ce dela..)

edit: seznam slo besed je tu: http://bos.zrc-sazu.si/sbsj.html

Zgodovina sprememb…

  • spremenil: illion ()

M.B. ::

Glede na to, da se stvari ne ponavljajo iščeš Permutacije. Število permutacij n elementov je n!. Kar pomeni za 10 števil je 3628800 različnih permutacij.
V pythonu je to to (predvideva se, da se vhodni znaki ne ponavljajo):
from itertools import permutations
vhod=[1,2,3]
for permutation in permutations(vhod):
    print permutation

Več na strani s Pomočjo
Everyone started out as a newbie.
Sadly only a handful ever progress past that point.

7982884e ::

vilonja je izjavil:

spura pa je to težko narediti

no ja, tole maš v 10 min


List<String> besede = new List<String>();
Dictionary<String, List<String>> slovar = new Dictionary<String, List<String>>();

String getKey(String word) {
		char[] chars = word.ToCharArray();
		Array.Sort<char>(chars);
		return new String(chars);
}

besede.Add("ena");
besede.Add("dva");
besede.Add("vojna");
besede.Add("javno");

for (int i=0; i<besede.Count; i++) {
	String kljuc = getKey(besede[i]);
	if (!slovar.ContainsKey(kljuc)) {
		slovar.Add(kljuc, new List<String>());
		slovar[kljuc].Add(besede[i]);
	} else {
		slovar[kljuc].Add(besede[i]);
	}
}

Console.Writeline("Slovar: ");
foreach( KeyValuePair<string, List<String>> kvp in slovar ){
	Console.Writeline("kljuc: "kvp.Key+": ");
	List<String> val = kvp.Value;
	for (int i=0; i<val.Count; i++) Console.Writeline("vrednost: "+val[i]);
}

Console.Writeline("----------");
String kombinacija = "vnoaj";
List<String> ustrezajoce = new List<String>();
bool najdeno = slovar.TryGetValue(getKey(kombinacija), out ustrezajoce);
if (najdeno) for (int i=0; i<ustrezajoce.Count; i++) Console.Writeline("Ustrezajoca beseda: "+ustrezajoce[i]);


Zgodovina sprememb…

  • spremenilo: 7982884e ()

vorantz ::

Clovek sploh ne ve kaj je p od programiranja vi pa mu dajete kodo...
najbrz pricakuje, da nekdo tle nrdi za njega zadevo da bo samo dvokliknu in bo lahko mlel

def0r ::

Mene bolj zanima v kaksni obliki rabi sploh.. je to za kaksno domaco nalogo?

vilonja ::

ne to imam zase, da bi mi pa kdo to naredil bi bilo pa res super, drugače bom pa mogel sam malo pobrskati ampak če bi mi kdo to naredil bi bil pa zelo vesel

urosz ::

ampak ti noben ne bo tega naredil, ker to stane.

s6c-gEL ::

def0r je izjavil:

Mene bolj zanima v kaksni obliki rabi sploh.. je to za kaksno domaco nalogo?

Na Tv3/golica imajo take premetanke...


Kako lahko reši svoj problem sem mu že napisal v temi, vendar je očitno nepismen in nesposoben, da me nadleguje še preko zs.

btw, slovar brez šumnikov imaš http://tinyurl.com/kxp78ca
je bil dostopen na:
http://360percents.com/wordlist/
(delo ST uporabnika)

Zgodovina sprememb…

  • spremenilo: s6c-gEL ()

vilonja ::

Kaj pa ta koda ki jo je zgoraj napisal 79828844e

SubjectX ::

To je Java koda, ki jo moras skompajlati.

Ne vem zakaj ti userji lepijo kodo, ce je ocitno, da si programersko nepismen.

Predvidevam, da ti potrebujes program, kamor bos samo vpisal zaporedje znakov in on ti ven pljune (na zaslon? v datoteko?) vse permutacije in ti jih nato se primerja z besedami v sskj, da se ujemajo, kajne?

BTW: jaz bi to raje resil z Trie implementacijo celotnega slovarja, ki ga je s6c-gel prlepu..

vilonja ::

ja tako je subjectx ali obstaja kje kakšen vodič kjer bi se to lahko naučil ali naj vzamem knjigo za java program in jo se sam začnem učiti

s6c-gEL ::

vilonja ::

Kje naj si pa program downloadam

7982884e ::

vilonja je izjavil:

Kaj pa ta koda ki jo je zgoraj napisal 79828844e

ker je mi je glih dalo
https://www.dropbox.com/s/m1sbyxjosloc9...
podat mu moraš datoteko kjer je v vsaki vrstici veljavna beseda

vilonja ::

A to java programu

torej vsako vrstico posebej kopiram v java program

Zgodovina sprememb…

  • spremenilo: vilonja ()

7982884e ::

to je zip, ki ga razpakiraš in dobiš .exe, ki ga zaženeš z dvoklikom
v aplikaciji maš vnosno polje kjer moreš vnest pot do datoteke z besedami

7982884e ::

edit: en bug je melo tisto
https://www.dropbox.com/s/m1sbyxjosloc9...
tle ni več

vilonja ::

ko vnesem pot do datoteke z bededami mi napiše da datoteka z besedami ni najdena

7982884e ::

pot more zgledat tko
c:\\datoteka.txt
al pa jo daš v isto mapo kot je program pa lahko napišeš samo datoteka.txt

s6c-gEL ::

7982884e
Spremeni da oba input boxa pobrišeta prej napisan tekst ("iskana kombinacija" ter "pot do datoteke z besedami"), ko notri vpišeš besedilo.

Zgodovina sprememb…

  • spremenilo: s6c-gEL ()

vilonja ::

C:\Users\MARJAN\Downloads\Iskalnik
v tej mapi imam datoteko in pravtako to vnesem tudi v okvit pot do datoteke z besedami in mi napiše da datoteka ni najdena ko kliknem naloži
v datoteki z besedami je vsaka beseda napisan v svoji vrstici

aja pa še vsakič preden vnesem pot do datoteke pobrišem polje

Zgodovina sprememb…

  • spremenilo: vilonja ()

7982884e ::

7982884e
Spremeni da oba input boxa pobrišeta prej napisan tekst ("iskana kombinacija" ter "pot do datoteke z besedami"), ko notri vpišeš besedilo.
meh, ne da se mi zdej več tisto spreminjat, bo že

C:\Users\MARJAN\Downloads\Iskalnik
v tej mapi imam datoteko in pravtako to vnesem tudi v okvit pot do datoteke z besedami in mi napiše da datoteka ni najdena ko kliknem naloži
v datoteki z besedami je vsaka beseda napisan v svoji vrstici

aja pa še vsakič preden vnesem pot do datoteke pobrišem polje
kako zgleda to kar ti not napišeš?
če imaš datoteko ImeDatoteke.txt, moreš napisat
C:\Users\MARJAN\Downloads\ImeDatoteke.txt ali pa samo ImeDatoteke.txt pa bi moglo delat

vilonja ::

v oknu pot do datoteke z besedami pobrišem vse črke, tako da je okno prosto, nato vnesem tole C:\Users\MARJAN\Downloads\Iskalnik\datoteka.txt in kliknem naloži. Nato mi zgoraj napiše datoteka ni najdena.

amacar ::

Napiši samo datoteka.txt, datokeko pa daj v isto mapo kot imaš iskalnik.exe, pa dela.

vilonja ::

ne ne dela mi, še vedno mi napiše datoteka ni najdena
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python permutacije slo. besed

Oddelek: Programiranje
152069 (1515) epsilon
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317163 (7911) black ice
»

[C#] Domača naloga - osnove

Oddelek: Programiranje
372344 (1561) 11tomi12
»

mysql, permutacije in besede v slovarju

Oddelek: Programiranje
151676 (1366) Hayabusa
»

[Java] Frekvenca besed

Oddelek: Programiranje
71225 (1079) zila90

Več podobnih tem