AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

größerer Datentyp als Extended

Ein Thema von Mussi0 · begonnen am 4. Sep 2006 · letzter Beitrag vom 5. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Mussi0

Registriert seit: 8. Jun 2006
55 Beiträge
 
#1

größerer Datentyp als Extended

  Alt 4. Sep 2006, 23:54
Hallo zusammen,

ich bin gerade an meine Grenzen gestossen und zwar soll mein Programm ein Palindrom erstellen.
Also sowas z.B. :

789 + 987 = 1776
----------------------------------------------------------------
1776 + 6771 = 8547
----------------------------------------------------------------
8547 + 7458 = 16005
----------------------------------------------------------------
16005 + 50061 = 66066
----------------------------------------------------------------
----------------------------------------------------------------
PALINDROM: 66066

Mein Problem ist nun, es kann natürlich sein das dass Palindrom so groß wird das es 1. nicht mehr in
den Integer-Wert passt 2. nicht mehr in den Extended-Typ.

Es wäre schön wenn Ihr mir helfen könntet!!!

Gruß
Muss!0
Wer die anderen neben sich klein macht ist nie groß.
von Johann Gottfried Seume

Website: http://mussio.funpic.de
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: größerer Datentyp als Extended

  Alt 4. Sep 2006, 23:56
Moin!

Dafür gibt es mehrere sg. Hier im Forum suchenBigInt Units

  Mit Zitat antworten Zitat
Mussi0

Registriert seit: 8. Jun 2006
55 Beiträge
 
#3

Re: größerer Datentyp als Extended

  Alt 4. Sep 2006, 23:59
Ahh...Danke das ging echt schnell..

ehmmm...wie funktioniert das denn?? muss ich dann die Unit einbinden und
dann auf die Funktionen darin zugreifen?

Gruß
Muss!0
Wer die anderen neben sich klein macht ist nie groß.
von Johann Gottfried Seume

Website: http://mussio.funpic.de
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: größerer Datentyp als Extended

  Alt 5. Sep 2006, 00:09
Im Prinzip funktionieren die Units alle gleich. du bindest sie ein und kannst dann mit
Foo := TBigInt.Create('1234567890'); oder ähnlich einen BigInt erstellen und mit den Funktionen die in der Unit deklariert sind damit rechnen, z.B.
Foo1.Add(Foo2) Das genaue verfahren ist allerdings von Unit zu Unit natürlich unterschiedlich

  Mit Zitat antworten Zitat
Mussi0

Registriert seit: 8. Jun 2006
55 Beiträge
 
#5

Re: größerer Datentyp als Extended

  Alt 5. Sep 2006, 10:14
ahh...jetzt hab ichs verstanden, also wie ich die
Units einbinde und im allgemeinen Nutze wusst ich schon
nur leider konnte ich nichts damit anfangen wie ich
diese BigInt-Unit nutze!!!

Vielen Vielen Dank das hat mir sehr geholfen....

Gruß
Muss!0
Wer die anderen neben sich klein macht ist nie groß.
von Johann Gottfried Seume

Website: http://mussio.funpic.de
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: größerer Datentyp als Extended

  Alt 5. Sep 2006, 13:18
Suche mal nach meinem DECMath, das dürfte für dich intuitiver zu benutzen sein und bei weitem schneller als TBigInt in den mathm. Berechnungen. http://www.michael-puff.de/Developer...agen_Reddmann/ -> Datei DEC_5_1c.zip

Aber mal ne andere Frage:

Wie erzeugst du deine Palindrome mathematisch ? also mit welchem Algorithmus ?

Ich frage weil du nämlich dafür garnicht rechnen musst, also garkeine BigInt/IInteger oder sowas benötigst.
Betrachte mal deine Zahlen einfach als Strings die nur aus Ziffern bestehen können. Wir wissen zb. das wenn die Ziffern '5' +'3' = '8' erzeugt werden an letzter Stelle im String, das logischerweise an erster Stelle im String also eine '5' +'3' = '8' stehen muß. Dein Problem reduziert sich bei Strings mit gerader Länger also auf eine reine Spiegelung und eben die ausschließliche Berechnung von einzelnen Ziffern als Zeichen.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#7

Re: größerer Datentyp als Extended

  Alt 5. Sep 2006, 15:46
Beispiel:

wir gehen Top-Down vor, also erzeugen per Zufall einen Zahlen String wie zb.

"2345" und spiegeln diesen -> "2345" + "5432" ergibt "23455432". Nun wollen wir 2 Palindrome erzeugen die addiert exakt diese Zahl ergibt. Wir nehmen "12044021" und erzeugen

"2" - "1" = "1"
"3" - "2" = "1"
"4" - "0" = "4"
"5" - "4" = "1"

unser Palindrom ist also "11411411" + "12044021" = "23455432", fertig ohne Berechnungen großer Zahlen.

Klar dürfte sein das dieser einfach Algo. nicht alle Palindrome erzeugen kann, aber eben sehr viele und sehr große ohne aufwendige Zahlenberechnungen und auf direktem Wege ohne Trial&Error !

Gruß Hagen
  Mit Zitat antworten Zitat
Mussi0

Registriert seit: 8. Jun 2006
55 Beiträge
 
#8

Re: größerer Datentyp als Extended

  Alt 5. Sep 2006, 16:23
Hallo...

wenn ich doch nun 2345 habe als Integer bzw. überhaupt als Zahlwert kann ich diesen dann
doch zur Laufzeit dann in einen String umwandeln diesen dann "umdrehen" und dann wieder in eine Zahl und diese
dann addieren also dann: 2345 + 5432 = 7777 und nicht 23455432 sicher ist dies auch ein
Palindrom ABER ein schriftlicher und nicht (wie ich es möchte einen mathematischen!!).

Aber ich werde mich jetzt mal umsehen nach dieser DECMath und werde es damit probieren
trotzdem vielen Dank!!!

Gruß
Muss!0

PS: Könnte ich nicht einfach ohne eine Zahlenwert-Variable zu nutzen 2 Strings nehmen und die
einzelnen Stellen darin wie im dritten Schuljahr zusammenaddieren? Oder dürfte diese Methode
zu langsam sein?

Hatte was vergessen!!
Wer die anderen neben sich klein macht ist nie groß.
von Johann Gottfried Seume

Website: http://mussio.funpic.de
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: größerer Datentyp als Extended

  Alt 5. Sep 2006, 17:18
Zitat:
PS: Könnte ich nicht einfach ohne eine Zahlenwert-Variable zu nutzen 2 Strings nehmen und die
einzelnen Stellen darin wie im dritten Schuljahr zusammenaddieren? Oder dürfte diese Methode
zu langsam sein?
Ja kannst du, dies wäre mein nächster Vorschlag gewesen um mathematische Palindrome zu erzeugen. Du baust quasi einen Addierer für Dezimalzahlen -> Strings die Dezimalzahlen enthalten.

Aber sag mal, oben baust du ein Palindrom indem du sukzessive so lange gespiegelte Zahlen addierst bis ein echtes Palindrom entsteht. Ist dies Absicht und eine gundlegende Bedingung für deinen Algo ?

Wenn nicht dann kanst du so ein Palindrom in jedem Falle direkt berechnen, das beduetet dann auch das du nur die gewünschte Anzahl an Ziffern eingibst und ein Palindrom per Zufall erzeugt würde, in einem Schritt. Bei deiner Methode kann es sehr sehr lange dauern bis man ein großes Palindrom erzeugt hat.

Übrigens im DECMath DEMO findest du einen Algo. für Automorphe Zahlen, das sind Zahlen der Form X' = X^2 wobei alle Ziffern von X als Ziffern in X^2 enthalten sind. Zb.

Code:
X =                                                            42576 57676 91038 90995 89338 00226 07743 74008 17871 09376
X² = 18127 64889 37539 71252 85535 50988 19268 32151 66459 22506 42576 57676 91038 90995 89338 00226 07743 74008 17871 09376
Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: größerer Datentyp als Extended

  Alt 5. Sep 2006, 17:28
Du könntest vorerst auch einfach einen Int64 verwenden, derreicht für die normalen Sachen bestimmt auch ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz