Hallo,
ich habe die folgende Teilaufgabe die ich unzählige Male lösen muss:
Es seien 2 Zahlen A und B gegeben in Binärform mit 49 bits Länge (von denen 6 bits 1 sind der Rest Null).
1. Was für einen Datentyp kann ich für die nehmen?
Weil normales int könnte für zahlen, die im worstcase 2^49-1 groß sind, unpassend sein.
Und will eigentlich kein Big Integer benutzen oder so, weil für mich nur wirklich wichtig ist,
welche 6 der 49 bits 1 sind.
Was das, wenn man es als eine Dezimalzahl "umdeutet" genau für einen Wert hätte, ist für mich unwichtig.
Das mit den 49 bit ist einfach nur eine passende Darstellungsart zur Codierung beim vorliegenden Problem.
Nun müsste ich rausfinden ob die 2 Zahlen in >=3 Stellen übereinstimmen.
Hier wäre ein bit wises Und sichelrich sinnvoll (deswegen überhaupt auch die Darstellung)
um (in binär ausgedrückt) die Anzahl an gemeinsamen Stellen zu finden.
Nun ist es in der Aufgabe so dass ich
eine Zahl A habe und eine Liste an Zahl L.
und nun im Endefekt gucken will ob sich in der Liste L mindestens eine Zahl finden lässt,
die >=3 stellen gemeinsam hat.
Ich habe das gefühl, mit klug gewählten bitoperationen und Co. könnte man das durchaus klug umsetzen.
Und Effizienz wäre wichtig da ich wirklich seeeeehr viele Zahlen kreuz und quer vergleichen muss
Hat Jemand eine gute Idee wie ich das sinnvoll umsetzen kann?
ich habe die folgende Teilaufgabe die ich unzählige Male lösen muss:
Es seien 2 Zahlen A und B gegeben in Binärform mit 49 bits Länge (von denen 6 bits 1 sind der Rest Null).
1. Was für einen Datentyp kann ich für die nehmen?
Weil normales int könnte für zahlen, die im worstcase 2^49-1 groß sind, unpassend sein.
Und will eigentlich kein Big Integer benutzen oder so, weil für mich nur wirklich wichtig ist,
welche 6 der 49 bits 1 sind.
Was das, wenn man es als eine Dezimalzahl "umdeutet" genau für einen Wert hätte, ist für mich unwichtig.
Das mit den 49 bit ist einfach nur eine passende Darstellungsart zur Codierung beim vorliegenden Problem.
Nun müsste ich rausfinden ob die 2 Zahlen in >=3 Stellen übereinstimmen.
Hier wäre ein bit wises Und sichelrich sinnvoll (deswegen überhaupt auch die Darstellung)
um (in binär ausgedrückt) die Anzahl an gemeinsamen Stellen zu finden.
Nun ist es in der Aufgabe so dass ich
eine Zahl A habe und eine Liste an Zahl L.
und nun im Endefekt gucken will ob sich in der Liste L mindestens eine Zahl finden lässt,
die >=3 stellen gemeinsam hat.
Ich habe das gefühl, mit klug gewählten bitoperationen und Co. könnte man das durchaus klug umsetzen.
Und Effizienz wäre wichtig da ich wirklich seeeeehr viele Zahlen kreuz und quer vergleichen muss
Hat Jemand eine gute Idee wie ich das sinnvoll umsetzen kann?