Kombinace znaků   otázka

C#

Dobrý den.

Mám otázku týkající se postupu při řešení problému s kombinací znaků. Chtěl bych vytvořit fci, které v parametru zadám nějaké pole znaků

char[]

a fce by tyto znaky procházela, a tvořila různé kombinace.

Například do funkce vložím A, B, C, a ono mi to vytvoří:

A, B, C, AA, AB, AC, BA, BB, BC, CA, CB, CC, ...

Vím, že všechny kombinace zachytit nemůžu, a ani nechci. Nechci třeba AAAAAAAB. Výsledná kombinace, by měla mít vždy maximálně tolik stejných znaků vedle sebe, jako je délka vstupního pole.

Rád bych se zeptal na postup, jak toto řešit, nápady, ...

Díky ;-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Toto je klasický kombinatorický problém, na který lze nalézt příklady např. na CodeProjectu. Stačí hledat.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Děkuji. Už jsem něco našel... Jen mám ještě jednen dozat. Vy kombinace bych rád někam uložil, abych se na ně později mohl nějak odkázat... Soubor, proměná....

Zatím tam mám List<string> a tu naplnuji. Ale nevím zdali je to ideální, a zda li mi to třeba při větším počtu kombinací nespadne..

Jak bych mohl vyřešit toto?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V tomto případě klidně stačí ukládat do obyčejného textového souboru.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jak se to dá ukládat tak, aby se to ukládalo jakoby průběžně, a né aby se to napřed uložilo do paměti, a potom až do souboru? A jak to číst? Jde o to, pokud si udělám kombinaci více znaků, zabere to velké množství paměti, a s počítačem nikdo nehne.

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Do paměti se to stejně nejdřív uložit musí a dnes je paměti dost a není nutné zbytečně šetřit. Pokud by to byly miliony záznamů, potom bych zvažoval SQL Server Compact.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud stačí textový soubor, pak nejjednodušší je otevřít si StreamWriter a zapisovat do něj vygenerované kombinace průběžně již při generování.

Pokud jde o použití SQL Compact, je třeba ale dát pozor, že tam je nějaká režie, ať už výkonová při ukládání samotných záznamů, tak i prostorová (v souboru nejsou jen "užitečná data", ale spousta dat navíc).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback