Könnt ihr das entschlüsseln (pgp?

Sieht alles richtig aus oder seht ihr ein Problem ? Könntet ihr das knacken ohne ein jahrzehnt zu brauchen

Die Nachricht ist nur von mir an mich selbst also nichts wichtiges, könnt ihr hier auflösen wenn ihr könnt.


-----BEGIN PGP MESSAGE-----
Version: ObjectivePGP
Comment: https://www.objectivepgp.com
Charset: UTF-8

wcDMA57eO2d2RcdzAQv9EBM/h4LB5H0xNbL9Kgj0/JK9CTuDl+IEhmP1sFPbjncGOk75MHDFrE1G
u77nuuckKAz5ckIJPXbB9TGEUWmdtZLjqMYTwiRCz5JZruEKd7Gv4AMrPhOFWBEwe7HEbewFtIoC
VweHEfNB4MJViL7/CRN1/YU+WLFdB5fPpQ3y3fOOtlcv82sjijEgNGDk+6vFTg4efgOA8wRxBbSQ
bdrcPP5FgO8GH5xGQkfS/UYZ7/LGlm3joCtiZpHGrTc4ByfBzEHqTFYQSlTQHi73Z1QbjkmuQQRR
edRlv9x3ZDlAR86RsbQg/P4hxLEccbyawWiKqro1odJGqcPgs6sO9dFOdWiHw0u8HLktng9yRCH9
wqUg5FcSV3mQcqyX7g2mra6yTS8JixmNZrjYab7mWKTc0cWy3KRvgPfd95Ugqvf2pMaMp5m0iKZi
MpWD4e3z3hjUcVUCjmSDIub/eKetSEBnOknHelJgut90umU3SWalYpBz3FgsctJYpk5YC1VvnvPq
wcDMAw1bJJlG1MKXAQwAjtZLph2ytut+Ewsa85S3Ij2AjrmqO1vlih5+MoX4Xp8UMlME0PYaWIpm
3WjMSvMB0H0O5MDivHMg3jKpPMYv17PO20+bnr/eqc4h7ogEJeG26Pgijb7pubgRCGCsU3qbmrZ7
+LFT2CO7X5y2UGS5QX480J/Lzap6ehRiyIkrmai8rtBqJVq0wFDvmAO6keqhIXiYpinA2+6RlLt6
1H0CJ3kIaeG18cmFNlZ4+AQRYlfp3zfTLNCZhh7ZvtLSZkd+28M6qcNn+I5/IjwbMYaLgZcofA1W
CgiWvHzpNqzIrj4CaIG9k/gWTo0/IldkzETDmLvrZLJgu3OcwAuAwM0A/d0IychADDQbPRLPUE3q
8EnUgTH5OKNhIubZPvy6VT0aalJ0oCyWcFr0uNcWG5OPGw4e2e3U/MhB6bxX8K5IHgWcGadMRKRb
7aIzvWfpcAQQ9F/ByKUIn6sfugKwHsCwifpv65Toc3ss653ncmzD/4PqTzau8qWZoAIESYP2UafU
0sEkAQOAJ5Qn1Ps1ptkUwOxvfi1SnS8BMzx3kxgKfrInn5C2B4/5Ou8PrMnBy5igszRLwkKau4t7
KkoctxCDazbiKeKyEkAXN5lDChGcqNVlCtFi4in39VtBKthce+Xa/Lw7gNHb/EJ6Un6dFwqK9IYp
ZpyaxxleyPANPvkZ+apH1xkKu6PCzghrJOJUdEhAfct8TxzmqmpPnAWsBLrMyLwzZ0uCiN5cTJST
7Vbdbj6A+Nk4+iUJKW7NqgjNb310JyJO6flvkWwtupXpYEmAbTDSzs1aJd3ReAvwm0OqbbxEXvib
uJAD7B+STT4Gy9SJVH/ZcMckrWzPT2QCZVtCZXtVWRiFg5uhWx+cfBfrEoUlVj/wBxACEWonNRNi
xm+3FwrWyAVIJ/X6l8o9k++ScEDbwkWvGYAaV0vVUYxCiRPsKTc3kSYvg3D7r8VfbtP3iZaY44/P
ku53kQsw2mf1DjIdxqg/dCCCGPlNJ+HA/a21MPgbiHEQ8zATBKgT4Whw/JQWkT5ag4wjiDcIpeVE
RgqXaoHQJxUaiU7QRan8O02A4qxErC283E51yAvAv85rJnUb6UkqPCeBr2dB0nusAwl6krSeCsDa
qYcoxs2r9t/bS5ed7ZQYynI04G1628XSI29b1UaOFg==
=s+td
-----END PGP MESSAGE-----
Computer, hacken, Hacker, Informatik, it-security, Kryptographie, PGP, Verschlüsselung, Algorithmus, encryption, Kleopatra
MergeSort mit drei Divideschritten?

Hallo liebe Community,

ich arbeite gerade an einer Aufgabe in der ich den normalen MergeSort Algorithmus abändern soll. Im normalen MergeSort Algorithmus nimmt man ja ein Array und unterteilt das dann in zwei Teilarrays, diese zwei Teilarrays unterteilt man dann ja jeweils wieder in zwei Teilarrays bis man sozusagen nur Arrays mit einer Zahl drin hat.

Ich soll jetzt solch einen MergeSort Algorithmus implementieren aber so, dass das Ausgangsarray immer in drei Teilarrays aufgeteilt wird.

Hier einmal mein Code dazu:

public static void mergeNew(int[] A, int p, int r) {
    int n1 = p + ((r + 1) / 3);
    int n2 = (r + 1) - ((r + 1) - 2 * ((r + 1) / 3)) - (p + ((r + 1) / 3));
    int n3 = (r + 1) - 2 * ((r + 1) / 3);
    int[] L = new int[n1 + 1], M = new int[n2 + 1], R = new int[n3 + 1];
    if ((r + 1) % 3 == 2) {
        n2++;
        n3--;
        M = new int[n2 + 1];
        R = new int[n3 + 1];
    }
    for (int i = 0; i < n1; i++) {
        L[i] = A[p + i];
    }
    System.out.println("L:" + Arrays.toString(L));
    for (int i = 0; i < n2; i++) {
        M[i] = A[n1 + i];
    }
    System.out.println("M: "  + Arrays.toString(M));
    for (int i = 0; i < n3; i++) {
        R[i] = A[n1 + n2 + i];
    }
    System.out.println("R: " + Arrays.toString(R));
    L[n1] = Integer.MAX_VALUE;
    M[n2] = Integer.MAX_VALUE; //Zeile 36
    R[n3] = Integer.MAX_VALUE;
    int i = 0;
    int j = 0;
    int l = 0;
    for (int k = p; k <= r; k++) {
        if (L[i] <= M[j]) {
            if (L[i] <= R[l]) {
                A[k] = L[i];
                i = i + 1;
            } else {
                A[k] = R[l];
                l = l + 1;
            }
        } else {
            if (M[j] <= R[l]) {
                A[k] = M[j];
                j = j + 1;
            } else {
                A[k] = R[l];
                l = l + 1;
            }
        }
    }
}

Ansich denke ich persönlich nicht, dass das Problem bei diesr Methode liegt. Wenn ich dieser Methode z.B. ein Array übergebe was vie folgt aussieht:

{1, 5, 7, 3, 6, 10, 6, 7, 8}. Dann sortiert es dieses Array. Das Array was ich hier genommen habe besteht ja aus sozusagen drei Teilarrays die schon sortiert wurden.

Der Fehler liegt glaube ich eher bei der Rekursion:

public static int[] mergeSortNew(int[] a, int p, int r){
    int q1, q2;
    if (p < r){
        q1 = p + ((r - p) / 3);
        q2 = p + 2 * ((r - p) / 3) + 1; 
        mergeSortNew(a, p, q1);
        mergeSortNew(a, q1 + 1, q2);
        mergeSortNew(a,q2  + 1, r);
        mergeNew(a, p, r);
    }
    return a;
}

Wenn ich nun diese Methode aufrufe mit folgender Zeile:

mergeSortNew(arr1, 0, arr1.length - 1);

Dann kriege ich folgende Fehlermeldung:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0

   at Test.mergeNew(Test.java:36)

   at Test.mergeSortNew(Test.java:70)

   at Test.mergeSortNew(Test.java:68)

   at Test.main(Test.java:6)

Ich habe die Zeile 36 markiert. Vielleicht sieht ja jemand den Fehler

Computer, Schule, Programmieren, Java, Informatik, Algorithmus, Algorithmen und Datenstrukturen
MergeSort Java Implementierung?

Hallo liebe Community,

ich habe probiert MergeSort in Java zu implementieren aber irgendwas stimmt mit meinem Code nicht. Kann mir vielleicht jemand helfen?

public class Test {
    public static void main(String[] args) {
        int[] arr1 = {20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
        System.out.println(Arrays.toString(mergeSort(arr1, 0, arr1.length / 2 - 1, arr1.length - 1)));

    }

    public static int[] mergeSort(int[] A, int p, int q, int r) {
        int n1 = q - p + 1, n2 = r - q;
        int[] L = new int[n1], R = new int[n2];
        for (int i = 0; i < n1; i++) {
            L[i] = A[p + i];
        }
        for (int j = 0; j < n2; j++) {
            R[j] = A[q + 1 + j];
        }
        int i = 0, j = 0;
        for (int k = p; k < r; k++) {
            if (L[i] <= R[j]) { //hier ist Zeile 24 hier tretet der Fehler auf
                A[k] = L[i];
                i = i + 1;
            } else {
                A[k] = R[j];
                j = j + 1;
            }
        }
        return A;
    }

Mein Fehler ist folgender:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10
   at Test.mergeSort(Test.java:24)
   at Test.main(Test.java:7)

Ich verstehe nicht so richtig wie der Fehler entsteht. Ich bin auch alles schonmal durchgegangen. Auch wenn ich die Bedingung in der for-Schleife kleiner lassen werde, also z.B. nur bis r - 2 laufen lasse ändert sich nichts und die Fehlermeldung ist exakt die Selbe. Ich habe schon überlegt ob es an meinen Argumenten p, q und r liegen könnte, aber solange p <= q < r gilt ist ja eigentlich alles gut. p ist der Anfangsindex also 0 und r ist der Endindex also bei einem Array mit 20 Einträgen 19. Also arr.length - 1.

Ich würde mich wirklich freuen wenn mir jemand helfen könnte.

Computer, Schule, Programmieren, Java, Informatik, Algorithmus, Algorithmen und Datenstrukturen
Wie kann man bestmoeglich Daten fuer Liniendiagram aus Mysql Tabelle selektieren?

Ich habe in einer MySQL Tabelle die Daten vom Kontostand drine stehen. Der Kontostand aendert sich alle paar Sekunden weil Trades offen sind und ich speicher zur Zeit alle 15 Sekunden den Kontostand zusammen mit einen Zeitstempel in die Datenbank.

Daraufhin zeichne ich dann ein Diagram mit Linie vom Kontostand, das funktioniert auch alles so wie es soll, aber die Linie sieht bisjen bloed aus nach einiger Zeit, weil ich lade jeweils nur circa 500 Datensatze und mit der Zeit sammeln sich aber nach ein bis zwei Tagen schon einige Tausend Datensaetze fuer das Konto, weil ja alle 15 Sekunden ein neuer datensatz rein kommt.

Damit man den kompletten Verlauf vom Kontostand besser sehen kann mueste man irgendwie aus allen diesen Tausenden von Datensaetzen jetzt in verschiedenen Abstaenden welche importieren.

Ich frage mich jetzt ob man das vielleicht mit MySQL irgendwie direkt machen kann das man sagt ich will von allen Datensaetzen die zu diesem Konto in der Tabelle stehen jeweils die Datensaetze in so und so viel Abstand vom Zeitstempel zurueck bekommen. Also bisjen kompliziert aber vielleicht hat ja jemand von euch eine gute Idee?

Meine MySQL Abfrage sieht zur Zeit so aus:

SELECT * FROM Kontostand WHERE konto='"+req.body.konto+"' ORDER BY lastupdate DESC LIMIT 500

Also damit bekomme ich jetzt einfach nur die letzten 500 Eintraege damit man aber eine Linie zeichnen kann wo auch von Anfang bis Ende der ganze Verlauf gut zu sehen ist mit nicht mehr als 500 Datensaetzen, mueste man das anders machen.

Computer, Webseite, Programmieren, Datenbank, MySQL, Algorithmus
Korrektheitsbeweis Algorithmus?

Hallo liebe Community,

ich habe eine Aufgabe bekommen in welcher ich Pseudocode entwickeln soll. Meinem Algorithmus wird ein Array an Zahlen gegeben A[1, n] mit n Einträgen. Ich soll in diesem Array die Senken zählen. Eine Senke ist dabei eine Position i [2, n - 1] für die folgendes gilt: A[i - 1] > A[i] < A[i + 1].

Meiner Auffasung nach bedeutet das nun, dass z.B. das Array [1, 3, 2, 4, 3, 5] zwei Senken hat. Nämlich einmal der dritte Eintrag und der fünfte Eintrag.

Mein Pseudocode sieht folgendermaßen aus:

Input: A[1, n] mit n Einträgen
Output: Anzahl der Senken

counter := 0
for j := 2 to n - 1 do
  val := A[j]
  if val < A[j - 1] and val > A[j + 1] do
    counter := counter + 1

Mein Java Code dazu sieht folgendermaßen aus:

public static int countSenken(int[] arr) {
  int counter = 0;
  for (int i = 1; i < arr.length - 1; i++) {
    int val = arr[i];
    if (val < arr[i - 1] && val < arr[i + 1]) {
      counter++;
    }
  }
}

Nun soll ich die Korrektheit meines Algorithmus' beweisen. Wir haben das schonmal an dem Beispiel des Insertionsort Algorithmus' gemacht. Die herangehensweise ist ja eigentlich, dass man eine Schleifeninvariante aufstellt und diese dann mittels Induktion beweist. Mein Problem ist jetzt aber, dass ich diese Schleifeninvariante nicht aufstellen kann. Beim Insertionsort, da beweist man ja die Sortiertheit und da verändert sich ja das Array. Aber bei diesem Algorithmus jetzt da verändert sich das Array ja gar nicht.

Ich weiß halt, dass n >= 3 sein muss damit der Algorithmus überhaupt funktioniert. Kann mir vielleicht jemand einen Ansatz geben wie ich die Korrektheit beweise?

Ich wäre euch allen sehr dankbar :)

Computer, Schule, Mathematik, Mathe, Programmieren, Informatik, Algorithmus, Algorithmen und Datenstrukturen
Anzahl von Vergleichen bei Insertionsort?

Hallo liebe Community,

ich beschäftige mich gerade mit dem Insertionsort Algorithmus und habe eine Aufgabe dazu bekommen.

Ich habe folgenden Pseudocode für Insertionsort gegeben bekommen:

Input: A[1, ..., n]
Result: inplace-sorted A
for j = 2 to n do
  val := A[j]
  i := j - 1
  while i > 0 and A[i] > val do
    A[i + 1] := A[i]
    i := i - 1
  A[i + 1] := val

Nun habe ich folgende Eingaben:

  • 
  • 
  • 

Meine Aufgabe ist es nun festzustellen wie viele Vergleiche jeweils bei den Eingaben durchgeführt werden. Dabei gilt, dass n >= 4 eine durch 4 teilbare Zahl ist. Die beiden Vergleiche in der while-Schleife zählen als ein Vergleich.

Ich habe nun einfach drei Testfälle genommen und bin den Algorithmus für jede Eingabe jeweils mit n = 4, n = 8 und n = 12 durchgegangen und kam auf folgende Ergebnisse:

Für die erste Eingabe:

  • n = 4; 10 Vergleiche
  • n = 8; 22 Vergleiche
  • n = 12; 34 Vergleiche

Für die zweite Eingabe:

  • n = 4; 5 Vergleiche
  • n = 8; 11 Vergleiche
  • n = 12; 17 Vergleiche

Für die dritte Eingabe:

  • n = 4; 4 Vergleiche
  • n = 8; 13 Vergleiche
  • n = 12; 26 Vergleiche

Nun habe ich für jede Eingabe einen von n abhängigen Ausdruck aufgestellt um allgemein beschreiben zu können wie viele Vergleiche jeweils durchgeführt werden.

Für die erste Eingabe:



Für die zweite Eingabe:



Für die dritte Eingabe:



Meine Frage ist nun erstmal ob ich diese allgemeinen Ausdrücke richtig habe und ob diese wirklich die Anzahl der Vergleiche für die jeweilige Eingabe beschreiben. Meine zweite Frage ist, ob es einen anderen, mathematischeren Weg gibt um herauszufinden wie viele Vergleiche stattfinden. Weil mein Weg könnte ja auch theoretisch zu falschen Ergebnissen führen (bzw. zu Ungenauigkeiten) da mein Ergebniss ja nur auf jeweils drei Testfällen basiert. Ich würde mich freuen wenn mir jemand vielleich an einem Beispiel zeigen könnte wie ich ohne die Testfälle herausfinden kann wie viele Vergleich stattfinden. Oder habe ich doch alles richtig gemacht?

Ich danke schon im voraus für eure Antworten!

Computer, Schule, Mathematik, Mathe, Programmieren, Informatik, Algorithmus, Algorithmen und Datenstrukturen
Würdet ihr Ratschläge von einer KI annehmen?

Menschen holen sich oft von anderen Menschen Rat um wichtige oder auch weniger wichtige Entscheidungen zu treffen. Sei es bezüglich Karriere, Freunde, Beziehung oder andere Sachverhalte. Man holt sich Rat bei Menschen, von denen man glaubt sie hätten in dem Bereich eine gewisse Erfahrung. Oder man fragt viele, um generell die Ansichten anderer darüber zu erfahren.

Angenommen es gäbe eine KI die mit den Lebenserfahrungen vieler Menschen trainiert wurde. Die KI hätte also eine Art statistische Erfahrung darüber welche Entscheidungen positiv oder negativ enden.

Im Idealfall könnte so eine KI helfen dass man im Leben Entscheidungen trifft die meistens Zufriedenheit auslösen. Es wäre vielleicht so, als würde man tausende von Menschen befragen, die bereits Erfahrungen mit ähnlichen Situationen und Entscheidungen gemacht haben. Basierend darauf würde die KI einem den passenden Ratschlag geben. Das wäre zumindest die Hoffnung und das Versprechen einer solchen KI Lösung.

Würdet ihr von so einer KI Ratschläge bei wichtigen Entscheidungen annehmen? Oder denkt ihr das kann nie den Rat eines erfahrenen Menschen ersetzen?

Ja, ich hätte grundsätzlich kein Problem damit. 40%
Vielleicht, wenn es wirklich funktioniert. 35%
Nein, käme für mich nie in Frage. 25%
Computer, Technik, Psychologie, Künstliche Intelligenz, Ratschlag, Technologie, Algorithmus, Erfahrungen, Philosophie und Gesellschaft, Gesellschaft und Philosophie, Abstimmung, Umfrage

Meistgelesene Fragen zum Thema Algorithmus