BigInteger-Problem

Status
Nicht offen für weitere Antworten.

MPW

Top Contributor
Hallo,

ich möchte gerne die aufgabe hier (Einsendedatum schon abgelaufen...ihr braucht euch also keine moralischen Vorwürfe zu machen, wenn ihr mir helfts:)) mal nur so zum Spaß mit Java lösen.

Kurze Zusammenfassung der Aufgabe:

Es soll (2^10)^64 gelöst werden, und die Anzahl der Stellen bestimmt werden, die diese Zahl hat.

Ich habe mir dazu follgendes überlegt:

Code:
import java.math.BigInteger;


public class BigCalculator {
	private BigInteger basis = BigInteger.valueOf(1024);
	private BigInteger ergebnis;
	
	public BigCalculator() {
		ergebnis = basis.pow(64);
		System.out.println(ergebnis.toString());
		System.out.println();
		System.out.println(ergebnis.bitLength());
	}
	public static void main(String[] args) {
		new BigCalculator();
	}

}

erzeugt:
Code:
456244061762219521864117160570029132489322850724855993057919251789927/51672086773865059128113173713997786423095735944073106/
88704721375437998252661319722214188251994674360264950082874192246603776

641
// /=von mir gemachter Umbruch zur Formatierung


2^10 ist ja 1024, das benutze ich direkt als Startwert.

Beim Exponenzieren baut Java leider nur noch Mist, die Zahl ist viel zu klein und die Stellenanzahl stimmt vorne und hinten nicht.

Frage: Kann BitInteger mit dieser Größe an Zahlen rechnen? Warum funktioniert das nicht, warum rechnet er falsch/bzw. gibt bei toString() nicht die richtige Zahl aus?(sie ist viel zu kurz, daher weiß ich, dass sie falasch ist.
[Liegt es vllt. an einer Limitierung von String?]

kann ich mit bitLength() die Anz. der Stellen bestimmen, oder muss ich das anders machen?

Danke für Antworten
 

Wildcard

Top Contributor
MPW hat gesagt.:
Beim Exponenzieren baut Java leider nur noch Mist, die Zahl ist viel zu klein und die Stellenanzahl stimmt vorne und hinten nicht.
Nicht java baut Mist, sondern du :roll:
Das Ergebnis ist korrekt, aber bitLength gibt dir eben nicht die Anzahl an Dezimalstellen zurück.
Wer lesen kann ist klar im Vorteil...
 

MPW

Top Contributor
Hm, ich habe leider die englische Beschreibung in der Api nicht genau verstanden? Wie kann ich denn die Länge bestimmen?

Mir ist auch aufgefallen, dass ich die Umgruppierung von 2^(10^64) zu (2^10)^64 garnicht machen darf.

Ich werd das nochmal überarbeiten und mich dann melden.

Wie kann ich denn allgemein gesagt, die Länge eines BigIntegers bestimen?
 

MPW

Top Contributor
Ah okay, d.h. ein String ist also nicht limitiert und ich kann beliebig große Zahlen "nach String exportieren" und String.length() aufrufen? - Danke!
 

byte

Top Contributor
Ein String wird intern als Char-Array abgebildet und ist daher beschränkt auf Integer.MAX_VALUE Zeichen.
 

MPW

Top Contributor
Hm, dann geht das so nicht....ich fürchte, dass auch das der Grund ist, warum die Zahl im BigInteger zu klein ist.

Gibt es irgendwelche Packages die mit noch größeren Zahlen rechnen können? Nur so spaßeshalber, dass man die Lösung auch anders berechnen kann, ist mir klar.
 

SnooP

Top Contributor
hmm... was kommt denn für ne Länge raus? Wenn man 1024 potenziert, wird bei jedem Mal die Länge um drei Stellen vergrößert, oder nicht? ... bei ^64 demnach 63*3 = 189 Stellen + die vier Stellen der 1024 macht 193 Stellen die rauskommen sollten (zeigt übrigens auch der windows-taschenrechner an).

Da Integer.MAX_VALUE weit davon entfernt ist, kannst du mit length locker die Länge der Zahl bestimmen...

BigInteger ist das Maximale mit was man inJ ava so rechnen kann... viel mehr ist auch in anderen Sprachen sicher nicht möglich, weil man irgendwann immer an Speichergrenzen stoßen wird... - und wenn es nur Speichergrenzen zur Indexierung z.B. eines Arrays sind.

Interessant wird das ganze übrigens dann, wenn man das ohne BigInteger programmiert ;) ... z.B. in Form von Listen, in Arrays oder mit binären Tricksereien und Fast-Exponentation...

