[Archiv!] Reine Mathematik, Physik, Chemie usw.: Gehirntrainingsprobleme, die in keiner Weise mit dem Handel zusammenhängen - Seite 509

 
Mischek:

Das werden sie nicht. Die Würmer haben außerdem hervortretende Augen. Und das schreckt ab.

Oh, Mann. Sie sind aus dem Schneider. Ein echter Profi in Sachen Selbstdarstellung.

 

Die Eishockeyspieler wollten nicht loslassen. In der dummen Hoffnung, dass wir gähnen werden, habe ich ein Overkill-Skript geschrieben. Sagt auch "gibt es nicht".

Vielleicht habe ich im Drehbuch gegähnt? Wer möchte, kann sie überprüfen.

// Das Skript wurde korrigiert. Es war ein unkritischer Fehler. Das Ergebnis bleibt das gleiche.

Dateien:
hockey_1.mq5  2 kb
 
MetaDriver:

Die Eishockeyspieler wollten nicht loslassen. In der dummen Hoffnung, dass wir gähnen werden, habe ich ein Overkill-Skript geschrieben. Sagt auch "gibt es nicht".

Vielleicht habe ich im Drehbuch gegähnt? Wer möchte, kann sie überprüfen.

// Das Skript wurde korrigiert. Es war ein unkritischer Fehler. Das Ergebnis bleibt das gleiche.

Ich habe danach das Gleiche getan. Die Antwort ist dieselbe! :)))
 
MaxZ:
Ich habe danach das Gleiche getan. Die Antwort ist dieselbe! :)))
Zeigen Sie mir den Quellcode, wenn es Ihnen nichts ausmacht. Ich interessiere mich für Ihren Algorithmus. Sie können sie mir persönlich zusenden.
 

Der Algorithmus im Kopf. Schreiben ohne nachzudenken (3-5 Minuten). Das Zählen dauert sehr lange! :D

for (int A6 = 1; A6 <= 6; A6++)
for (int A5 = 1; A5 <= 6; A5++)
for (int A4 = 1; A4 <= 6; A4++)
for (int A3 = 1; A3 <= 6; A3++)
for (int A2 = 1; A2 <= 6; A2++)
for (int A1 = 1; A1 <= 6; A1++)
for (int B6 = 1; B6 <= 6; B6++)
for (int B5 = 1; B5 <= 6; B5++)
for (int B4 = 1; B4 <= 6; B4++)
for (int B3 = 1; B3 <= 6; B3++)
for (int B2 = 1; B2 <= 6; B2++)
for (int B1 = 1; B1 <= 6; B1++)
   if (A6 != A5 && A6 != A4 && A6 != A3 && A6 != A2 && A6 != A1
                && A5 != A4 && A5 != A3 && A5 != A2 && A5 != A1
                            && A4 != A3 && A4 != A2 && A4 != A1
                                        && A3 != A2 && A3 != A1
                                                    && A2 != A1
    && B6 != B5 && B6 != B4 && B6 != B3 && B6 != B2 && B6 != B1
                && B5 != B4 && B5 != B3 && B5 != B2 && B5 != B1
                            && B4 != B3 && B4 != B2 && B4 != B1
                                        && B3 != B2 && B3 != B1
                                                    && B2 != B1
    && A6 != B6 && A5 != B5 && A4 != B4
    && A3 != B3 && A2 != B2 && A1 != B1)
   {
      int A = A6*100000+A5*10000+A4*1000+A3*100+A2*10+A1;
      int B = B6*100000+B5*10000+B4*1000+B3*100+B2*10+B1;
      if (MathMod(A, B) == 0)
         Print(A6,A5,A4,A3,A2,A1,"/",B6,B5,B4,B3,B2,B1,"=",A/B);
   }

P.S.: Dann wurde mir klar, dass es möglich wäre, die Iterationen auf B-Arrays viel kleiner zu machen...

 
Verstanden, danke!
 
MaxZ:

Der Algorithmus im Kopf. Schreiben ohne nachzudenken (3-5 Minuten). Das Zählen dauert sehr lange! :D

P.S.: Später wurde mir klar, dass Iterationen über B-Arrays viel weniger sein könnten...

Ich bin neugierig, wie und in welchem Umfang diese Aufzählung optimiert werden könnte.

Hier habe ich ~875 ms auf einem langsamen Rechner. (Sie haben 17516 ms).

Wie drehe ich ihn noch zehnmal schneller hoch?

Ich sehe zwei Möglichkeiten: (1) unnötiges Überschwingen abstellen, (2) Validierung beschleunigen.

Was sind Ihre Ideen?

// Ich lade alle ein, die Lust dazu haben. Das wird für das nächste Problem reichen.

 
MetaDriver:

//Ich lade Freiwillige ein. Das wird gut für die nächste Aufgabe sein.

Was die Aufgabe angeht, so habe ich beim Schreiben des Codes genau dasselbe gedacht! :))) Ich wollte es vorschlagen. Aber verschwunden, da ich ein neues Thema erstellen musste. Wie man Code zu beschleunigen, weiß ich (obwohl, nicht sehr schön wird sich herausstellen). Aber ich will es nicht nur beschleunigen, sondern auch schön machen!


MetaDriver:

Vapchet interessant, wie und in welchem Maße dieses Überschwingen optimiert werden kann.

Meine Maschine ist auch schrecklich... Ich kann einen komplexen Expert Advisor nicht testen, während ein einfacher Advisor lange Zeit ohne Komplikationen optimiert werden kann! :D


MetaDriver:

Hier habe ich es zählt ~875 ms auf einem langsamen Rechner. (Sie haben 17516 ms).

Wie drehe ich ihn noch zehnmal schneller hoch?

Ich sehe zwei Möglichkeiten: (1) unnötiges Überschwingen abstellen, (2) Validierung beschleunigen.

Was sind Ihre Ideen?

Ich denke, wenn Sie den zusätzlichen Overkill weglassen, wird die Ausführungszeit Ihrem Ergebnis nahe kommen (ich habe mir den Unterschied in den Zahlen genau angesehen und dachte "unwahrscheinlich")! Was die Idee angeht, denken Sie weiter.

 

Und beschleunigen Mein Code kann wenn, bestehend aus einer komplexen 36-Eingabe-Prüfbedingung, in 36 ifs mit einer einfachen Bedingung zerlegt werden! :)))

Ich denke, der Code wird erheblich schneller werden, aber um das sicher zu wissen, muss man die Maschinenbefehle verstehen, die das Ergebnis der Kompilierung sind.

Generell hat mich das Thema Leistung immer beunruhigt, genauso wie alles andere.

 
MaxZ: Und ganz allgemein hat mich das Thema Leistung immer genauso beunruhigt wie alles andere.
Ich mag es nicht, continue- und break-Operatoren zu verwenden, aber vielleicht können sie Ihnen helfen, vor allem, wenn Sie 36x verwenden, wenn in mql, kann es nicht funktionieren.