Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699

Mit sehr großen Zahlen rechnen?
Verfasst am: 20.05.2008, 20:44

Hat jemand ne Idee wie man das machen könnte?

(Ich spreche hier von 1000- und mehrstelligen Zahlen)
zB 100000! oder so^^
_________________
 
nicok
Poster
Poster

Anmeldedatum: 15.05.2008
Beiträge: 161


Verfasst am: 20.05.2008, 21:39

100k ist doch keine große Zahl oO

Wie weit bist/warst du in der Schule?
Vllt sagt dir 8*10^-31 was.
 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 20.05.2008, 23:24

lol 8*10^-31 ist aber klein, nicht groß Very Happy

Hmm, schon mal probiert ob ULong reicht(64Bit)? Ansonsten sind eigentlich alle Datentypen an gewisse Grenzen gebunden. Ansonsten einfach mal mit Objectvariablen probieren, kA.
Ansonsten kenne ich keine Möglichkeit in VB.NET, da würde die C++ wahrscheinlich mehr Freiraum lassen.

Nur nebenbei, auf Geschwinigkeitswunder darftst du bei deiner Berechnung allerdings nicht hoffen Wink
 
tr4st
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 486


Verfasst am: 20.05.2008, 23:58

 
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699


Verfasst am: 21.05.2008, 12:37

@nicok
omg. wie weit bist du in der Schule?

100000! = 100000 Fakultät = 2,8242294079603478742934215780245 * 10^456573

Dass die Zahlen-Datentypen nicht ausreichen ist mir schon klar. Ich rede von Rechnen mit Strings.

//beliebig viele Nachkommastellen gehen ja auch
http://www.activevb.de/rubriken/kolumne/kol_21/pi.html

Also muss das ja auch irgendwie gehen. :/
 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 21.05.2008, 13:54

Darf man fragen für WAS du solche Berechnungen benötigst. Da wäre es doch gleich besser auf C++ zurückzugreifen, anstatt mit Strings zu arbeiten.
Habs mal getestet, mit den Standartdatentypen kann man maximal die Fakultät bis 170 (7,25...*10^306) berechnen. Da brauchst du auch nicht mit Strings anfange, da die interne Typenumwandlung die Zahlen in Double umwandelt, und der nur bis ^308 geht.
 
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699


Verfasst am: 21.05.2008, 14:10

Wollte ne Benchmark Funktion basteln die e berechnet.

e = 1 + 1/1! + 1/2! + 1/3! + 1/4! usw. bis unendlich
 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 21.05.2008, 14:22

lol ok ^^
hab aber ne Formel gefunden, die nicht genau den Wert berechnet, aber relativ genau ist.

Hier mal der Source

Visual Basic: [code]Sub loga(ByVal n As Double)
'N! = a * 10^y
'y >0
'1 < a < 10
'log( N!) = Log(2) + log(3) + ... + log(N) = x * log(10)

Dim nfak As Integer

For i As Integer = 1 To n
nfak += Math.Log(i)
Next

Dim x As Double = nfak / Math.Log(10)
Dim y As Integer = x
Dim komma As Double = x - y
Dim a As Double = Math.Exp(Math.Log(10) * komma)

Dim result As String = a & " x 10 ^ " & y
MsgBox(result)

End Sub[/code]

Hab ungefähr eine Abweichung von einem Prozent. Also nicht wirklich viel.


http://de.wikipedia.org/wiki/Stirlingsche_Näherungsformel
 
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699


Verfasst am: 21.05.2008, 14:45

Und wie soll ich damit weiter rechnen?
_________________


 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 21.05.2008, 15:16


Mit VB wirst du da nicht viel rechen können, da musst du halt auf C++ gehen, der dir mehr Möglichkeiten in Bezug auf Datentypen liefert. Da ist bei VB schon relativ schnell Schluss.
Bis n=170 kannst du noch rechnen, da das noch in Double aufgenommen werden kann. Weiter wirst du mit der normalen Berechnung nichtkommen. Und das Ergebnis aus der Stirling Formel kann man auch nicht weiterverwenden, da das in keinen Datentyp mehr passt.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: zahlen, rechnen, großen, 100000, 1000

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge lotto zahlen generator 686 03.12.2007, 09:18
Keine neuen Beiträge zahlen 1 zu 0001 umwandeln 299 24.11.2007, 14:04
Keine neuen Beiträge Addieren von Zahlen 576 22.08.2007, 19:36
Keine neuen Beiträge Zufällige Zahlen 690 29.06.2007, 14:08
Keine neuen Beiträge Aus text zahlen.. 561 30.05.2007, 14:09
 



[ Time: 0.4263s ][ Queries: 119 (0.0935s) ][ GZIP on - Debug on ]