Zaiendo Wir sind die Community


Neueste Ankündigungen:
Zaiendo.de ist auf FaceBook und Youtube.

Witz des Tages:
"Würden Sie meine Tochter auch heiraten, wenn sie kein Geld hätte?" "Natürlich!" "Dann wird nichts draus. Dummköpfe kann ich in meiner Familie nicht gebrauchen."

Teilen auf:
Twitter Facebook Stumble Upon Delicious Google

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Turbo Pascal
#1
Hi, hat von euch jemand einen Lösungsvorschlag für dieses Rätsel. Es soll progarmmiert werden, z.b. in PHP, HTML oder Turbo Pascal...

Gesucht wird eine 9-stellige Zahl, die folgende Bedingungen erfüllt:
1. Es kommen nur die Ziffern von 1 bis 9 vor (also keine 0)
2. Jede Ziffer kommt in dieser Zahl genau einmal vor
3. Liest man jeweils die ersten x Stellen als eigenständige Zahl, so muss diese glatt (ohne Rest) durch die Stellenanzahl (x) teilbar sein, wobei x=1..9.

So nen Ansatz habe ich schon:
auf der ersten Stelle kann z.b. jede Zahl stehen da alle durch EINZ teilbar sind.

An der zweiten Stelle können alle zweistelleigen Zahlen stehen, da nur diese durch ZWEI Teilbar sind. (z.B. 12, 14, 24, ...bis hoch zu 98)

....

An der fünften Stelle können nur Zahlen stehen, die durch FÜNF Teilbar sind.
z.B.: 12345, 16795, 72395......

Dabei fallen dann natürlich wieder Zahlen wie 17425 raus, da an der zweiten Stelle eine "7" steht und diese ja nicht durch ZWEI Teilbar ist.

...

...

...

Habt ihr die Logik verstanden?

Ausgezeichnet!

Wer kann dieses Rätsel mittels Turbo Pascal lösen? Ich werde mich am Wochenende selber mal hinsetzten und nach eine Lösung suchen, wäre aber durch eure Unterstüzung der sehr erfreut. Smile

Gruß Jack Daniel

EDIT: Ich hatte mich etwas verschrieben.
Antworten
#2
Hast du shcon eine Lösung gefunden?
Sonst setz ich mich da mal mit Php dran.
WEBMASTER- Wir rocken das Internet!
Knuddel euch alle ganz doll! [Bild: sascia_sig.gif]
Antworten
#3
Hi, ich habe gerade eben nochmal meinen ersten Beitrag abgeändert. Ich hatte mich von der Logik her etwas vertan.

So nun zu deiner Frage Wink Nein, momentan habe ich noch keine Lösung gefunden. Es wär echt cool, wenn du eine finden würdest Big Grin

Gruß Jack Daniel
Antworten
#4
Hmm, also ich bin da etwas ratlos Big Grin
Matheschwäche macht sich bemerkbar...
Wäre soetwas vielleicht mit Excel möglich? Wenn man eine Art Tabelle erstellt?
[Bild: zaiendosig.php]
Antworten
#5
Hi, habe heute in der Schule mit einigen Freunden das Rätsel mal per Tascherechner gelöst:

Gesucht wird eine 9-stellige Zahl, die folgende Bedingungen erfüllt:
1. Es kommen nur die Ziffern von 1 bis 9 vor (also keine 0)
2. Jede Ziffer kommt in dieser Zahl genau einmal vor
3. Liest man jeweils die ersten x Stellen als eigenständige Zahl, so muss diese glatt (ohne Rest) durch die Stellenanzahl (x) teilbar sein, wobei x=1..9.

Ansatz:
Am einfachsten ist die fünfte Stelle der gesuchten Zahl. Da die „0“ nicht vorkommt, kann an der fünften Stelle nur die Zahl 5 stehen.
Ein weiterer wichtiger Punkt der gesuchten Zahl ist, dass immer abwechselnd eine gerade und eine ungerade Zahl hintereinander stehen. (1,3,7,9 ungerade und 2, 4, 6, 8 gerade)

Einstellige Zahl:
Bisher sind alle Zahlen mögliche, da sich alle durch „1“ teilen lassen. (Zahl 5 bereits vergeben)

Zweistellige Zahl:
Da es momentan noch zu schwer ist, für 2 Ziffern eine Regel zu finden, konzentriert man sich erst einmal auf die ersten drei Ziffern:

Dreistellige Zahl:
Ziffer 1: ungerade, keine 5
Ziffer 2: gerade, aber keine 0
Ziffer 3: Ziffer ungerade, von Ziffer 1 verschieden, keine 5
(Die Quersumme muss durch 3 Teilbar sein, es ergeben sich also 20 Möglichkeiten.)

Vierstellige Zahl:
Bei der vierstelligen Zahl sind nur die Ziffern 3 und 4 wichtig.

Ziffer 3: ist 1, 3, 7, 9
Ziffer 4: ist 2, 4, 6, 8
Ziffer 4 ist entweder 2 oder 6, da Zahlen wie: 14, 34, 74, 94 nicht durch 4 teilbar sind. (Die zweistellige Zahl muss sich durch vier teilen lassen)

Fünfstellige Zahl:
Die Ziffer ist bereits 5
Sechsstellige Zahl:
Die Quersumme muss sich durch drei Teilen lassen, ohne dass ein Rest entsteht. Die ersten drei Ziffern haben dies bereits erfüllt. Es bleiben also nun die Ziffern 4, 5 und 6.
Ziffer 4: 2 oder 6
Ziffer 5 : 5
Ziffer 6: 2, 4, 6, 8 (andere Zahl als Ziffer 4)

Wenn Ziffer 4 = 2 dann Ziffer 6 = 8
Wenn Ziffer 4 = 6 dann Ziffer 6 = 4

Damit haben wir selbst für die Ziffernfolge von 1-6 immer noch nur 20 verschiedene Möglichkeiten....

Siebenstellige Zahl:
Keine Regel fürs „teilen“. Die Zahl der möglichen Kombinationen erhöht sich auf 40 Stück.

Achtstellige Zahl:
Ziffer 6: 4 oder 8
Ziffer 7: Ungerade, keine 5
Ziffer 8: Gerade, von #6 verschieden

Die Zahl muss insgesamt durch 8 teilbar sein.
folgt: probiert man diese Zahlen durch, bleiben 8 Möglichkeiten

Neunstellige Zahl:
Erschließt sich am Ende von alleine.


Wenn man nun die 8 Kombinationen mit den zuvor möglichen 40 Kombinationen schneidet, dann bleiben nur 12 Kombinationen übrig. Da hiervon allerdings die Zahlen an der siebten Stelle durch sieben teilbar bleiben müssen, bleibt nur eine Lösung übrig. Die gesuchte Zahl lautet: 81654729


Naja um es in Turbo Pascal zu programmieren, habe ich einfach noch zu wenige Kenntnisse...
Antworten
Registriere dich (kostenlos) um diese Werbung zu verbergen.
#6
Ich programmiere kein TP, aber Delphi. Soweit ich das sehen kann, braucht man hier eine riesige Verkettung von If-Anweisungen.
Es sollte eigentlich gut machbar sein, aber so ein Quelltext wird schnell unübersichtlich...

Mit dem Problem, zu prüfen ob eine Zahl teilbar ist schau dir mal das an: (Delphi Quelltest, sollte aber in TP ähnlich aussehen)

Code:
if Zahl mod 3 = 0 then
begin
blubb;
end;

"mod" teilt die beiden Zahlen (hier Variable "Zahl" durch 3) und gibt die Stellen nach dem Komma zurück. Ist der Wert 0, ist die Zahl durch 3 teilbar.

Noch ein Tipp:
Eine Funktion zum prüfen ob die 5. Stelle fünf ist sollte an den Anfang. Gefolgt von einer Funktion die prüft ob in der Zahl eine Null steckt.

Man könnte den Quelltext auch direkt in die Procedure schreiben, aber dann würde der Quelltext noch komplizierter werden, deswegen am besten eine Function schreiben. Wink

Ich muss jetzt, weg, aber werde nachher noch ein wenig überlegen. Smile
I'm sorry, Dave. I'm afraid I can't do that.
Antworten
#7
mmh ja sieht fast wie in Turbo Pascal aus... aber schade, dass du es nicht komplett gelöst hast... Wink

trotzdem danke...
Antworten


Verlinke dieses Thema:

Teile es auf:
Twitter Facebook Stumble Upon Delicious Google GMail LinkedIn



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste