AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zahl auf Zahlenpalindrom hin überprüfen
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl auf Zahlenpalindrom hin überprüfen

Ein Thema von xZise · begonnen am 15. Dez 2008 · letzter Beitrag vom 16. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 15:55
Hallo ihr,

wie würdet ihr überprüfen, ob die Zahl ein Zahlenpalindrom ist? Nun ist die "String"-Variante ziemlich langsam (800 - 500 ms für die ersten 1.000.000 Zahlen (die getestet werden)). Wenn man aber die Zahlen bis 2^63-1 (also sozusagen MaxInt64) überprüft, ist man dann mehrere Jahrtausende dabei. Nun ein Teil könnte ausgeschlossen werden, wie zum Beispiel alle mit 0 endenden Zahlen (je nach Definition).

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#2

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 16:32
Wenn du alle Zahlen von 1..MaxInt64 überprüfen willst, hast du somit auch MaxInt64 Überprüfungen vorzunehmen. Nehmen wir nur einmal an, daß eine vertretbare Zeit für diese Aufgabe 1 Tag sei. Dann darf im Schnitt für jede Zahl nur 1/100000000000000000 Sekunde benötigt werden. Nehmen wir weiter an, es gäbe eine Möglichkeit, die Überprüfung einer Zahl mit einem einzigen Prozessortakt auszuführen. Dann brauchen wir bei handelsüblichen Prozessoren (ca. 3GHz) immer noch knapp 36000 Prozessoren, um diese Leistung zu erbringen.

Fazit: Die Aufgabenstellung ist heutzutage mit vertretbarem Aufwand nicht zu lösen!

Wie wärs, wenn du die Palindrome zusammensetzt? Damit schließt tu per Definition schon mal alle Nicht-Palindrome aus. Ob die Laufzeit dadurch aber in einen realistischen Bereich gelangt, weiß ich auch nicht...
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 16:37
Okay das klingt ja schon mal gut und unrealistisch. Aber wir setze ich den Zahlenpalindrome am besten "zusammen"? Außerdem muss sie durch eine beliebige andere Zahl teilbar sein (ohne Rest).

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 17:22
Zitat von xZise:
Aber wir setze ich den Zahlenpalindrome am besten "zusammen"?
- nimm eine beliebige Zahl
- konvertiere in String
- mache eine invertierte Kopie davon (= Reihenfolge der Ziffern umdrehen)
- setze beide zusammen
- in Zahl zurück konvertieren

Zitat von xZise:
Außerdem muss sie durch eine beliebige andere Zahl teilbar sein (ohne Rest).
Es hilft ungemein, wenn das Problem nicht scheibchenweise präsentiert wird...
Uwe Raabe
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 17:33
Das klingt irgendwie stark nach der Aufgabe vier des aktuellen Bundeswettbewerbs Mathematik.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 17:38
Zitat von xZise:
Außerdem muss sie durch eine beliebige andere Zahl teilbar sein (ohne Rest).
Wäre es dann nicht ein Weg alle Vielfachen der beliebigen Zahl
zu prüfen ob denn ein Palindrom vorliegt oder nicht.

Ist eine einstellige Zahl auch schon ein Palindrom?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 18:08
Zitat von Apollonius:
Das klingt irgendwie stark nach der Aufgabe vier des aktuellen Bundeswettbewerbs Mathematik.
Mag sein. Jemand hatte mich gefragt, ob es möglich wäre, ob alle Palidrome eines vielfachen zu bekommen (z.B. 81). Soweit ich weiß wollte er damit herausbekommen ob irgendwelche Zusammenhänge existieren.

Zitat von Klaus01:
[...]Wäre es dann nicht ein Weg alle Vielfachen der beliebigen Zahl
zu prüfen ob denn ein Palindrom vorliegt oder nicht.[...]
Naja das macht er sinn bei Vielfachen > 36.000, WENN der CPU nur ein Takt brauchen würde.