edit: nachdem ich mir dann nochmal alles durchgelesen hab - und die Original-Aufgabenstellung gesichtet hab, hab ich dann doch gesehen, dass du eigentlich eher 2^(10^64) lösen wolltest. Was natürlich ein ganz anderer Schuh ist... ich vermute mal, dass da BigInteger auch nicht mehr mit hinkommt und du solltest das ganze über die Logarithmen lösen, wie in der Lösung angegeben... - damit sollte auch mit Java die richtige Stellenanzahl zu berechnen sein.
 

MPW

Top Contributor
Genau das ist das Problem, habe ich oben falsch geschrieben.

Mit Logarithmen kann man es natürlich lösen, aber ich dachte halt, man könnte es mal mit BigInteger versuchen...schade eigentlich.
 

Leroy42

Top Contributor
SnooP hat gesagt.:
edit: nachdem ich mir dann nochmal alles durchgelesen hab - und die Original-Aufgabenstellung gesichtet hab, hab ich dann doch gesehen, dass du eigentlich eher 2^(10^64) lösen wolltest. Was natürlich ein ganz anderer Schuh ist... ich vermute mal, dass da BigInteger auch nicht mehr mit hinkommt

:shock: Ach Jungs!

2^(10^64) sind in reiner Bitdarstellung 10^64 Bits.
Also 10^61 Bytes= 10 Dezillionen Bytes.

Ein Computer, der beinahe soviele Bits speichern kann, wie
es Atome im Universum gibt, läßt mit Sicherheit noch eine
Zeitlang auf sich warten. :autsch:
 

0xdeadbeef

Top Contributor
Also falls es noch darum geht...

Mein Calcutta sagt:
(2**10)**64 = 4.5624406176221952e+192

Also 193 Stellen bzw. voll ausgeschrieben:
4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776
 

Leroy42

Top Contributor
Hallo? Jemand zu Hause?? :shock: :cool:

In der Originalaufgabenstellung steht 2^(10^64) und das ist doch schon
ziemlich anders als (2^10)^64 = 2^640
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M BigInteger auf 128Bit kürzen Allgemeine Java-Themen 5
M BigInteger Allgemeine Java-Themen 8
T Parallelisierung zweier BigInteger-Funktionen Allgemeine Java-Themen 6
C BigInteger nach ASCII Code in String Allgemeine Java-Themen 11
G BigInteger aus DB nach einlesen in JAVA eingeklammert Allgemeine Java-Themen 3
C BigInteger in Exponentialschreibweise darstellen Allgemeine Java-Themen 2
J BigInteger und BigDecimal im Eclipse-Debugger Allgemeine Java-Themen 3
B BigInteger und Int Allgemeine Java-Themen 17
T BigInteger Bedingungsfehler Allgemeine Java-Themen 5
T BigInteger DataInputStrea Allgemeine Java-Themen 5
T "unsigned" byte[] -> BigInteger Allgemeine Java-Themen 2
J BigInteger mit Tausenderpunkt Allgemeine Java-Themen 2
D Palinddrom-Programm mit BigInteger Allgemeine Java-Themen 4
T Profifrage: java.lang.StackOverflowError bei BigInteger Allgemeine Java-Themen 27
0 Keine clone-Methode für BigDecimal und BigInteger? Allgemeine Java-Themen 3
A BigInteger for-Schleife schreiben ?! Allgemeine Java-Themen 2
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
S jserialcomm Problem Allgemeine Java-Themen 1
Flynn Thread-Problem... Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
G Problem beim GUI Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
K Threads RAM Problem Allgemeine Java-Themen 20
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
C Int Problem Allgemeine Java-Themen 8
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
C Webseiten Programm problem Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben