1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

bitwise mirror

  • Lui
  • 13. Oktober 2008 um 22:41
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Lui
    Punkte
    100
    Beiträge
    19
    • 13. Oktober 2008 um 22:41
    • #1

    Hi,

    ich möchte ID Values generieren, die dann einem Baum füttern, nur wenn ich da einfach raufzähl, kann ich den Baum auch gleich wieder weghaun.

    Ah, da war doch was, aufsteigende zahl hernehmen und bitweise spiegeln ... tja, nur wie mach ich das. Da muss doch irgend einen Schmäh geben mit dem das einfach geht. Ansonst wird das ein echt grausliches Statement :/
    Wie lernt man das in AlgoDat, da wird das doch erwähnt nehm ich an?

    Hab jetzt auf die schnelle nichts dazu gefunden, weiß aber auch ned wie man das korrekt bezeichnet was ich such.

    Evtl auch andere Vorschläge?


    lg Lui

  • ThomasW
    Punkte
    141
    Beiträge
    28
    • 13. Oktober 2008 um 22:54
    • #2

    Jetzt mal so aus dem Bauch heraus und ohne zu testen würde ich das so machen:

    PHP
    unsigned int mirror (unsigned int v)
    {
        unsigned int r = 0;
        int i;
    
    
        for (i = 0; i < 32; i++) {
            r = r | (((v>>i)&1)<<(31-i));
        }
        return r;
    }
    Alles anzeigen
  • Plantschkuh!
    Punkte
    6.173
    Beiträge
    1.181
    • 13. Oktober 2008 um 22:58
    • #3
    Zitat von Lui

    Ah, da war doch was, aufsteigende zahl hernehmen und bitweise spiegeln ...


    So kriegst du zwei ineinander verschachtelte, monoton steigende Folgen. Was soll das bringen außer Umständen?

    Zitat

    Wie lernt man das in AlgoDat, da wird das doch erwähnt nehm ich an?


    Nö. Selber nicht AlgoDat besucht?

    Zitat

    Evtl auch andere Vorschläge?


    Balancierter Baum, pseudozufällige IDs.

  • Lui
    Punkte
    100
    Beiträge
    19
    • 13. Oktober 2008 um 23:08
    • #4

    @Plantschkuh
    Angeblich wenn man einen Baum damit befüllt ist der ausgewohgen, anderen Falls hat man ned mehr als ne List. Wenn das spiegeln auch nix bringt wär das blöd. Bin bin mir ziemlich sicher, dass ich das mal so gelernt hab.
    Edit:AlgoDat nicht hier auf der Uni.

    ThomasW
    Einfach bit für bit aufsummieren, ja das ist das erste was man machen kann wenn mans mal irgendwie macht. Evtl is da aber wirklich schneller einfach zufällige IDs zu nehmen, hm.

    Wie macht man das normalerweise, bei Datenbanken oder so?


    Ich möchte eben ned std::string statt integer nehmen, obwohl so schlimm kann das ja ned sein.

    Einmal editiert, zuletzt von Lui (13. Oktober 2008 um 23:12)

  • Plantschkuh!
    Punkte
    6.173
    Beiträge
    1.181
    • 14. Oktober 2008 um 10:49
    • #5
    Zitat von Lui

    Wenn das spiegeln auch nix bringt wär das blöd. Bin bin mir ziemlich sicher, dass ich das mal so gelernt hab.


    Kann schon sein. Meine Aussage mit den beiden monoton steigenden Folgen ist uebrigens falsch, wie ich danach draufgekommen bin. Bin trotzdem skeptisch, aber wenn du das gelernt hast, wirds schon so sein. Kann man ja auch mit einem balancierten Baum kombinieren, wenn man moechte.

    Zitat

    Einfach bit für bit aufsummieren, ja das ist das erste was man machen kann wenn mans mal irgendwie macht.


    Das koennte schneller sein: http://graphics.stanford.edu/~seander/bitha…ReverseParallel

  • Lui
    Punkte
    100
    Beiträge
    19
    • 14. Oktober 2008 um 14:54
    • #6

    Yeah! "Bit Twiddling Hacks" :bounce:
    Das gfallt ma, genau sowas hab ich gsucht, thx ;)


    Heutzutage verwendet man aber wahrscheinlich sowieso nur noch AVL trees.

    Ich hab das jetzt gestern aber schon irgendwie anders gmacht. Da ich die Objekte sowieso mit einem Namen registriere, verwende ich jetzt einfach strings. Intern wollte ich aber dann nur noch die generierten IDs verwenden, weils natürlich schneller is, die Abfragen sollten aber eh ned an performancekritischen Stellen sein.
    Ich bild mir halt solche Sachen immer ein, kann sowas immer nur mit meinem Gewissen vereinbaren sofern das effizient oder elegant ist und mich hat das schon irgendwie gewundert das man die bits ned irgendwie gschwind umdrehn kann :D

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum