Hi, also mir war heut im untterricht mal wieder langweilig und da hab ich mir gedacht ich schreib doch mal nen bruteforcer.
die idee des systems steckt eigentlich in der Funktionstabelle.
der algorithmus rechnet die werte der "eingänge" für die jeweilige zeile aus und somit kriegt man ganz schnell die zeilen die man will auch ohne die vorherigen zu wissen ^^
könnt ihr euch ja mal angucken und vll. die geschwindigkeit mit anderem vergleichen da ich dazu z.B. nicht gekommen bin. aber auf jeden fall kriegt das jede mögliche kombination aus den gegebenen daten raus.
außerdem könnt ihr nach belangen zeilen auslassen oder einfach in ner versetzen zeile starten
ich bin nicht verantwortlich wenn ihr mit scheiße baut ^^
( PS: damit kann man super die binären funktionstabellen eingänge malen xD )
win. compilliert.
die idee des systems steckt eigentlich in der Funktionstabelle.
der algorithmus rechnet die werte der "eingänge" für die jeweilige zeile aus und somit kriegt man ganz schnell die zeilen die man will auch ohne die vorherigen zu wissen ^^
könnt ihr euch ja mal angucken und vll. die geschwindigkeit mit anderem vergleichen da ich dazu z.B. nicht gekommen bin. aber auf jeden fall kriegt das jede mögliche kombination aus den gegebenen daten raus.
außerdem könnt ihr nach belangen zeilen auslassen oder einfach in ner versetzen zeile starten
ich bin nicht verantwortlich wenn ihr mit scheiße baut ^^
( PS: damit kann man super die binären funktionstabellen eingänge malen xD )
Code:
//---------------------------------------------------------------------------
#pragma hdrstop
#include <math.h>
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
unsigned long Zeile;
//char Zeichen [] = { '0', '1' };
char Zeichen[26*2+10];
for ( char i = 'a'; i <= 'z'; i ++ ){
Zeichen[i-97] = i;
}
for ( char i = 'A'; i <= 'Z'; i ++ ){
Zeichen[i-65+26] = i;
}
for ( char i = '0'; i <= '9'; i ++ ){
Zeichen[i+(2*26)-48] = i;
}
short AnzZeichenB = 2*26+10;// Anzahl Buchstaben
//short AnzZeichenB = 2;
short AnzZeichenW = 3;// Anzahl Zeichen im zu erstellenden String
/*
cout << "Zeile Angeben.\n";
cout << "Maximale Zeile = "<<pow(AnzZeichenB,AnzZeichenW)<<endl;
cin >> Zeile;
cout << endl;
*/
for ( Zeile = 1; Zeile <= powl(AnzZeichenB,AnzZeichenW); Zeile++){
for ( int i = 0; i < AnzZeichenW; i++ ){
if ( Zeile > (powl(AnzZeichenB,AnzZeichenW)))break;// Falls ihr ohne die for schleife außen rum arbeitet das hier drinn lassen!
unsigned long Calc =(((unsigned long)powl( AnzZeichenB, i ))*AnzZeichenB);
unsigned long Temp = Zeile % Calc;
//short Inside = Zeile / Calc;
if ( i == 0 ){//Ist es die erste Spalte?
if ( Temp == 0 )Temp = AnzZeichenB;
cout << Zeichen[Temp-1];
}else{
if ( Temp == 0 ){// Wurde die Zahlenreihe noch nicht Wiederholt?
cout << Zeichen [AnzZeichenB-1];
}else {
cout << Zeichen [((int)ceil(Temp/powl( AnzZeichenB, i )))-1];
}
}
}
cout << endl;
}
cout << "Bitte macht nicht den fehler die geschwindigkeit eines Programmes an der Textausgabe der Konsole zu messen.\n";
system("pause");
return 0;
}
//---------------------------------------------------------------------------
win. compilliert.