smash Geschrieben 6. September 2007 Teilen Geschrieben 6. September 2007 Holla. Ich möchte in C# einen Array mit sehr großen Zahlen initialisieren. Die Anzahl der Elemente ist so groß, dass sie nur noch in einen UInt64 passt. Bei der Initialisierung gibt es aber eine Exception die besagt das der Wert zu groß sei. - Mit welchen Datentyp wird ein Array initialisiert? - Wie groß ist die maximale Anzahl der Elemente eines Arrays? - Wie kann ich mehr Elemente bekommen? Ich hoffe Ihr könnt mir helfen, vielen Dank im Voraus. P.S. Wo kann ich erfahren wie man generell Groß-Zahl-Arithmetik in C# verwenden kann? Smash Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cadpax Geschrieben 6. September 2007 Teilen Geschrieben 6. September 2007 Wie groß soll das Array denn werden? ò.Ó Ich weiß grade gar nicht, ob der C#-Compiler die maximal größe des Arrays überprüft. Scheint so. Ich würde die Begrenzung glaub ich am Speicher sehen. - Wie kann ich mehr Elemente bekommen? Mehrdimensionale Arrays. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
smash Geschrieben 6. September 2007 Autor Teilen Geschrieben 6. September 2007 Danke für deine Antwort. Also es geht um den Bereich Primzahlen. :bimei:eek:D:old(Entschuldigung, hab getrunken) Ich hab momentan verschiedene Aufgaben. Z.B. eine Zahl mit vielen stellen zu faktorieren. Das Problem mit dem Array hatte ich allerdings bei einer Aufgabe zum RSA-Verfahren. Ich wollte einen bool Array mit vielen Elementen, die mit true / false festlegen ob eine Zahl in frage kommt (zum Teilen ohne Rest...). Ich stelle gerade fest, dass ich natürlich ein kleineres Array bräuchte, wenn ich nur infragekommende Zahlen direkt hineinschreiben würde. Ich werd die Strategie mal überdenken. Aber generell bleiben die Fragen trotzdem offen und interessant. So weit ich weiß gibts in Java Großzahl-Arithmetik!? Und ich fürchte, dass mir dabei auch keine mehrdimensionalen Arrays helfen. Oder doch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cadpax Geschrieben 6. September 2007 Teilen Geschrieben 6. September 2007 Eben ich würd es so lösen, wie du schon beschrieben hast. Array mit 0/1 als Indizes und dort dann die Zahlen reinschreiben. Allerdings kannst du ja eig. quasi alle zahlen, die false sind verwerfen, falls nicht gebraucht. Dann reduziert sich die Speicherlast weiter. Habe grade mal ein bisschen gegooglet. Der Index eines Arrays muss immer ein ordinaler Typ mit einem Wertebereich von maximal 2 GB sein. Damit wird die maximale Größe eines Arrays beschränkt. Quelle Mit freundlichen Grüßen, Cadpax Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 7. September 2007 Teilen Geschrieben 7. September 2007 Es wird aus Deiner Frage nicht ganz klar, ob Du ein Array eines Datentyps benötigst, der sehr große Zahlenwerte aufnehmen kann, oder ob Du ein Array mit sehr vielen Elementen (Einträgen) erstellen möchtest. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 17. März 2009 Teilen Geschrieben 17. März 2009 <<valle>>s ähnliches Problem mit einer anderen Programmiersprache abgetrennt und ins richtige Forum verschoben: http://forum.fachinformatiker.de/c-c/125740-grosses-array-initialisieren.html Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Franzose Geschrieben 17. März 2009 Teilen Geschrieben 17. März 2009 Falls jemand noch Interesse an der maximalen Arraygröße hat hier ein blogeintrag http://blogs.msdn.com/joshwil/archive/2005/08/10/450202.aspx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.