Verschlüsselung |
22.08.2005, 16:27 | Matts | Auf diesen Beitrag antworten » | |||||||||||||||||
Verschlüsselung 1. Aus den Ziffern der vierstelligen Zahl bilde ich die Quersumme. 2. Von der gebildeten Quersumme nehme ich die Einerstelle. 3. Diese Einerstelle füge ich rechts an meine vierstellige Zahl an und streiche die linke Ziffer, so dass wieder eine vierstellige Zahl entsteht. Heute ist der 14.7.2005 Ich nehme die 2005 als Ausgangszahl. Die Quersumme ist 7, die 7 anfügen, die 2 streichen. Als morgiger Code ergibt sich 0057. Übermorgen ist mein Zugangscode 0572, denn die Quersumme ist 12, die 2 anfügen, die (erste) 0 streichen usw. Frage: An welchem Datum entspricht der Zugangscode als nächstes wieder dem (dann) aktuellen Jahr, so wie es heute am 14.7.2005 der Fall ist? Ausprobieren bis zum St. Nimmerleinstag ist hier doch nicht der Sinne der Sache, oder? |
|||||||||||||||||||
22.08.2005, 16:44 | mercany | Auf diesen Beitrag antworten » | |||||||||||||||||
Soll das ein Rätsel sein oder eine Hausaufgabe |
|||||||||||||||||||
22.08.2005, 17:16 | AD | Auf diesen Beitrag antworten » | |||||||||||||||||
Warum nicht? Natürlich mit rechentechnischer Unterstützung - ist ungefähr ein Zehnzeiler (ausgenommen die Datumsrechnung) ... |
|||||||||||||||||||
22.08.2005, 17:28 | Matts | Auf diesen Beitrag antworten » | |||||||||||||||||
Es ist eine Rätselaufgabe mercany. Arthur Dent, dann sag mir mal, wie ich das machen soll, ich habe außer Ausprobieren keinen Schimmer. |
|||||||||||||||||||
22.08.2005, 17:52 | Xytras | Auf diesen Beitrag antworten » | |||||||||||||||||
@Arthur: in 10 Zeilen schaff ich s nich ganz aber in 14 Zeilen Matlab-code (incl. Ausgabe):
Sowas is allerdings unschoen weil wer vertraut schon gern computern - muss nacher oder so ma meine Mitschriften von der diskrete Mathe Vorlesung rausgraben - irgendwas gabs da doch mit iterierten abbildungen und so... |
|||||||||||||||||||
22.08.2005, 17:55 | JochenX | Auf diesen Beitrag antworten » | |||||||||||||||||
javaprogramm? ich probier mal etwas pseudocode sicher megaschlecht, aber nur zum spaß: int a = 2005; int b = a; int quersumme = 0; int zaehler; //die folgenden zeile rechnet die quersumme aus, da integer einfach den //kommarest weglassen do {quersumme = a/1000; a=a-quersumme; quersumme=quersumme+a/100; ......} //kA, wie das jetzt eleganter geht, die letzte ziffer zu finden while (quersumme>1000) quersumme=quersumme-1000; while (quersumme>100) quersumme=quersumme-100; while (quersumme>10) quersumme=quersumme-10; a=10*b+quersumme; while (a>10000) a=a-10000; zaehler ++; repeat until a=2005; edit: ich merke gerade ich hab das missverstanden ich dachte, wann der code wieder dem heutigen entspricht, also wieder 2005 ist naja egal, dann am ende eben eine datumsvergleichsabfrage dran ach ist eh schmus, hat aber spaß gemacht |
|||||||||||||||||||
Anzeige | |||||||||||||||||||
|
|||||||||||||||||||
22.08.2005, 18:07 | Xytras | Auf diesen Beitrag antworten » | |||||||||||||||||
Eeeh - hatte ich vergessen: ergebnis 13-Jan-2017 naja , der Weg ist das Ziel |
|||||||||||||||||||
22.08.2005, 18:53 | riwe | Auf diesen Beitrag antworten » | |||||||||||||||||
ist auch nicht viel länger, aber das ergebnis ist bei mir der 29.11.2009, oder eigentlich der 28.11.2009? werner |
|||||||||||||||||||
22.08.2005, 19:11 | JochenX | Auf diesen Beitrag antworten » | |||||||||||||||||
hallo werner, gleicher denkfehler wie ich
2009 bräuchtest du also 2009 als code und nicht 2005 |
|||||||||||||||||||
23.08.2005, 09:08 | riwe | Auf diesen Beitrag antworten » | |||||||||||||||||
@hallo jochen, da habe ich ein bier gebraucht, damit ich das verstehe. xytras hat recht, das ist dann der 13.1.2017 werner excel-vba-code: dat = Range("B2").Value y = Year(dat) n = CStr(y) Do s = 0 For i = 1 To 4 s = s + CInt(Mid$(n, i, 1)) Next n = Mid$(n, 2) n = n & Mid$(CStr(s), Len(CStr(s)), 1) dat = dat + 1 y = Year(dat) v = CStr(y) Loop Until v = n Range("G7").Value = dat |
|||||||||||||||||||
23.08.2005, 09:19 | Xytras | Auf diesen Beitrag antworten » | |||||||||||||||||
Hah - wer naturbrreit is is klar im Vorteil |
|||||||||||||||||||
23.08.2005, 16:04 | kurellajunior | Auf diesen Beitrag antworten » | |||||||||||||||||
Als erstes eine Klasse Datum mit
Dann natürlich die Key-klasse:
In der Klasse Rechner bräuchten wir dann:
Wie gesagt sauberes Java. natürlich hätte manauch alles in die main stopfen können, aber die Lösung hätte sich von den anderen nur im Syntax unterschieden. Das oben wäre eine saubere, objektorientierte Lösung... Jan PS: php steht da nur drüber, damit der Code farbig wird |
|||||||||||||||||||
23.08.2005, 16:11 | AD | Auf diesen Beitrag antworten » | |||||||||||||||||
Von wegen sauber - was ist, wenn es diese Jahreszahl gar nicht gibt? Ok, bei 2005 klappt es - aber kannst du so ohne weiteres sagen, dass bei anderen Jahreszahlen (bzw. genauer gesagt Anfangsdatum) dein Programm auch terminiert? EDIT: Schreibfehler korrigiert. |
|||||||||||||||||||
23.08.2005, 16:16 | kurellajunior | Auf diesen Beitrag antworten » | |||||||||||||||||
Stänkerer, dann solltest Du auch noch anfügen, dass keine NotNull abfragen drin sind. Außerdem war gar nicht die Frage nach terminierung, sondern wann das nächste mal... Soll sich der Rechner doch totrechnen... *Bääh* Allerdings könnte man eine selbstprüfende Logik einbauen, die die Kette von Schlüsseln auf eine Schleife untersucht (die muss es geben) und wenn die Jahreszahl den Bereich der möglichen Schlüsdel verlässt (also spätestens im Jahre 10000) dann sollte es abbrechen. Hmm, dei 10000 kann ich auf jeden Fall einbauen siehe Änderung... Jan |
|||||||||||||||||||
23.08.2005, 17:04 | Xytras | Auf diesen Beitrag antworten » | |||||||||||||||||
Das Datums-Zeug kannste Dir (wenn Du schon am Optimieren bist) auch sparen, und direkt die java.util.Calendar-Klasse verwenden; vgl. Java API EDIT: Trotzdem bleibt noch die Frage offen wie man das mit Mitteln der diskreten Mathematik auch ohne Rechner loesen haett koennen - da muss es doch einen Weg geben... |
|||||||||||||||||||
23.08.2005, 18:11 | AD | Auf diesen Beitrag antworten » | |||||||||||||||||
Du kannst ja damit beginnen, die zugrunde liegende Abbildung mit und zu untersuchen ("mod 10" heißt hier, dass der Rest im Bereich 0..9 liegen soll). Z.B. ist diese Abbildung bijektiv: . Bei der Untersuchung der Zyklenlängen , d.h. solchen mit , stellt man fest, dass es 6 Zyklen der Länge , 2 Zyklen der Länge , 3 Zyklen der Länge und 1 Zyklus der Länge gibt. Wie, bzw. ob überhaupt das für die ursprüngliche Problemstellung weiterhilft - keine Ahnung. Aber es ist ein Anfang. |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |
|