» Poradna » Programy

Program na generování textových řetězců

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 26/26
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

Zdravím, zajímalo by mě jestli existují programy na generovaní různých textových řetězců na základě zadaného zdroje, tzn. např. chci získat slovo/řetězec o 3 znacích, zadám aby první znak byl A/B/C , 2. D/E, 3.F, to znamená že je 6 možností jak řetězec složit - ADF, AEF,BDF,BEF,CDF a CEF. V malém počtu možností a znaků to není problém, ale jakmile potřebuji vygenerovat slovo o 8 znacích přičemž na každém poli může být x znaků nastává problém, že možností je x na 8 což může být zatraceně velké číslo, proto bych se vás chtěl zeptat zda někdo neví o takovém "generátoru", který vypíše všechny možnosti? Díky

Odpovědi na otázku

 |   |  Microsoft Windows 7 Chrome 24.0.1312.57

Stačí pár znaků a těch možností už je tolik, že je nebudeš mít kam vypisovat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80  |  [89.103.236.---]

nevymyslel takový generátor klapacius s trurlem?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

v podstatě mi jde max. o 10 znakové řetězce s počtem možností mezi 6-8, což není zas až tak příšerné

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

neví někdo o nečem?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 19.0  |  [88.102.242.---]

myslim, ze tak trivialni program neni problem vytvorit

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

:) a asi by se ti nechtělo mi něco takovýho naprogramovat, že?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 24.0.1312.69  |  [212.4.155.---]

Já vím, chystám se něco takovýho si napsat. Jen se k tomu porád nemůžu dostat. Technická, co chceš háčkovat? BF je totiž celkem náročný na výpočetní výkon a jen to, že získáš několik triliard??? řetězců zase není taková výhra.PrasatkoPee

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

nic, jen potřebuju rozšifrovat text o cca 10 znacích, kde je na výběr u každého pole 6-8 písmen jak jsem psal už výše...Př takto nějak to vypadáAE......BD.......CF.........DG......EG.........FF.........atd přičemž musí vyjít srozumitelné slovo

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 24.0.1312.52  |  [212.4.155.---]

Heh, těch slov bude ....PrasatkoPee

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 18.0.1050.0

A to srozumitelné slovo tam budeš hledat jak?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

princip bude v celém textu stejný, takže stačí najít 3-4 první písmena a pak použít algoritmus na ostatní pole v textu... což výjde řádově v stovkách možností, to se určitě dá projít během chvíle, horší je to vypsat

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.97  |  [194.228.66.---]

Jestli dobře počítám, tak variací pro tři písmena jsou řádově tisíce. Pro čtyři desetitisíce, ne?PrasatkoPee

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 19.0  |  [89.176.203.---]

A jakou výhru získává za rozšifrování textu vítěz?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

albi: nic ale teoreticky ho sem můžu dát a třeba někdo příjde na to co s tím i bez BF...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

Text vypadá takto:QUITEGNOITAPOTITLSURBEMIOOAMCONDITAMVMETAROISIURIEAMLEGIBUSQUETCMOEIBUSDEISTEGROCONDEREPRRATAUISUSCUMINTERRELLAADSUESCEREVIDEREBNONPOSSEQUIPPEEFFERAEIMILVTIAANTMOSMITNGANDUMEEROCEMPOPULAMARAORUMDESUSTUDINERATASIANUMADINFZMUMje to 28 znaků v 8 řádcích, dále je u toho 28 číslic, +6-5+4-3+0+3-1+4+2-2-1+0+4+2-2+1-3+3-1+2-2+3+0-3+4-3+2+0tzn 1 číslo = 1 písmeno v sloupci, zkoušel jsem to rozšifrovat at už zleva do prava i opačně, odshora dolů a odspoda nahoru, ale nic mi nevycházelo, jako nápověda by mělo pomoct, že znaménka jsou důležitá, princip by měl fungovat na principu válců a pístů v motoru,. Tak kdyby někoho něco napadlo byl bych rád, díky .. :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80  |  [77.87.242.---]

