Delphi-PRAXiS
Seite 9 von 10   « Erste     789 10      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TBruteForce - Version 0.5a [Update: 28.04.2008] (https://www.delphipraxis.net/52211-tbruteforce-version-0-5a-%5Bupdate-28-04-2008%5D.html)

Diamondback2007 30. Apr 2008 11:50

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Zitat:

Zitat von Meflin
Zitat:

Zitat von Diamondback2007
wenn du allerdings bei einem bestimmten string anfangen kannst zu rechen, ist das aufteilen auf mehrere pcs natürlich schon praktisch fertig.

Kann ich. Das Problem ist eher, dass Rechner A dann auch bei dem string aufhört, bei dem Rechner B weitermacht :mrgreen:

ja und wo is das problem dabei? das ließe sich zur not aber auch noch regeln. du könntest praktisch eine liste übergeben in der in einer bestimmten reihenfolge alle "EndStrings" drin stehen. wenn er mit einem fertig ist nimmt er den nächsten.

Zitat:

Zitat von Meflin
Zitat:

Zitat von Diamondback2007
im DF habe ich grade gestern etwas darüber gelesen... und zwar das wenn du in etwa
Delphi-Quellcode:
str := str + str2;
hast, dass das sehr langsam ist weil erst wieder str eingelesen wird und dann str komplett neu geschrieben wird.

Nunja, in zahlreichen Tests hat sich herausgestellt, dass das so ziemlich die schnellste Variante ist :stupid:
siehe hier und hier ;)

Zitat:

Also wenn ich
Delphi-Quellcode:
AppendStr()
benutze bringt das bei mir etwa 100.000 bis 300.000 Kombinationen pro sekunde mehr. :)
Na das ist ja mal interessant. Denn bei mir ist AppendStr in etwa so implementiert (aus dem Gedächtnis):
Delphi-Quellcode:
function AppendStr(const Source: string; Dest: string): string;
begin
  Result := Dest + Source;
end;
:lol:

ja das habe ich mich auch schon gefragt...
die methode sieht so aus:

Delphi-Quellcode:
proceudre AppendStr(var Source: String; const Dest: String);
begin
  Source := Source + Dest;
end;
Vielleicht liegt es am const, keine ahnung was genau das bewirkt.

gruß

Diamondback2007 28. Mai 2008 21:37

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Na, gibt es hier keine Fortschritte mehr? Das wäre wirklich schade, da die Komponente wirklich viel Pontential hat... :(

gruß

Meflin 2. Jun 2008 09:18

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Zitat:

Zitat von Diamondback2007
Na, gibt es hier keine Fortschritte mehr? Das wäre wirklich schade, da die Komponente wirklich viel Pontential hat... :(

Äh, ja. Danke der Nachfrage :)

Doch, ich werde die Komponente weiterentwickeln - aber ich kann echt keine zeitlichen Versprechen abgeben. Da ich auch vollzeit arbeite, hält sich meine Freizeit auch in Grenzen ;)

xZise 2. Jun 2008 14:19

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Müsste sich Brute-Force nicht sehr einfach aufteilen lassen?
Sagen wir, wir haben 4 Kerne und in ToDo kennst du die möglichken Kombinationen. Wenn wir nun 100 Kombinationen haben, dann könntest du doch die 100 auf 4 aufteilen, so dass jeder 25 Kombinationen erzeugen soll. Und es lässt sich nun relativ einfach berechnen, welcher Thread welche Kombinationen machen soll.

Andere Möglichkeit wäre statt einer dezentralen Liste, eine Liste zu verwenden, wo die verschiedenen Ranges stehen. Also dass Thread 1 die Kombinationen von 0 bis 25 erstellt u.s.w.. Außerdem steht in der Liste wie weit der Thread ist.
So kann ein freigewordener Thread sich aussuchen, wo noch am meisten zu tun ist. Dann werden die verbleibenden Kombinationen in diesem "Pool" halbiert.

MfG
xZise

Meflin 2. Jun 2008 14:28

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Theoretisch ist das ganze kein Problem. Technisch ist es hier auch leicht, einen bestimmten Startwert reinzuladen. Die technische Schwierigkeit besteht tatsächlich darin, dass eine Instanz merkt, wann sie fertig ist.

Der Algo arbeitet mit Überlauf. Bis jetzt heisst das, Überlauf = High(ElementList) der jeweiligen Node (dann wird die höherwertige Node inkrementiert). Das bedeutet auch: wenn der Inkrementzähler jeder Node den Wert High(ElementList) hat, ist der Vorgang beendet.

Bei der Aufteilung trifft das dann nicht mehr zu. Ich muss noch einen zweiten Counter einführen - und da hatte ich bis jetzt noch nicht die Muse, mich reinzudenken ;)

MSSSSM 3. Jun 2008 13:44

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
hö?

also, ich habe AlphaLowerCase genommen, nur er zeigt mir kein aa an?

ist aus dem testbeispiel

mfg


edit: aaaaaaaaaaaaaaaargh

ich weiß schon wo mein fehler liegt: NextValue!

Micha88 12. Aug 2008 23:32

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Leider funktioniert keine der Demo-Links.

Kann jemand eine brauchbare Demo nocheinmal hochladen?

wazup 26. Aug 2008 16:07

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Wäre auch daran Interresiert :!:

Meflin 27. Aug 2008 12:46

Re: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ach Jungens, im Grund müsst ihr doch nur den Code aus dem ersten Beitrag Copy&Pasten ;)

Naja, hier habt ihr eure Demo. Aber: Das ist wirklich nur eine Demo zur Veranschaulichung des Prinzips! Sie ist absolut unperformant :stupid:

TKC 13. Jan 2011 00:48

AW: TBruteForce - Version 0.5a [Update: 28.04.2008]
 
Hallo,
wäre es möglich die Version 0.5a nochmal zu Posten, da die Download Links nicht funktionieren.

Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr.
Seite 9 von 10   « Erste     789 10      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz