Zahlendarstellung



  • Hallo,

    ich hab mal ausprobiert, ob es eine möglichkeit gibt, zahlen kleiner darzustellen als im dezimalsystem. ich weiß das es mit dem hexadezimalsystem geht. jetzt wollte ich wissen, macht es sinn, seine zahlen in einem noch höheren system anzugeben (z. b. das es nicht bis f sondern bis z geht) um damit speicherplatz bei zahlen wie 2^12345678 zu sparen??

    gruß gucky



  • Nein, das macht keinen Sinn, denn du kannst so keinen Speicherplatz sparen. Du hast zwar weniger Ziffern, aber dafür mehr Informationen pro Ziffer.



  • es geht mir nur um das speichern

    später kann man die datei wiederverwenden in nem programm und da wird es doch erst wieder umgewandelt

    bsp.:

    hexadezimal und dezimal

    f = 15

    in der datei steht f => also ein byte gespart

    später wird f im programm wieder zu 15 umgewandelt


  • Mod

    Dann nimm doch 255 als Basis.

    edit: Ich meine natürlich 256.

    edit2: Beziehungsweise doch 255 falls du noch ein Trennzeichen hast. Falls deine Zahlen per Konvention alle gleich lang sind, brauchst du dies natürlich nicht.



  • Dezimalsystem oder Zweiersystem oder sowas sind schon quasi optimal.
    Auf dem Rechner, der intern Bytes optimal adressieren kann, das 256-er System also optimal kann, sind alle Systeme mit Zweierpotenzen als Basis sauschlau. Systeme mit großen anderen Basen sind nicht undumm. Zum Beispiel 1000000000 für 32-Bitter. Kaum Verlust. Für allgemeine Darstellung von Zahlen.
    Spezielle Zahlen kann man schlauer darstellen.
    Zum Beispiel M43112609 statt 12978189 Ziffern auszuschreiben. Dazu muß der Leser halt wissen, was M43112609 bedeutet.
    Oder wie in Deinem Fall 2^12345678 statt 3716420 Dezimalziffern auszuschreiben.

    These: Es gibt kein allgemeines Verfahren, um aus einer langen Zahl eine kürzere Darstellung zu finden.



  • Dazu muß der Leser halt wissen, was M43112609 bedeutet.

    ich muss natürlich auch wissen was das bedeutet und was meinst du mit das die internen bytes optimal adressiert sind???



  • Gucky schrieb:

    Dazu muß der Leser halt wissen, was M43112609 bedeutet.

    ich muss natürlich auch wissen was das bedeutet

    Ja, sag ich doch.
    Es ist eine saugroße Primzahl. Primzahlisten erkennen erkennen das Muster sofort und wissen, welche Rechnung sie machen müßten, um an die ganzen Ziffern zu kommen.

    Aber ein normaler Computer ist schon zu dumm, "2^12345678" zu verstehen. Gib das mal als Zahl in einem Webformular ein. Abgesehen davon, daß sie Zahl zu groß ist, um sinnvoll zu sein. Das '^' da mitten drin wird nicht verstanden.



  • Die Optimale Zahlenbasis für ein Stellenwertsystem ist e.



  • 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.


Anmelden zum Antworten