Zitat von xZise:
Außerdem muss sie durch eine beliebige andere Zahl teilbar sein (ohne Rest).
Es hilft ungemein, wenn das Problem nicht scheibchenweise präsentiert wird...[/quote]
Naja ich wollte EIGENTLICH nur wissen, wie man schnell ermittelt ob die Zahl n ein Palindrom ist. Dass sie noch ein vielfaches einer Zahl ist hätte ich selber hinbekommen. Erst nachdem du mir zeigtest, wie lange das dauert, habe ich gedacht, dass man da etwas rausholen könnte.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#8

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 18:12
isses wirklich so schwer?

müßten doch alle 6- und 5-stelligen Zahlenpalindroms zur Basis 10 sein?
(andere Stellenanzahlen analog)
Delphi-Quellcode:
Var i: Integer;

For i := 1 to 999 do
  If i mod 10 <> 0 Then
    Memo1.Lines.Add(Format('%d%d%d%.3d', [i mod 10, i div 10 mod 10, i div 100 mod 10, i]));
For i := 1 to 999 do
  If i mod 10 <> 0 Then
    Memo1.Lines.Add(Format('%d%d%.3d', [i mod 10, i div 10 mod 10, i]));

Zitat von Wiki:
Zahlenpalindrome bzw. Palindromzahlen sind Zahlen, deren Zahlensystemdarstellung von vorne und hinten gelesen den gleichen Wert hat, z. B. 1331 oder 742247
aber wieso dann?
Zitat von xZise:
Außerdem muss sie durch eine beliebige andere Zahl teilbar sein (ohne Rest).
bzw ist das überhaupt möglich?

[edit]
na toll, kaum macht man mal nebenbei noch was, schreiben Andere och sowas ... nur früher -.-°

[add]
billige Lösung ... und dann noch die anderen Stellenanzahlen durchgehn
Zitat:
ob alle Palidrome eines vielfachen zu bekommen (z.B. 81).
Delphi-Quellcode:
For i := 1 to 999 do
  If i mod 10 <> 0 Then Begin
    If (i + i mod 10 * 100000 + i div 10 mod 10 * 10000 + i div 100 mod 10 * 1000) mod 81 = 0 Then
      Memo1.Lines.Add(Format('%d%d%d%.3d', [i mod 10, i div 10 mod 10, i div 100 mod 10, i]));
    If (i + i mod 10 * 10000 + i div 10 mod 10 * 1000) mod 81 = 0 Then
      Memo1.Lines.Add(Format('%d%d%.3d', [i mod 10, i div 10 mod 10, i]));
  end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#9

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 18:24
Zitat von Apollonius:
Das klingt irgendwie stark nach der Aufgabe vier des aktuellen Bundeswettbewerbs Mathematik.
War auch schon dabei, was über Teilbarkeitsregeln von mir zu geben, aber dann ist mir durch den Kopf, dass das bestimmt sowas ist, weil mans eigentlich nur für Wettbewerbe braucht (und diese nunmal in der Regel selbstständig oder in Gruppen zu bearbeiten sind). Dachte erst an Informatik, aber wenn da mitlerweile die Aufgaben der 2ten Runde raus wären, wüsste ich das schon.
Ein Programm nützt hier zwar recht wenig, da es nur nachweist, dass es Palindrome gibt, die die Bedingung erfüllen, dass steht aber auch schon in der Aufgabe (ebenso eigentlich wie man ein solches Palindrom bastelt) und ist kein Beweis dafür.
Dennoch sollte der Nachweis von sowas bei laufenden Wettbewerben nicht diskutiert werden.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Zahl auf Zahlenpalindrom hin überprüfen

  Alt 15. Dez 2008, 19:06
Wie gesagt liefere ich damit ja keine Lösung sondern nur eine Anzahl von Palindromen.

Zu himitsu: Hmmm ... 98 mod 10 ist doch ungleich 0 oder? Aber das ist doch kein Palindrom?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  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 22:01 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