Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

java of c tooltje om combinaties wer te geven

Jakobvk
7 antwoorden
  • Hallo,

    Ik ben bezig om een simpel tooltje te maken welke het aantal combinaties van een opgegeven string kan weergeven.
    Nu heb ik enige java kennis en een beetje c ervaring, maar ik kom er niet uit ….

    Het moet volgens mij in c super simpel zijn, dan kan ik m.b.v. stdin en stdout erg makkelijk onder linux de input tot output verwerken.
    In java moet het ook mogelijk zijn, maar ik kom er dus niet uit.

    Het is de bedoeling dat ik een string van een aantal karakters opgeef (variabel) en deze vervolgens verwerk en alle mogelijke combinaties van de afzonerlijke karakters toon.

    Bij input van de string "hoi" zou de output moeten worden :
    hoi
    hio
    iho
    ioh
    oih
    ohi

    Is hier een simpele benadering voor binnen Java (of c) ?
  • ik weet niet echt een benadering…
    maar een mogelijkheid van hoe je dit kan doen is (volgens mij)
    Alle permutaties van 1 tot de lengte van het woord
    (dus bij "HOI" alle permutaties van 1 2 3)
    en dan gewoon met arrays werken, je string (of char) als array aanspreken.(ik weet dat dit in C++ werkt maar niet of dit ook in C werkt) dus gewoon
    String[n-de letter van het input woord]

    je hebt dan alle mogelijke permutaties, (hier zijn dat dus 123 132 213 231 312 321)en dan moet je gewoon
    string[1-1] string[2-1] string[3-1]
    string[1-1] string[3-1] ….

    ik hoop dat mijn uitleg een beetje constructief is…

    ik kan het zelf niet zo goed programmeren omdat mijn kennis van C++ niet zo heel denderend is… (in scheme zou dit makkelijker gaan)
  • Tja, ik ken geen c++ en een heel klein beetje c.
    Java heb ik wel iets meer ervaring in.

    De door jou voorgestelde benadering komt aardig overeen met wat ik in gedachten had, maar het probleem is dat ik niet zou weten hoe je het moet uitwerken.
    Je moet een soort van dynamisch algoritme bedenken welke de combinaties (of variaties mag ook) bepaald zonder dat er fouten insluipen.
    Dit laatste maakt het zo moeilijk voor mij, want het is niet statisch op te lossen met een if / else structuur zeg maar …. eigelijk had ik gehoopt op misschien een methode / api binnen java (of c) welke hier uitkomst kan bieden…

    Dit gaat me nog wel even wat tijd kosten dus vrees ik :lol:
  • je zou het kunnen oplossen met een recursief algoritme maar dit gaat in C of C++ relatief veel geheugen innemen.

    ik zal eventjes proberen om zo een programma'tje te schrijven. maar ik kan er niet te veel tijd in stoppen aangezien de examens voor de deur staan ed

    misschien tot later met de juiste oplossing voor je probleem


    (zou het kwaad kunnen moest het in C++ zijn?)
  • Tja, het makt mij op zich niet uit in welke taal het wordt gemaakt.
    Het is namelijk puur voor mijzelf om bepaalde zaken te verduidelijken ….
    Zelf heb ik enige ervaring in java en delphi / pascal.
    Ook c heb ik wel op mijn computer staan en dat kan ik ook wel enigszinds volgen.
    Het moet vrij simpel zijn op te lossen, maar ik kan me niet bedenken op welke wijze dat dan zou zijn :(

    suc6 met je examens ! ….. wat gaat de tijd toch snel :lol:
  • in Haskell is dit heel gemakkelijk:

    [code:1:aa83d37d08]
    perms [] = [[]]
    perms (x:xs) = concat (map (tussen x) (perms xs))
    where tussen e [] = [[e]]
    tussen e (y:ys) = (e:y:ys) : map (y:) (tussen e ys)
    [/code:1:aa83d37d08](heb ik niet zelf bedacht)

    de gegeven string wordt gezien als een lijst, en er wordt een lijst (=array) met alle permutaties van die string opgeleverd

    edit: Haskell compiler is te vinden op http://www.haskell.org/ghc/


    over hoe dit in Java kan zal ik ff gaan nadenken
  • How to iterate through all permutations of a set?

    Er zijn (n!)! mogelijke oplossingen voor je probleem 8)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.