NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lamač přesmyček

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Petr Nymsa:1.2.2013 16:12

Viz několik příspěvků nahoře

Odpovědět
1.2.2013 16:12
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Luboš Běhounek Satik:1.2.2013 16:55

Aha, random, to se pak nediv :D

Použij buďto rekurzi nebo třeba zásobník.
Přes zásobník:

public struct StackData
    {
        public String prefix;
        public String charsToPermutate;

        public StackData(String prefix, String charsToPermutate)
        {
            this.prefix = prefix;
            this.charsToPermutate = charsToPermutate;
        }
    }
private List<String> GetAllCombinations(String word)
        {
            Stack<StackData> stackRecord = new Stack<StackData>();
            List<String> words = new List<string>();

            stackRecord.Push(new StackData("", word));

            while (stackRecord.Count > 0)
            {
                StackData w = stackRecord.Pop();

                if (w.charsToPermutate.Length == 0) // finalni permutace
                {
                    words.Add(w.prefix);
                    continue;
                }

                for (int i = 0; i < w.charsToPermutate.Length; i++)
                {
                    StackData tmp = new StackData(w.prefix + w.charsToPermutate[i], w.charsToPermutate.Remove(i, 1));
                    stackRecord.Push(tmp);
                }

            }

            return words;
        }
Editováno 1.2.2013 16:56
Odpovědět
1.2.2013 16:55
https://www.facebook.com/peasantsandcastles/
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Petr Nymsa:1.2.2013 19:34

To už vypadá zajímavě ale budu to muset povylepšit nebo nějak předělat, neboť u slova lokomotiav, tedy přesmyčka slova lokomotiva, to dělá asi miliardu kombinací, resp. nedočkáš se výsledku :D.

Edit: Ne, stackoverflow, to se stane :D

Editováno 1.2.2013 19:34
Odpovědět
1.2.2013 19:34
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Luboš Běhounek Satik:1.2.2013 20:07

Stack overflow nastane většinou při příliš hluboké (nebo špatně napsané) rekurzi, protože každé volání funkce (i v rekurzi) na zásobník aplikace přidá nějaké hodnoty (parametry funkce, případně obsahy registrů) a tenhle zásobník je defaultně velký jen 1MB.

Obejít to můžeš právě použitím kolekce Stack, která zásobník simuluje, ale není na zásobníku, takže má přístup k celé paměti.

(Pozor - neplést zásobník aplikace (stack) a zásobník (Stack) jako kolekci .NETu)

Odpovědět
1.2.2013 20:07
https://www.facebook.com/peasantsandcastles/
Avatar
Hartrik
Tvůrce
Avatar
Hartrik:2.2.2013 21:08

Před chvílí jsem nahrál novou verzi.
Změny: gui, přidán anglický slovník (480 000 slov), informace a na velikosti písmen už nezáleží...

 
Odpovědět
2.2.2013 21:08
Avatar
Michal
Neregistrovaný
Avatar
Michal:3.2.2013 13:01

VYhledávač přesmyček online: http://anagrammer.org/

 
Odpovědět
3.2.2013 13:01
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na
Hartrik:3.2.2013 13:33

Tak o tom jsem nevěděl (teda narazil jsem na to, ale myslel jsem si že tam přesmyčky jen tvoří)...
Nicméně můžu navíc nabídnout podporu diakritiky a výpis všech obměn.

 
Odpovědět
3.2.2013 13:33
Avatar
Michal
Neregistrovaný
Avatar
Odpovídá na Hartrik
Michal:6.2.2013 10:13

Napiš mi na mail, diakritiku bychom mohli vyzkoušet i online, jen těch kombinací asi bude podstatně méně.

 
Odpovědět
6.2.2013 10:13
Avatar
Hartrik
Tvůrce
Avatar
Hartrik:8.2.2013 22:05

Změny v nové verzi

  • podpora dlouhých slov
  • lépe čitelný kód
  • značné zmenšení velikosti
 
Odpovědět
8.2.2013 22:05
Avatar
eliška
Neregistrovaný
Avatar
eliška:9.4.2013 19:26

twle nevěděla sem přesmičky ale ten server je nej:O:O:O :D

 
Odpovědět
9.4.2013 19:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 45.