myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Brauche Hilfe bei Hamming Distanz

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 18.06.10, 13:33   #1
reny
Anfänger
 
Registriert seit: Aug 2009
Beiträge: 28
Bedankt: 2
reny ist noch neu hier! | 0 Respekt Punkte
Standard Brauche Hilfe bei Hamming Distanz

Hi ich brauche eure Hilfe ich möchte ein Programm schreiben welches bei gegebener Hammingdistanz und Bitlänge alle möglichen Codes ausgibt. Mir ist es hierbei egal ob in JAVA od. C++.

Wie mache ich das am besten?

(XOR)

mfg
reny ist offline   Mit Zitat antworten
Ungelesen 18.06.10, 15:41   #2
kramido
Erfahrener Newbie
 
Registriert seit: Apr 2010
Beiträge: 172
Bedankt: 31
kramido ist noch neu hier! | 0 Respekt Punkte
Standard

Der einfachste Lösungsansatz ist per Brute-Force.


Try&Error:
Code:
//Code, der analysiert werden soll
const int code = 0b1001011;
//Bitlänge des Codes
const int bitlaenge = 7;
//Maximale Distanz, die angezeigt werden soll
const int maxHd = 3;


//Für 7 Bit gibt es 2^7 Codes von 0 bis 2^7 - 1
const int pruefeBis = (1<<bitlaenge) - 1;
//Für alle erlaubten Kombinationen Durchlauf starten
for(int i = 0; i < pruefeBis; i++)
{
	//Sofern Code nicht identisch mit pruefeBits ist und innerhalb der 
	//angezeigten HD, ausgeben
	if(i != code && hd(code, i, bitlaenge) < maxHd)
	{
		System.out.println("Code: " + Integer. toBinaryString(i));
	} 
}

Berechnung der HD:
Code:
int function hd(int code1, const int code2, const int bitlaenge)
{
	//Initial HD mit null annehmen
	int hd = 0;
	
	//Differenz der Codes berechnen
	code1 = code1 ^ code2;
	
	//Nachfolgend Anzahl der unterschiedlichen Bits bestimmen
	
	//Für alle Bits
	for(int i = 0; i < bitlaenge - 1; i++)
	{
		//Nur unterstes Bit betrachten
		//Sofern unterstes Bit = 1, addieren zu HD
		hd += (code1 & 1);
		//Code shiften
		code1 = code1 >> 1;
	}
	
	return hd;
}
Nicht erprobt, aber sollte vom Sinn passen.
kramido ist offline   Mit Zitat antworten
Ungelesen 18.06.10, 17:42   #3
reny
Anfänger
 
Registriert seit: Aug 2009
Beiträge: 28
Bedankt: 2
reny ist noch neu hier! | 0 Respekt Punkte
Standard

thx hat mir sehr geholfen habe schon nen ansatz gehabt aber mit nem kleinen bug

mfg
reny
reny ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 Uhr.


Sitemap

().