Wie zählt man die Hamming-Distanz von zwei kurzen int?

8

Hamming Entfernung:

Zum Beispiel, zwei Binärzahl: 1011 und 1000 HD (Hamming-Abstand) ist 2.

Die HD von 10000 und 01111 ist 5.

Hier ist der Code:

Kann mir das jemand erklären?

Danke!

%Vor%     
David Ding 18.03.2014, 12:34
quelle

1 Antwort

16

Diese Anweisung gibt Ihnen eine Zahl mit allen Bits, die von x bis y verschieden sind:

%Vor%

Beispiel: 0b101 ^ 0b011 = 0b110

Beachten Sie, dass val den gleichen Operandentyp haben sollte (auch bekannt als short ). Hier werden Sie eine short auf eine char reduzieren, Informationen verlieren.

Der folgende Algorithmus berechnet die Anzahl der in einer Zahl gesetzten Bits:

%Vor%

Es ist bekannt als Brian Kernighan Algorithmus .

Letztendlich zählt der ganze Code Bits, die sich unterscheiden, was die Hamming-Distanz ist.

    
Kiwi 18.03.2014, 12:38
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ answer22343265 ___

Die Art, wie Sie versuchen, den Wert einer Spalte festzulegen, ist ein Update. Weil Sie es tun nach dem Einfügen Operation abgeschlossen ist.

Sie benötigen tatsächlich einen %code% Trigger.

Und um den gleichen neuen automatisch inkrementierten Wert der Primärschlüsselspalte derselben Tabelle zuzuweisen, holen Sie ihn besser von %code% .

Beispiel :

%Vor%

Hinweis : Stellen Sie sicher, dass Sie keinen vordefinierten Trigger mit demselben Namen und / oder Aktion haben. Wenn Sie einige haben, dann lassen Sie sie fallen, bevor Sie die neue erstellen.

    
___ tag123triggers ___ Trigger sind Regeln, die, wenn sie als wahr ausgewertet werden, eine oder mehrere Aktionen ausführen. ___ tag123insert ___ Insert ist eine Aktion zum Hinzufügen von Informationen zu einem größeren Container, in dem die Informationen gespeichert werden sollen. Einige Beispiele umfassen das Einfügen einer Datei in ein Dateisystem, das Einfügen eines Datensatzes in eine Datenbank oder das Einfügen eines Elements in eine Liste. ___ tag123sqlupdate ___ Eine SQL UPDATE-Anweisung wird verwendet, um vorhandene Zeilen in einer Tabelle zu ändern. ___ answer22343137 ___

Ich glaube nicht, dass Sie das tun können. Ein AFTER-INSERT-Trigger kann nicht die gleiche Tabelle ändern, weder durch ein UPDATE noch durch etwas in der Art:

%Vor%

Es gibt Fehler wie

%Vor%

Was Sie tun können, ist eine Transaktion:

Beispiel: Die Tabellenstruktur ist wie folgt

%Vor%

Transaktion

%Vor%

Daten überprüfen

%Vor%     
___ tag123mysql ___ MySQL ist ein freies, relationales Datenbank-Managementsystem (RDBMS), das die strukturierte Abfragesprache (SQL) verwendet. Verwenden Sie dieses Tag NICHT für andere DBs wie SQL Server, SQLite usw. Dies sind verschiedene DBs, die alle SQL verwenden, um die Daten zu verwalten. ___ qstntxt ___

Stellen Sie sich vor, ich hätte eine MySQL-Tabelle (tbl_test) mit diesen Feldern: ID, Titel, Priorität . Eine ID wird automatisch inkrementiert. Ich muss nach dem Einfügen das Feld priority mit einem Wert füllen, der dem Feld id entspricht.
Da ich neu mit MySQL-Triggern bin, sag mir bitte, was ich dafür schreiben muss. Ich habe etwas gemacht, aber ich denke, es ist nicht wahr:

%Vor%

Danke für Ihre Hilfe.

    
___