Articles of Algorithmus

C ++: Auf das nächste Vielfache einer Zahl aufrunden

OK – es ist mir fast peinlich, das hier zu posten (und ich werde es löschen, wenn irgendjemand abstimmt), da es wie eine grundlegende Frage scheint. Ist das der richtige Weg, um auf ein Vielfaches einer Zahl in C ++ zu runden? Ich weiß, dass es andere Fragen dazu gibt, aber ich bin besonders interessiert […]

Diff-Algorithmus?

Ich habe nach einer Erklärung für einen diff–Algorithmus gesucht, der funktioniert und effizient ist. Der nächste, den ich bekomme, ist dieser Link zu RFC 3284 (aus mehreren Blogeinträgen von Eric Sink), der das Datenformat, in dem die Diff-Ergebnisse gespeichert sind, in vollkommen verständlicher Form beschreibt. Es wird jedoch nicht erwähnt, wie ein Programm diese Ergebnisse […]

Wie stelle ich eine Swap-function für meine class zur Verfügung?

Was ist der richtige Weg, um meinen swap in STL-Algorithmen zu ermöglichen? 1) Mitgliedstausch Verwendet std::swap den SFINAE-Trick, um den Member- swap . 2) Freistehender swap im selben Namensraum. 3) Teilspezialisierung von std::swap . 4) Alles oben genannte. Vielen Dank. EDIT: Sieht so aus, als hätte ich meine Frage nicht klar formuliert. Im Grunde habe […]

Algorithmus zum Vergleichen zweier Bilder

Bei zwei verschiedenen Bilddateien (in welchem ​​Format ich auch immer wähle) muss ich ein Programm schreiben, um die Wahrscheinlichkeit vorherzusagen, wenn eine die illegale Kopie eines anderen ist. Der Autor der Kopie kann Dinge wie rotieren, negativ machen oder triviale Details hinzufügen (sowie die Dimension des Bildes ändern). Kennen Sie einen Algorithmus für diese Art […]

Wie mögen Sie Ihre Primärschlüssel?

In einer ziemlich lebhaften Diskussion in meinem Team wurde ich dazu gebracht zu denken, was die meisten Leute als Primärschlüssel mögen. Wir hatten folgende Gruppen- Int / BigInt welche Autoinkremente gut genug sind Primärschlüssel. Es sollte mindestens 3 Spalten geben, die den Primärschlüssel bilden. ID-, GUID- und lesbare Zeilenbezeichner sollten alle unterschiedlich behandelt werden. Was […]

Entwurfsmuster zum Konvertieren rekursiver Algorithmen in iterative Algorithmen

Gibt es allgemeine Heuristiken, Tipps, Tricks oder gängige Design-Paradigmen, die verwendet werden können, um einen rekursiven Algorithmus in einen iterativen Algorithmus umzuwandeln? Ich weiß, dass es getan werden kann, ich frage mich, ob es Praktiken gibt, die es wert sind, daran zu denken.

Primzahlen von Eratosthenes schneller sequentiell als gleichzeitig?

Ich schreibe gerade ein Programm, das zuerst durch das Sieb von Eratosthenes nacheinander und dann gleichzeitig Primzahlen erzeugt. Die gleichzeitige Version des Algorithmus soll schneller sein als die sequentielle, aber in meinem Fall ist die gleichzeitige Version ca. 10 mal langsamer. Ich frage mich, wo ich die zusätzliche Arbeit an meinen Threads im Vergleich zum […]

Algorithmus zur Erzeugung von Anagrammen

Was wäre die beste Strategie, um Anagramme zu generieren? An anagram is a type of word play, the result of rearranging the letters of a word or phrase to produce a new word or phrase, using all the original letters exactly once; ex. Elf plus zwei ist ein Anagramm von Zwölf plus Eins Ein Dezimalpunkt […]

Wie findet man mithilfe des Knapsack-Algorithmus heraus, welche Elemente in der Tasche sind?

Dort habe ich einen Code, der den optimalen Wert nach Rucksack-Algorithmus berechnet (bin packen NP-schweres Problem): int Knapsack::knapsack(std::vector& items, int W) { size_t n = items.size(); std::vector<std::vector > dp(W + 1, std::vector(n + 1, 0)); for (size_t j = 1; j <= n; j++) { for ( int w = 1; w <= W; w++) […]

PHP-Algorithmus zum Generieren aller Kombinationen einer bestimmten Größe aus einem einzigen Satz

Ich versuche, einen Algorithmus abzuleiten, der alle möglichen Kombinationen einer bestimmten Größe erzeugt, etwa eine function, die ein Array von Zeichen und Größe als Parameter akzeptiert und ein Array von Kombinationen zurückgibt. Beispiel: Sagen wir, wir haben eine Menge von Zeichen: Setze A = {A, B, C} a) Alle möglichen Kombinationen der Größe 2: (3 […]