Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hohe Potenzen genau berechnen

Hohe Potenzen genau berechnen
02.08.2013 13:55:35
Pedron
Hallo zusammen,
wieder mal benötige ich euere Hilfe. Ich muss für einen Kurs als Hausaufgabe 2 Potenzen berechnen lassen.
einmal 2 hoch 200 und einmal 2 hoch 2337
Dieses jedoch GENAU. Leider fängt Excel ab 2 hoch 50 zu runden. Kann mir jemand sagen wie ich dieses runden umgehe?

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
2 hoch 2337
02.08.2013 14:02:44
Rudi
Hallo,
das geht in Excel ohnehin nicht.
Gruß
Rudi

AW: 2 hoch 200
02.08.2013 15:29:50
Walter
Hallo,
Hab ich irgendwann mal errechnet,
2^200
1606938044258990275541962092341162602522202993782792835301376
weiß aber nicht mehr Wie "merde"
Gruß
Rentner Walter

Anzeige
Mit Geduld und nem A3 Block
02.08.2013 17:43:52
Jack
Kariertem Papier geht's allemal ;-)
Immer schon Schritt für Schritt.
Und wenn ich richtig auf dem Schirm hab hast ja eh das ganze Wochenende zeit ;-)

AW: Mit Geduld und nem A3 Block
02.08.2013 17:46:07
Pedron
ähm nun das am PAPIER rechnen würde zwar gehen entspricht aber nicht der gestellten Aufgabe. Die hies nämlich:
Diese Potenzen KORREKT ohne zu runden in Excel rechnen lassen.

AW: Mit Geduld und nem A3 Block
02.08.2013 23:50:17
Matze
Hi Petron,
glaubst du Rudi nicht?
Formatiere die Zelle als Zahl ohne Kommastellen.
Alleine diese "mörderische" Zahl die entsteht ist gar nicht darzustellen,
weil die Spaltenbreite dafür gar nicht ausgelegt ist.
Vielleicht alle Zellen einer Zeile als Verbundene machen?
2 hoch 1023 ergibt 8,9885E+307, danach verabschiedet sich Excel mit #Zahl
Ich wollte ja mal wissen wie weit das langt. Wie spricht man die Zahl aus?
Matze

Anzeige
AW: Mit Geduld und nem A3 Block
03.08.2013 09:47:24
Pedron
Hallo Matze,
nun mittlerweile denke ich, dass dies das eigentliche Problem der Aufgabe war (wohl die Rache weil ich den Dozenten innerhalb einer Stunde 4 mal korrigieren durfte :-)).
Fakt ist das es mittels Makro berechnet werden kann, ich hab mittlerweile auch eins das dies macht, nur wird hier das Ergebnis in einer Messagebox ausgegeben, was wiederum ja nicht 100%ig der Aufgabe entspricht (denke aber das er mit genau dieser Lösung rechnet).
Nach längerer Suche fand ich dann ein Add-in welches basierend auf dem Karatsuba-Algorhythmus, einige neue Funktionen zu Excel hinzufügt unter anderem eine Formel namens GZPotenz (denke das soll heissen Große Zahlen Potenz^^). Diese Formel berechnet sehr schnell auch utopische hohe Potenzen ganz normal in einer Zelle und zeigt diese Ergebnisse auch über die maximale Spaltenbreite an.
Nur so am Rande 2 hoch 2331 ergibt eine 702- stellige Zahl.
Das Addin kann 1024 stellige Zahlen anzeigen, alles was drüber geht wird NICHT mehr angezeigt aber es wird korrekt weitergerechnet, oder wenn man die Zelle kopiert und in Word einfügt hat man dann immer die ganze Zahl.
Ich denke mal diese Lösung des Problems sollte denen langen^^.
Ich danke aber allen die geholfen haben.

Anzeige
Also ich bin Sprachlos,...
03.08.2013 10:23:06
Matze
Moin Pedron Anton,
..das es dann wohl doch funktioniert. Ich werde wohl nie damit etwas zu tun bekommen.
Wäre es zu viel verlangt deine Lösung hier einzustellen, danke.
Matze

AW: Also ich bin Sprachlos,...
03.08.2013 12:09:06
Pedron
Hallo Matze
da ich jetzt nicht weiss WELCHE Lösung du meinst geb ich dir mal beide.
Also das Addin fand ich als ich nach Excel große Potenzen gegoogelt habe. Dort war ein Treffer dabei von einer andern Excelhilfsseite, der Autor dort hatte in mehreren Teilen erklärt wie man Excel überreden kann mit Riesenzahlen zu arbeiten. Teil 5 seiner Reihe war dann die Vorstellung des Addins dort war auch der Link dazu (ich nenne ihn hier nicht weil ich ned sicher bin ob das erlaubt ist). Mit dem addin wars dann ne Sache von nicht mal einer Minute das in Excel rechnen zu lassen.
Solltest du nur wissen wollen WAS bei 2 hoch 2331 rauskommt, nun das wäre dann:
502249939076847322365274589508828161408676805383584178531413871344213148904540016402648876573967425302920188384621103349009310938578719045238648838524146994609246605772593509063470010786259060778882772794968575379291919706534607536480791025304753444288417079647481011580652529533585985746503167431109906911898504893303202573264338293168865938430461020940569192581740315589244264106340986286216133704248721133268534506885496789870112660898545162639144136066831990666594153830410343059620340427506091371571765116346838976664460403936256380653263745288675054892946095689952537257352597447977166258038864425093230946586935815675441691430420484883979136187096831552583382978992433089638503419886946010267648

Anzeige
AW: Also ich bin Sprachlos,...
03.08.2013 12:12:04
Pedron
Sorry die Zahl hat sich so nicht korrekt hier rein kopieren lassen ich hab sie jetzt unterteilt in Zeilen, ich hoffe das ist so dann ersichtlich.
502249939076847322365274589508828161408676805383584178531413871344213148904540016402648876573967425302920
188384621103349009310938578719045238648838524146994609246605772593509063470010786259060778882772794968575
379291919706534607536480791025304753444288417079647481011580652529533585985746503167431109906911898504893
303202573264338293168865938430461020940569192581740315589244264106340986286216133704248721133268534506885
4967898701126608985451626391441360668319906665941538304103430596203404275060913715717651163468389766644
6040393625638065326374528867505489294609568995253725735259744797716625803886442509323094658693581567544
1691430420484883979136187096831552583382978992433089638503419886946010267648

Anzeige
2 hoch irgendwas - per Formel oder VBA
03.08.2013 12:47:58
Erich
Hi Anton,
auch wenn das Problem wohl gelösgt ist:
Mit eigentlich recht einfachen Mitteln geht das sowohl in Excel aus auch in VBA.
Hier eine Excel-Variante:
 BDBE
201
302

Formeln der Tabelle
ZelleFormel
BD3=2*RECHTS(BD2;13)+(BE3>9999999999999)
BE3=2*RECHTS(BE2;13)+(BF3>9999999999999)


 ABCD
23392337 321439961009182
2340Ende 321439961009182

Formeln der Tabelle
ZelleFormel
C2339=2*RECHTS(C2338;13)+(D2339>9999999999999)
D2339=2*RECHTS(D2338;13)+(E2339>9999999999999)
C2340=RECHTS(C2339;12)
D2340=RECHTS(D2339;13)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Die Zellen C2:BD2 werden manuell mit Nullen gefüllt, in BE2 wird eine 1 eingetragen.
Die Formel von BE3 kann nach links buis Spalgte C und nach unten bis Zeile 2339 kopiert werden.
In BE2340 schreibe ich eine 13 (Teilstring-Länge), die Formel von D2340 wird nach rechts kopiert bis Spalte BE.
Und hier das 704stellige Ergebnis von 2^2337:

123456789.123456789.123456789.123456789.123456789.
32143996100918228631377573728565002330155315544549
38742601048776602964152989056104976952810073391521
93868920566157506143365959000690380188952735256655
45407654991782769445984580062080690320579889848497
45887798882427468286121821488233477062561950422043
44586930974387847411617618901495030877762027155910
34042361504313171404964688917650762807420059549505
34019642832523138019771163290280582312231783255707
19181525291862084406717945516872102975068904089052
24708277247402662025845146261955815701787360389847
78059296744619769450652546585192040836180887969847
52035131485501241569623844705662366705386405144873
23205966780581563892203228268251546911032574664715
97419721936533651065551571773686421887276454465712
9472
Und nun noch eine VBA-Lösung.
Die kann man einfach auf ein leeres Blatt laufen lassen:

