AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Rechenprogramm
Thema durchsuchen
Ansicht
Themen-Optionen

Rechenprogramm

Ein Thema von Amateurprofi · begonnen am 31. Mai 2009 · letzter Beitrag vom 7. Okt 2020
Antwort Antwort
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Rechenprogramm

  Alt 27. Sep 2020, 10:58
Du hast natürlich Recht. Das von mir vorgeschlagene "Verfahren" ist mathematischer Bocks-Mist. Es führt zwar aufs richtige Resultat. Aber der Weg.... [Ich war soeben beim Ponys Misten und obschon es auf 800müM bereits ziemlich kalt und windig ist, war die Jacke plötzlich völlig überflüssig als mir einfiel, dass das was ich geschrieben.... Du kannst natürlich direkt Mantisse und Exponent separieren und über die 1754! Grenze hinaus multiplizieren... ich lasse es zur Belustigung stehen... ]


Ich schlage dieses Verfahren ja nicht für "kleine" Werte von x (also nicht für x <= 1754) vor. Mir ist vollkommen klar, dass der Aufwand via log10 weit grösser ist. Wenn ich dich aber richtig verstehe, kann dein Programm Näherungswerte "nur" bis 1754! berechnen, dann ist aus.

Wenn du aber über den Exponenten zur Basis 10 rechnest, kommst du an Orte, wo nie jemand zuvor gewesen ist.

Du könntest deine Superschnellmethode bis 1754 nutzen und ab dann via log die Näherungswerte berechnen.

Für grosse Werte - kommen in der Statistik durchaus vor - könnte dein Programm zum Beispiel jeden 100sten ! Wert tabellieren; dann müsstest du nicht allzu viele log10 addieren.

War nur ein Vorschlag - mehr nicht.

Besten Dank für deine Tipps zu "tief" und Co (Kombinatorik Teil in deinem Calculator).
Michael Gasser

Geändert von Michael II (27. Sep 2020 um 15:05 Uhr)
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.097 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Rechenprogramm

  Alt 27. Sep 2020, 17:10
Ich schlage dieses Verfahren ja nicht für "kleine" Werte von x (also nicht für x <= 1754) vor. Mir ist vollkommen klar, dass der Aufwand via log10 weit grösser ist. Wenn ich dich aber richtig verstehe, kann dein Programm Näherungswerte "nur" bis 1754! berechnen, dann ist aus.
In dem Programm werden im "Normal"-Modus zur Speicherung der Daten Extended-Variablen verwendet, und da gibt es nun einmal die Obergrenze 1.1E+4932

Anders ist es im "BigDecimal"-Modus.
Da kannst du die Fakultät bis 10000 berechnen. Exact übrigens und nicht nur näherungsweise.
Die 10000 als Obergrenze für Fakultät ist willkürlich festgelegt.

Allerdings können diese im Ausgabefeld nicht in voller Länge angezeigt werden.
Das hatte ich hier https://www.delphipraxis.net/195060-...extlaenge.html einmal angesprochen.

Aber mache einmal folgendes:
Stelle auf "BigDecimal"-Modus (2tes Panel in der Statusbar)
Stelle "Auch Integerzahlen in technischer Darstellung" auf "Nein" (9tes Panel in der Statusbar)
Gib 10000! ein.
Als Rechenergebnis erhältst du "Zahl zu lang" in grüner Schrift.
Rechtsklicke den Text.
In einem PopUp-Menu wird angeboten, die Zahl ins Clipboard zu stellen oder in einer Datei zu speichern.
Wenn du in Datei speichern wählst, wird in der Datei "Log.txt" im Programmverzeichnis gespeichert.
Oder rechtsklicke den Text mit gedrückter Ctrl-Taste.
Dann wird der "Dialog für lange Zahlen" geöffnet, in dem du die Zahl (in Worten) ansehen kannst.
Im Anhang findest du 2 Dateien, die Zahl in Ziffern, die Zahl in Worten.
Angehängte Dateien
Dateityp: zip 10000!.zip (86,3 KB, 6x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz