hashtable

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von fabste, 14.05.2011.

  1. fabste

    fabste Erfahrener Benutzer

    Dabei seit:
    02.02.2010
    Beiträge:
    583
    Zustimmungen:
    0
    hallo an alle,

    jetzt werden bestimmt einige von euch denken das ich damit etwas böses vorhabe, aber das ist nicht so.
    also zu meinem thema wo ich hilfe brauch.
    kann mir jemand einen tipp geben wie ich mit c++ buchstaben kombis erstellen kann?
    also so:
    a
    b
    c
    ...
    x
    y
    z
    aa
    ab
    ac
    ...
    usw.

    bisher habe ich es geschaft das alphabet aus kleinen buchstaben so zumachen, aber das ist zuviel code.

    grüße
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 xandros, 14.05.2011
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Verwende die Character-Codes der Zeichen. Dann hast du einen begrenzten Raum an Zahlenwerten, den du via Schleifen beliebig miteinander kombinieren kannst (verschachtelte Schleifen).
     
  4. fabste

    fabste Erfahrener Benutzer

    Dabei seit:
    02.02.2010
    Beiträge:
    583
    Zustimmungen:
    0
    also ich hab dsa so gemacht:
    Code:
    char alphabetKLEIN[27]={' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    	
    		for(int aa=0;aa<27;aa++)
    				{
    
    					for(int a=0;a<27;a++)
    				{
    					for(int b=0;b<27;b++)
    				{
    					for(int c=0;c<27;c++)
    				{
    					for(int d=0;d<27;d++)
    				{
    					for(int e=0;e<27;e++)
    				{
    					for(int f=0;f<27;f++)
    				{
    					for(int g=0;g<27;g++)
    				{
    					for(int h=0;h<27;h++)
    				{
    					for(int i=0;i<27;i++)
    				{
    					for(int j=0;j<27;j++)
    				{
    					for(int k=0;k<27;k++)
    				{	
    					for(int l=0;l<27;l++)
    				{	
    					for(int m=0;m<27;m++)
    				{
    					for(int n=0;n<27;n++)
    				{	
    					for(int o=0;o<27;o++)
    				{	
    					for(int p=0;p<27;p++)
    				{	
    					for(int q=0;q<27;q++)
    				{	
    					for(int r=0;r<27;r++)
    				{	
    					for(int s=0;s<27;s++)
    				{	
    					for(int t=0;t<27;t++)
    				{	
    					for(int u=0;u<27;u++)
    				{
    					for(int v=0;v<27;v++)
    				{	
    					for(int w=0;w<27;w++)
    				{	
    					for(int x=0;x<27;x++)
    				{	
    					for(int y=0;y<27;y++)
    				{	
    					for(int z=0;z<27;z++)
    				{
    				
    				cout <<alphabetKLEIN[aa] << alphabetKLEIN[a] << alphabetKLEIN[b] << alphabetKLEIN[c]<< alphabetKLEIN[d] << alphabetKLEIN[e] << alphabetKLEIN[f] << alphabetKLEIN[g] << alphabetKLEIN[h] << alphabetKLEIN[i] << alphabetKLEIN[j] << alphabetKLEIN[k] << alphabetKLEIN[l] << alphabetKLEIN[m] << alphabetKLEIN[n] << alphabetKLEIN[o]  << alphabetKLEIN[p] << alphabetKLEIN[q] << alphabetKLEIN[r] << alphabetKLEIN[s] << alphabetKLEIN[t] << alphabetKLEIN[u] << alphabetKLEIN[v] << alphabetKLEIN[w] << alphabetKLEIN[x] << alphabetKLEIN[y] << alphabetKLEIN[z] <<endl;
    				
    					}}}}}}}}}}}}}}}}}}}}}}}}}}}

    ist halt seeeehr kompliziert...
     
  5. #4 xandros, 14.05.2011
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Du willst also Strings erzeugen, die 27 Zeichen lang sind und von
    "..........................a" bis "zzzzzzzzzzzzzzzzzzzzzzzzzzz"
    gehen?

    (Anstelle der Punkte natuerlich Leerzeichen!)
    Der Code ist nicht kompliziert, sondern unuebersichtlich.
     
  6. #5 fabste, 14.05.2011
    Zuletzt bearbeitet: 14.05.2011
    fabste

    fabste Erfahrener Benutzer

    Dabei seit:
    02.02.2010
    Beiträge:
    583
    Zustimmungen:
    0
    jap genau. aber 27 zeichen sind übertrieben, 10 ziffern reichen auch schon.
     
  7. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  8. #6 Nico, 15.05.2011
    Zuletzt bearbeitet: 15.05.2011
    Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0
    Eigentlich würde sich Rekursion hier sehr anbieten, da die Schritte ja immer gleich sind..

    Kuck dir mal das als Orientierungshilfe an:

    Brute-Force-Algorithmus in C++

    Mit ein bisschen rumprobieren wirds ziemlich einfach.

    Hier mal ein Halb-Pseudocode von mir (ich kann kein C.^^), daher nicht wundern wenn er nicht läuft / veränder ihn bitte noch.

    Code:
    string charset = "abcdefghijklmnopqrstuvwxyz";
    int size = strlen(charset);
    
    void function bruteforce(maxpermutations, position, string) {
        for(i=0;i<size;++i) {
            if(position < maxpermutations - 1) {
                bruteforce(maxpermutations, position+1, string + charset[i]);
            }
            print(string + charset[i]);
         }
    }
    
    #Wenn du das ganze 10mal willst
    bruteforce(10, 0, "");
    
    Wenn ich keinen größeren Denkfehler hab, müssts gehen. ^^
     
  9. #7 fabste, 15.05.2011
    Zuletzt bearbeitet: 15.05.2011
    fabste

    fabste Erfahrener Benutzer

    Dabei seit:
    02.02.2010
    Beiträge:
    583
    Zustimmungen:
    0
    danke niko. werd ich mir mal anschauen.

    hab da auch noch was rumprobiert, s geht auch, halt nur immer nur eine ziffer :( und ich habe keine ahnung wo ich hier ne 2./3./4. schleife einbauen soll...

    Code:
    		char cols[94];
    		for(int i = 0; i < 94; i++ )
    		{
    				cols[i] = 33+i;
    				cout << cols[i] << endl;
    				//cout << "'" << cols[i] << "',";
    		}
    
    EDIT:
    sooo hab jetzt die "lösung", auch wen aus bisher ungeklärten ursache das program ab un an piept und sich dadruch aufhängt, deswegen die for schleife. findet ihr einen fehler?
    Code:
    for(int zaehle=0;zaehle<25500000;zaehle++)
    	{
    		
    
    		long n = zaehle;
    		char zwischenspeicher[255];
    		_itoa(n, zwischenspeicher, 255 );
    		cout << zaehle << " - " <<zwischenspeicher << "\n";
    				
    		//PAUSE SCHLEIFE
    				for(int x=0;x<10000000;)
    				{
    					x++;
    				}
    		
    		//system("ping -n 1 localhost > nul");
    	} 
     
Thema:

hashtable