"Brute-Force" String Code?

Ich sage dir das nur ungern, aber je öfters du pusht desto
geringer wird die wahrscheinlichket das dir jemand hilft...
 
@Badmaster:
Manche Leute haben auch noch was anderes zu tun außer den ganzen Tag fremder Leute Probleme für lau zu lösen... Geld verdienen z.B. oder sich um seine Ausbildung kümmern...
 
schon mal was von debuggen gehört ?
anstatt andere nach problemen zu fragen lieber schritt für schritt das programm durchgehen im notfall lass ich mir echt jede zeit ausgeben.
 
Servus!

Bin schon dran... leider kenn ich mich mit der C Syntax noch nicht so gut aus, deshalb kommt gleich der Algorithmus in Java...
müsstest du eigentlich leicht adaptieren können...

fertig!...*g*


Code:
import java.io.*;

/*
 * Permutation.java
 *
 * Created on 8. April 2003, 20:05
 */

/**
 *
 * @author  Administrator
 */

public class Permutation{
    
    int maxIndex;
    char[] carray;
    String s;
    BufferedReader br;
    int anz = 0;
    
    public Permutation(){
        
    }
    
    public void ausgabe(char[] a) {
            for (int i=0; i<=maxIndex; i++) {
                System.out.print(a[i]);
            }
            System.out.print("\n");
            
        }
    
    
    
    public void doIt(){
        
        br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Gib deinen String ein...:");
        try{
            s = br.readLine();
        }catch(IOException ioe){
            System.out.println(ioe.toString());
        }
        
        maxIndex = s.length()-1;
        carray = s.toCharArray();
        permut(carray, maxIndex);
        
        System.out.println("\nEs sind :" + anz +" Permutationen");
        
    }
    
    public void swap(char[] a, int i, int j) {
        char temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
    
    public void permut(char[] a, int endIndex) {
        if (endIndex==0){
            ausgabe(a);
            anz++;
        }else{
            permut(a, endIndex-1);
            for (int i=0; i<=endIndex-1; i++){
                swap(a, i, endIndex);
                permut(a, endIndex-1);
                swap(a, i, endIndex);
            }
        }
    }
    
    
    
    
    public static void main(String[] args){
        Permutation p = new Permutation();
        p.doIt();
        
        
    }
    
}

Gruss Tom
 
Original geschrieben von Sneaker
schon mal was von debuggen gehört ?
anstatt andere nach problemen zu fragen lieber schritt für schritt das programm durchgehen im notfall lass ich mir echt jede zeit ausgeben.
lol... debuggen? nxi debuggen.. das programm das ich geschrieben habe kann nicht mehr... is nicht gebuggt... *lol*
bigmegathnx @tdar2 :) :) :) :) *codeanschau*

@reima
sorry... ihr habt so getan als ob das keine sache sei und noch dazu so schnell geantwortet... was soll ich denn da denken?:-(
 
ähm... dein algorithmus scheint einen string zu verlangen den er dann in verschiedene reihenfolgen setzt... eigentlich hab ich was anderes gemeint...
 
Servus!

...hmmm von deiner Fragestellung her würd' ich immernoch behaupten, das angegebene Programm löst dein Problem...

hast du denn das obige Beispiel mal ausprobiert?
 
Code:
String myStr;


int lastround = 0;
for(int a=0; a < 8 ; a++) {
  aktuellMax = a * 26;
  if((lastround+a)==aktuellMax)
               myStr = StringToA(myStr);
   lastround = aktuellMax;
}

private String StringToA(String myStr) {
  for(int a =0; a < myStr.length; a++) {
         Char oldChar = myStr.charAt(a);
          myStr.replay(oldChar,'a');
   }
   myStr.append('a');
   return myStr;
}

ungetestet und nur schemahaft programmiert aber zeigt wohl den weg.
 
Badmaster hat gesagt.:
lol... debuggen? nxi debuggen.. das programm das ich geschrieben habe kann nicht mehr... is nicht gebuggt... *lol*
bigmegathnx @tdar2 :) :) :) :) *codeanschau*

Wie soll dein Code nicht zu debuggen sein???? Weißt du überhaupt was das ist???
 
Original geschrieben von HolyFly
Code:
String myStr;


int lastround = 0;
for(int a=0; a < 8 ; a++) {
  aktuellMax = a * 26;
  if((lastround+a)==aktuellMax)
               myStr = StringToA(myStr);
   lastround = aktuellMax;
}

private String StringToA(String myStr) {
  for(int a =0; a < myStr.length; a++) {
         Char oldChar = myStr.charAt(a);
          myStr.replay(oldChar,'a');
   }
   myStr.append('a');
   return myStr;
}


ungetestet und nur schemahaft programmiert aber zeigt wohl den weg.
thnx 4 code
was genau machen myStr.replay und myStr.charAt ?


@ undertaker.. der code kann nicht mehr machen.. ich müsste mehr schleifen hinzufügen damit er alle chars verändern würde was ich aber von anfang an nciht wollte.. deshalb kein debuggen weder vom compiler noch von der funktion...
 
Zurück