Sub ZweiHochViel()
Dim nn As Integer, ss As String, ii As Integer, zz As Long
Dim dd As Double, ee As String, tt As String, pp As Integer
nn = 40      ' Beginn mit kleinerem nn geht auch
ss = 2 ^ nn
With Sheets("mitVBA")
For nn = 40 To 2337
pp = 0
ee = ""
zz = zz + 1
.Cells(zz, 1) = nn
.Cells(zz, 2) = Len(ss)
.Cells(zz, 3) = ss
For ii = Fix((Len(ss) - 1) / 10) To 0 Step -1
tt = Mid(ss, 10 * ii + 1, 10)
dd = 2 * tt + pp
pp = -(Len(CStr(dd)) > Len(tt))
If ii = 0 Then
ee = dd & ee
Else
ee = Right(Format(dd, "00000000000"), Len(tt)) & ee
End If
Next ii
ss = ee
Next nn
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
kleiner Zusatz und Beispielmappe
03.08.2013 13:14:31
Erich
Hi zusammen,
der Satz "In BE2340 schreibe ich eine 13 (Teilstring-Länge)" war falsch. Die 13 steht in Zelle BE2341,
aber diese Zeile habe ich ansonsten gar nicht erwähnt.
Damit niemand unnötige Arbeit mit dem Eintragen der Formeln hat, hier eine BeiSpielMappe:
https://www.herber.de/bbs/user/86700.xlsm
Damit sie nicht zu groß fürs Forum wird, habe ich die meisten Formeln gelöscht.
Die müssen eben neu kopiert werden.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: kleiner Zusatz und Beispielmappe
03.08.2013 14:30:22
Pedron
Hallo Erich,
erst mal ein RIESENGROßES Dankeschön für deine Mühe. Das Makro hab ich nicht verwendet, da ich hier schon eines hatte. Aber die Lösung ohne Makro ist zu 100% genau das was ich gesucht habe. Ich verstehe auch wie es arbeitet und bin so in der Lage das auch für andere Zahlen zu generieren. Also war das eine perfekte Hilfe von dir.

Anzeige
2 hoch irgendwas - als Funktion
03.08.2013 13:49:47
Erich
Hi,
hier noch eine Funktion, die auch in Tabellenblättern verwendbar ist:

Function ZweiHoch(zz As Integer) As String
Dim bb As Integer, nn As Integer, ss As String, ii As Integer
Dim dd As Double, ee As String, tt As String, pp As Integer
bb = Application.Min(zz - 1, 40)
ss = 2 ^ bb
For nn = bb To zz - 1
pp = 0
ee = ""
zz = zz + 1
For ii = Fix((Len(ss) - 1) / 10) To 0 Step -1
tt = Mid(ss, 10 * ii + 1, 10)
dd = 2 * tt + pp
pp = -(Len(CStr(dd)) > Len(tt))
If ii = 0 Then
ee = dd & ee
Else
ee = Right(Format(dd, "00000000000"), Len(tt)) & ee
End If
Next ii
ss = ee
Next nn
ZweiHoch = ee
End Function
Aufruf in der Tabelle z. B. mit: =ZweiHoch(A3)
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: 2 hoch irgendwas - als Funktion
04.08.2013 12:49:52
Pedron
Hy Erich
hier letzte Infos für dich.
ALLES läuft perfekt. Makro die Berechnung einfach alles. Dank der Berechnung konnte ich jetzt einen Racheplan in die Wege leiten :-D
Ich hab die Berechnung erweitert auf 2 hoch 33252 Ergebnis ist eine 340 MB große Exceldatei die in der letzten Zeile als Ergebnis eine 10010-stellige Zahl hat. Ich auf meiner doch hochgezüchteten Rechenmaschine brauch scho ne kleine Weile um die Datei zu öffnen oder zu bearbeiten (das erste mal das ich die Berechnung auf manuell setzen musste^^), die lahmen Krücken in der Schulung werden da sicher bissl länger lahmgelegt werden.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige