Zahlendarstellung



  • dot schrieb:

    Die Optimale Zahlenbasis für ein Stellenwertsystem ist e.

    Aber dann wären doch alle natürlichen Zahlen nichtperiodische e-Brüche. Nee, die natürlichen Zahlen sind mir zu wichtig. Ich mag was anderes.



  • Jop, dann Trinärsystem das liegt am nähesten dran 😉


  • Mod

    dot schrieb:

    Die Optimale Zahlenbasis für ein Stellenwertsystem ist e.

    Kannst du dies erläutern? Eine transzendente Basis kommt mir eigentlich eher unpraktisch vor. Ich würde eher so etwas wie 12 oder 60 wählen.



  • Ganz einfach, bei der Basis e wird die Entropie maximal...


  • Mod

    dot schrieb:

    Ganz einfach, bei der Basis e wird die Entropie maximal...

    Ehrlich gesagt verwirrst du mich immer mehr.



  • Tut mir leid, das mit der Entropie ist natürlich Blödsinn, hab da was durcheinandergebracht. Anyway, hier die gewünschte Erläuterung:
    Eine optimale Basis erlaubt es mir mit einer minimalen Anzahl an Ziffern eine maximale Anzahl an Zahlen darzustellen. Mit einer gegebenen Basis B kann ich in n Stellen Z = B^n Zahlen darstellen wobei mein Aufwand A = n * B verschiedene Zeichen ist. Setzen wir das eine ins andre ein bekommen wir Z = B^(A/B). Jetzt wollen wir das maximieren (sry, latex wollte irgendwie nicht):

    Z = e^(A/B ln B)
    
    Z' = (-A/B² ln B + A/B²) e^(A/B ln B)
       = (-A/B² ln B + A/B²) Z = 0
    
      <=> A/B² ln B = A/B²
      <=> ln B = 1
                           q.e.d.
    


  • ...


  • Mod

    Interessant. Wieder mal etwas gelernt was sich toll anhört, aber völlig weltfremd und praxisuntauglich ist. Muss wohl Mathematik sein 😃 .



  • Bei Dir wird B=2.718, also hat das Alphabet 2.718 Zeichen. Da hat Z ein lokales Maximum. Aber warum wähst Du nicht B=-0.5? Wäre bei einem Alphabet mit -0,5 Zeichen Z nicht noch deutlich größer?



  • dot schrieb:

    Mit einer gegebenen Basis B kann ich in n Stellen Z = B^n Zahlen darstellen wobei mein Aufwand A = n * B verschiedene Zeichen ist.

    Nee, der Aufwand ist A = n * ld(B).

    Z = B ^ (A/ld(B))
    Z = B ^ (A/ln(B)*ln(2))
    Z = B ^ (A/ln(B)*ln(2))
    Z= 2 ^ A (Oh, welch Wunder!)

    Probe:
    B sei mal 10.
    n sei 6.
    Z = 1000000
    A = 6*ld(10) = 19.93
    Z = 2^19.93 (Jo, paßt schon.)



  • ok, da ich eh nicht viel von der mathematik verstehe bitte ich darum das mir jemand eindeutig sagen kann, was die beste möglichkeit wäre

    gruß



  • SeppJs 256-er-System spart am meisten Platz.



  • jedes System mit 2^x Ziffern, bei dem die Ziffern-Bitlänge x die Wortlänge der Speicherzellen teilt, ist gleich gut, nämlich verschnittfrei - egal ob das nun Oktalsystem (x=3) auf 18- oder 36-Bit-Maschinen ist, Hex (x=4) auf 4-, 8-, 16-,32- oder 64-Bit-Maschinen ist usw ...



  • Mann, ihr erzaehlt ein Quatsch...


  • Mod

    TGGC schrieb:

    Mann, ihr erzaehlt ein Quatsch...

    Immer diese hilfreichen Kommentare die einen völlig unbefriedigt zurücklassen 🙄 . Weder weiß man auf welche Aussage sie sich beziehen, noch was der Quatsch sein soll, noch was angeblich richtig wäre.



  • !rr!rr_. schrieb:

    jedes System mit 2^x Ziffern, bei dem die Ziffern-Bitlänge x die Wortlänge der Speicherzellen teilt, ist gleich gut, nämlich verschnittfrei - egal ob das nun Oktalsystem (x=3) auf 18- oder 36-Bit-Maschinen ist, Hex (x=4) auf 4-, 8-, 16-,32- oder 64-Bit-Maschinen ist usw ...

    Ja, das ist sicherlich richtig.
    Aber unter Hex versteht er "d34db33f", sind 8 Zeichen, sind in der Datei 8 Byte. Oktal wäre diese Zahl sogar als "32323331477" mit 11 Bytes dabei. Im 256-er-System würden 4 Bytes reichen.



  • ok danke

    damit wäre meine frage beantwortet



  • also wenn ich auf kompakte Speicherung wert lege, dann codiere ich doch nicht eine Hexziffer in ein Byte, sondern in ein Nibble. Allgemein ist es latte, wie viele Ziffern man hernimmt, solange

    a) |Ziffernvorrat| = 2^x
    und
    b) x teilt Wortbreite der Maschine

    erfüllt sind - die Speicherausnutzung ist dann immer die selbe, nämlich optimal.



  • wenn du mir das jetzt noch an einen beispiel zeigst und mir sagen kannst, wie ám was als nibble speichert wäre ich sehr glücklich 🙂



  • ein Nibble sind 4 Bit.

    Beispiel:

    Hex:

    |Ziffernvorrat| = 2^4 => Speicherung mit 4 Bit pro Ziffer funktioniert verschnittfrei auf jeder Maschine mit 4-, 8-, 12-, 16-, ... 4n-Bit-Wörtern

    Oktal:

    |Ziffernvorrat| = 2^3 => Speicherung mit 3 Bit pro Ziffer funktioniert verschnittfrei auf 3-, 6-, 9-, 12-, ... 3n-Bit-Wörtern.

    Auf einer alten 18-Bit-Maschine wäre Hex (im Ggs zu Oktal) nicht optimal, weil man in einem 18-Bit-Wort genau 6 Oktalziffern unterbringt, aber nur 4.5 Hexziffern (d.h. 4 Hexziffern mit zusammen 4 x 4 = 16 Bits, und 2 Bits bleiben übrig)


Anmelden zum Antworten