![]() |
Größte Integer-Variable?
Ich weiß, dass das lächerlich klingt, aber welches ist die Variable, die die größt Zahl aufnehmen kann?
Ist das Int64? und wenn ja, wie groß, können damit die Zahlen werden? Ich hoffe ihr versteht, was ich meine! Danke im Voraus |
Re: Größte Integer-Variable?
"Integer" in D eingeben -> F1
;) |
Re: Größte Integer-Variable?
Du könntest dir natürlich auch die Mühe machen und dir eigene Integer-Typen schreiben, einschließlich der Prozeduren für Rechenoperationen :mrgreen: ... also sowas wie:
Delphi-Quellcode:
*Hei wird das ein Spass :mrgreen: *
type
MyInteger = array[0..7]of Cardinal;//mit 256 bits, also 2^256 mögliche Werte |
Re: Größte Integer-Variable?
Wenn ich eine Wahrscheinlichkeit ausrechnen möchte, brauche ich in meinem Fall diese Formel.
0<n<366 Also steht im Nenner schlimmsten Falls 365^365! Und im Zähler steht immer 365*364*363*362... Da bräuchte ich deutlich größere Variablen! Oder bringt es mir was, dass das Ergebniss immer zwischen 0 und 1 liegt? |
Re: Größte Integer-Variable?
Vielleicht hilft dir ein int64.
|
Re: Größte Integer-Variable?
Das geht aber auch nur von -2^63 bis 2^63!
|
Re: Größte Integer-Variable?
Wie groß wäre denn der Exponent zur Basis 2, um dasselbe Ergebnis zu erhalten wie 365^365????
Hab grad keinen richtigen Taschenrechner zur Hand ^^. |
Re: Größte Integer-Variable?
Wenn es keinen Typ mit diesem Umfang gibt, dann mach es doch "per Hand", Im prinzip so, wie man auf dem Papier rechnet; mit Überträgen etc. Dazu benutzt du am besten Strings.
Macht die ganze Sache etwas komplizierter, dafür kannst du aber auch viel größere Zahlen als 365 in deiner Rechnung benutzen. |
Re: Größte Integer-Variable?
Ich glaube, das ist ungefähr 2^3106!
Kann auch falsch sein! Ich bin darauf gekommen, weil 2^8,51172 zeimlich genau 365 ist und dann müsste man doch eigentlich, den Exponent mit 365 multiplizieren (8,51172*365=3106,7778)! |
Re: Größte Integer-Variable?
OK, wenn ich richtig gerechnet habe sind muss der Exponent zur Basis 2 mindestens 3108 sein, um ein Ergebnis größer als 365^365 zu erzielen.
Das wäre dann sowat in der Art:
Delphi-Quellcode:
type
MyInteger = array[0..97]of Cardinal |
Re: Größte Integer-Variable?
Und wie kann ich jetzt mit dem rechnen?
|
Re: Größte Integer-Variable?
:hi:
zum dem Thema gibts hier schon einiges, einfach mal suchen. mfg Tobias |
Re: Größte Integer-Variable?
Zitat:
![]() ...:cat:... |
Re: Größte Integer-Variable?
Eine berechtigte Frage....
Vielleicht Bit für Bit, wie es sich gehört: 1001 x 1100 1100000 + 1100 1101100 |
Re: Größte Integer-Variable?
Zitat:
|
Re: Größte Integer-Variable?
Zitat:
![]() ...:cat:... |
Re: Größte Integer-Variable?
Irgendwie, werde ich aus den Sachen nicht schlau!
GIbt es vielleicht schon fertige functionen, die mit Zahlen "Schritt für Schritt" rechnen können, die in einem string liegen! Wenn nicht, würde es mal höchste Zeit werden, dass man mal eine derartige function schreibt!; |
Re: Größte Integer-Variable?
:hi:
Ja das gibts - wurde ja schon gesagt. Einfach mal bei Google googlen. Links dazu wurden hier schonmal gepostet, finde aber nicht mehr wo. mfg Tobias |
Re: Größte Integer-Variable?
Zitat:
|
Re: Größte Integer-Variable?
kannst du dann den qt ma open source mache`n?
mir gehts nämlcih ähnlich wie nicolai, habn ähnliches problem, und ich hab keinen dunst von eigenen integer-typen |
Re: Größte Integer-Variable?
Ich werde mich auch mal selber daransetzen und functionen programmieren, die mit strings rechnen können!
Wenn sie das Schritt für Schritt machen könnte man Zahlen bis 2GB länge nehmen, ich möchte nicht daran denken, wie viele Zeichen diese haben! |
Re: Größte Integer-Variable?
Na bei 2GB Strings kannst du Zahlen mit 2 Mrd. Stellen nehmen. Ob das Sinn macht, ist eine andere Frage. :)
|
Re: Größte Integer-Variable?
@Nicolai1605, welche Genauigkeit benötigst du denn ??
Willst du nur eine angenäherte Rechnung aufmachen dann wird der Datentyp Extended völlig ausreichen. Du musst dann nur deine Formel anders aufbauen und mit Logarithmen rechnen. Oder willst du absolut exakt deine Formel ausrechnen, dann benötigst du auf alle Fälle eine Mathematische Bibliothek die mit solchen großen Zahlen exakt rechnen kann. In diesem Moment falle mir für Delphi 3 verschiedene Bibliotheken ein: 1.) NX von Marcel Martin zu finden auf ![]() 2.) StreamSec von Hendrik Hellström ist ein kommerzielles Kryptoprodukt zu finden auf ![]() 3.) IIntegers ist eine Entwicklung von mir, die leider nicht frei in Source verfügbar ist. Hier im Forum findest du aber eine binäre Distribution auf die du zu Hobbyzwecken durchaus aufsetzen kannst. Von enormen Vorteil dürfte dabei der Fakt sein das in dieser Lib die Unit NCombi.pas enthalten ist. Nun, in dieser Unit findest du die schnellsten bekannten Algortihmen um enorm große Fakultäten, Kombinatorische Berechnungen usw. durchzuführen. Mit diesen Basisfunktion dürfte es ein leichtes sein deine Formel bis aufs Bit genau auszurechnen. Performancetechnisch enthält meine Lib eben auch hochspezialisierte Algortihmen um mit sehr sehr großen Zahlen mit bis zu 2^2^24 Binären Stellen zu rechnen. Beide Libs, StreamSec und NX, enthalten dagegen eben keine solche Verfahren und sind in solch großen Zahlenbereichen erheblich ineffizienter. Bei der Eigenentwicklung solcher Bibliotheken musst du bedenken das sie einen enormen Zeitaufwand und Wissenstand benötigen. Ich selber entwickelte ca. 3 Jahre an meiner lib und habe in diesem Zeitraum über 4Gb an Dokumenten angesammelt. Gruß Hagen |
Re: Größte Integer-Variable?
Hallo, irgendetwas stimmt an deiner Formel nicht, du meinst doch sicherlich:
p(an)=1-(365!-(365-n)!)/365^n oder ? gruß rené |
Re: Größte Integer-Variable?
Zitat:
ich beziehe mich mal nur auf den hinteren Teil: für n=3 folgt dann
Delphi-Quellcode:
365!-(365-3)!
------------- = 365^3 365*364*363 365 364 363 ------------- = ----*-----*-----= 1*...*... 365*365*365 365 365 365 und das könntest du dann schritt für schritt berechnen! gruß! |
Re: Größte Integer-Variable?
Was ist an der Formle anders als an meiner?
|
Re: Größte Integer-Variable?
die kann man missverstehen, jedenfalls ich. :stupid:
... du kannst die berechnung aber auch so durchführen: (M=pi entspricht produktzeichen) M(k=0..n)=(1-k/365)^k n=2 => M=((1-0/365)^0)*((1-1/365)^1)*((1-2/365)^2) gruß rene |
Re: Größte Integer-Variable?
hallo Nicolai1605
wie hast du es denn jetzt realisiert? gruß rené |
Re: Größte Integer-Variable?
Liste der Anhänge anzeigen (Anzahl: 1)
So, wie versprochen 4 praktische Funktionen und 2 halbpraktische Funktionen zum Thema Rechnen mit großen Zahlen.
Damit lassen sich Zahlen bis zu (10^2147483648)-1 darstellen und berechnen (Theoretisch, wenn man gaaanz viel Zeit mitbringt :mrgreen: ). Quellcode ist noch nicht dabei, da ich mich vor den 3 Strafen des Programmierens drücke: Optimieren, Strukturieren, Kommentieren. :drunken: Bis denne Erweiterung auf Reelle und Ganze Zahlen und Abfangen von Fehleingaben kommt in der nächsten Version. |
Re: Größte Integer-Variable?
Trotzdem wäre der QT nicht schlecht... (auch unkommentiert)
|
Re: Größte Integer-Variable?
Also Int64 schafft bis 9x10^18
Extended schafft bis zu 1.1x10^4932 |
Re: Größte Integer-Variable?
Ich brauch aber 365^365 bzw. 2^3106
|
Re: Größte Integer-Variable?
da sagt mein Taschenrechner:
Error: Overflow. Der kann nur bis 10^99 *g* |
Re: Größte Integer-Variable?
ich schaffe (1x10^2147483648)-1 ! Also etwas :-D mehr als Extended!
|
Re: Größte Integer-Variable?
365^365=172542277632122737559895849663573864796679 83437847939938563481785851424023385637051897539230
75035974875158775542724004233909047244752131293832 56571734521752761522455219286852015259932541676633 41514519892888904917146005801395963582625898509608 98645756592395725554379776567871434784382986995752 80824310927416454850159603351152612899693013477557 14803571488871121346614749855590486883795660824966 47493756678799211489350885733213726182153186218494 20733459386638493237148318471142878922179172279841 83930593514152586871192242700598783287017487487765 55330544492620123172981297111394462336647971055556 89165137283519246240241333680255598722713995635104 59708557216405820031273973241186180378370923425940 4 09056636287146680400467219336091320128145755998343 54950278239604949911499526940394708909106151962021 6 74790296426613120255836465655776825359869391700568 00966958628105171291336507223938563485237929534987 9 62043590670191406388767063617706298828125 Eine sehr sinnvolle Zahl. |
Re: Größte Integer-Variable?
Danke aber in meiner Rechnung (s.o.) brauche ich 365^n (0<n<366) also wären die Exponenten nicht schlecht!
|
Re: Größte Integer-Variable?
Delphi-Quellcode:
So schwer ist das doch nicht! :wall:
var i:integer;
uses kubmstrings; procedure bla; var i:integer; basis,exponent:string; begin s:='1'; basis:='365'; exponent:='365' for i:=1 to exponent do begin s:=multstr(s,basis); end; result:=s; end; |
Re: Größte Integer-Variable?
War mir schon klar, aber ich meine nur das dein Ergebis von oben mir nichts brachte!
O bwohl hier ein Fehler drin ist! Zitat:
|
Re: Größte Integer-Variable?
:stupid: *lacht* Stimmt, das kommt davon, wenn man auf numerische Variablen verzichten möchte und sich die ganze Zeit mit Strings rumgeschlagen hat! :-D
Mehr Rechte für STRINGS als Zählvariablen in Schleifen! |
Re: Größte Integer-Variable?
Kannst du nicht eingfach mit unausgerechneten Potenzen rechnen? Also mit irgendwelchen Potenzgesetzen? Das sollte doch kein Problem sein.
Ich kenne da aber jemanden, den ich mal fragen kann, wie man sowas in der Richtung realisieren könnte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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