[Frage]Beliebiglange Zahl ohen Einschränkun teilen



  • Hallo Leute,
    bin leider nicht der Matheheld und brauche für ein kleines Projekt eine Funktion womit ich unendlich-1 lange Zahlen teilen kann.
    long double ist leider beschränkt, wodurch die Datentypen schon mal weg fallen.

    Wäre für Tips dankebar.

    Gruß der KC



  • KC25m schrieb:

    eine Funktion

    ➡ gmp http://gmplib.org/

    unendlich-1 lange Zahlen

    😮 WTF



  • Wenn eine Zahl unendlich -1 lang ist, ist sie immer noch unendlich lang.
    Da brauchst du dir ums Teilen keine Sorgen machen, weil du sie nichtmals speichern kannst.

    Es sei denn du führst ein abkürzendes Symbol ein, wie Pi für 3.14...
    Dann ist Pi Geteilt duch 3 eben Pi/3.

    Das kannste dann zu hinschreiben, bzw. anzeigen. Aber ob das hilft...



  • Danke für die Antwort, werde es mir mal anschauen.
    Beim überfliegen schien es aber genau das zu tun was ich suche.

    Das mit dem Unendlich-1 war eigentlich nur dazu gedacht um klar zu stellen das ich ein Mathedau bin ^^



  • long double ist leider beschränkt, wodurch die Datentypen schon mal weg fallen.

    Alles ist beschraenkt im Rechner, beliebige Genauigkeit ist eine Illusion.



  • knivil schrieb:

    long double ist leider beschränkt, wodurch die Datentypen schon mal weg fallen.

    Alles ist beschraenkt im Rechner, beliebige Genauigkeit ist eine Illusion.

    Jaja, und deswegen lässt sich praktisch gesehen auch jedes praktische Problem in konstanter Zeit lösen, was? -- Unheimlich schlau und unheimlich unnütz.



  • Haeh? Ich verstehe den Zusammenhang zwischen Genauigkeit und Laufzeit nicht. Und wenn long double wegen seiner Beschraenktheit herausfaellt, so fallen alle anderen Typen auch heraus. Das wollte ich damit ausdruecken.



  • knivil schrieb:

    Beliebige Genauigkeit ist eine Illusion.

    Eine nützliche Illusion.



  • Bei numerischen Sachen kann es aber ungemein in die Hose gehen, deswegen sollte man sich dieser "Luege" bewusst sein. 🙂 Ausserdem kann man ja sein Problem skalieren oder einfach anders diskretisieren.



  • knivil schrieb:

    Haeh? Ich verstehe den Zusammenhang zwischen Genauigkeit und Laufzeit nicht.

    Wenn die Eingabegröße beschränkt ist, ist jedes Problem in konstanter Zeit lösbar. Soweit klar, oder? Diese Aussage ist aber ähnlich nützlich wie Deine oben. Für die allermeisten Probleme genügen doch zehn bis 100 Nachkommastellen voll und ganz und das schafft GMP locker und ist auch auf jedem vernünftigen Rechner prima zu benutzen. Den Unterschied zwischen "beschränkt durch 64Bit" und "beschränkt durch irgendwas von ungefähr der Größe meines RAM" brauchen wir hoffentlich nicht diskutieren, oder?



  • Laufzeitanalysen und Algorithmen sind theoretische Konstrukte, sie sind idealisiert (losgeloest von Hardware) und unterliegen keiner Beschraenkung. Aber lassen wir das. gmp scheint ja das richtige fuer ihn zu sein, fuer welches kleine Projekt er es auch verwenden mag. Ich persoenlich habe sie noch nie gebraucht, double war immer ausreichend fuer alle numerischen Sachen.



  • Ich bedanke mich für die Antworten.
    Habe gmp nun genommen und es reicht wirklich aus für mein kleines vorhaben.



  • ist gewiß richtig, daß man in der Numerik meistens mit long double auskommt und man daher auf bignums und beliebig genaue Arithmetik verzichten kann, wenn die Algorithmen ausreichend stabil gegen Rundungsfehler sind.

    In der Zahlentheorie und Algebra (computational algebra) sowie der ganzzahligen Optimierung ist das aber gewiß nicht der Fall - da kommt es auch bei sehr großen Zahlen oder Brüchen mit 100-stelligem Nenner noch auf jede einzelne Ziffer an, und dort liegen auch Hauptanwendungsgebiet von bignums.


Log in to reply