Možná je to hloupost, ale nepomohlo by, kdybys to zkusil tady? http://anagrammer.org/

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [188.175.192.---]

anagram mi tady nepomůže, ale díky

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 24.0.1312.57  |  [90.180.5.---]

"možností je x na 8"Počet možností uvádíš správně.V případě, že se jedná o text 10 znaků a na každé pozici může být 6-8 možností, pak celkový počet možností je cca 60 milionů - 1 miliarda.V tom se nedá hledat neznámé slovo, musíš to ještě nějak omezit.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 8 Firefox 19.0

Zkus to udělat v autoitu.Udělal jsem ti příklad pro řetězec o pěti znacích, kdy první a druhý znak má na výběr ze šesti, třetí a čtvrtý ze sedmi a pátý z osmi. Vygenerovaný soubor má necelých 100000 B. Pokud chceš víc znaků, tak to stačí jen upravit, myslím, že je to celkem jasné jak. Pokud ale uděláš kombinaci 10 znaků a vždy s možností z 8. znaků, tak pak ten vygenerovaný soubor bude mít kolem 10 GB a to generovaní nějakou dobu potrvá. Global $z1[6] = ["A","B","C","D","E","F"]Global $z2[6] = ["a","b","c","d","e","f"]Global $z3[7] = ["g","h","i","j","k","l","m"]Global $z4[7] = [".",",","-","/","+","_",";"]Global $z5[8] = ["ě","š","č","ř","ž","ý","á","í"]$file = FileOpen("vystup.txt", 2)For $i = 11111 To 88888 If StringInStr("123456", StringMid($i, 1, 1)) < 1 Then ContinueLoop If StringInStr("123456", StringMid($i, 2, 1)) < 1 Then ContinueLoop If StringInStr("1234567", StringMid($i, 3, 1)) < 1 Then ContinueLoop If StringInStr("1234567", StringMid($i, 4, 1)) < 1 Then ContinueLoop If StringInStr("12345678", StringMid($i, 5, 1)) < 1 Then ContinueLoop FileWriteLine($file, $z1[StringMid($i, 1, 1)-1] & $z2[StringMid($i, 2, 1)-1] & $z3[StringMid($i, 3, 1)-1] & $z4[StringMid($i, 4, 1)-1] & $z5[StringMid($i, 5, 1)-1])NextFileClose($file)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 8 Firefox 19.0

Mínuska mám za co?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.97  |  [90.177.110.---]

Já bych ti třeba dal minus za stupidní radu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 8 Firefox 19.0

Nějak nechápu, dyť je to co chtěl, generátor řetězců.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Firefox 15.0.1

Alebo v hociktorom skriptovacom jazyku, pokiaľ teda uživateľovi nevadí príkazový riadok (+ najlepšie linux, kde je napr. python defaultne...)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Firefox 15.0.1

teda v pythone by to vyzeralo takto:pos1=["a","b"]pos2=["c","d"]pos3=["x","y"]pos4=["1","2","3"]pos5=["A","B"]for kombinacia in [(x,y,z,u,v) for x in pos1 for y in pos2 for z in pos3 for u in pos4 for v in pos5]: print ''.join(kombinacia)Výstup (len začiatok):acx1Aacx1Bacx2Aacx2Bacx3Aacx3Bacy1Aacy1Bacy2Aacy2Bacy3Aacy3Badx1Aadx1Badx2Aadx2Badx3Aadx3B

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Firefox 15.0.1

a ešte ak ide o uloženie do súboru, tak stačí klasicke presmerovanie:tentoskript.py > nejakysubor.txt

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP IE 8.0

Související témata: Generování, Řetězec, Velké číslo



Určitě si přečtěte



Aktuální číslo časopisu Computer

26 procesorů v důkladném testu

Zhodnotili jsme 18 bezdrátových reproduktorů

Jak fungují cash back služby?

Pohlídejte své děti na internetu