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%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.
Tags und Links c++ short hamming-distance census
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.
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% 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:
Danke für Ihre Hilfe.