Zum Inhalt springen

Nicht Freitag aber trotzdem ein Rätsel!


Jaraz

Empfohlene Beiträge

Originally posted by Ganymed

Wenns hilft... :rolleyes:

wir versuchens...also

die 1.zeile ist gegeben...

die 1

so...jede zeile beschreibt ab nun die vorhergehende...

in der 2. zeile steht:

1 1 --> eine eins (!)

in der 3. zeile steht:

2 1 --> zwei einsen

in der 4. zeile steht:

1 2 1 1 --> eine zwei und eine eins

und so weiter....

nochmal auf die 4. zeile:

1(eine) 2(zwei) 1(eine) 1(eins)

hastes?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Jaraz

*grummel*

Kann hier keine/r programmieren?

Oder seit ihr alle SO beschäftigt? ;)

Das ist weniger eine Frage des Könnens als der Größe des Speichers :D

Die 111. Zeile fängt so an:

3113112221131112311332111213122112311311123112111331121113122112132113121113222112311311221112131221123113112221121113311211131122211211131221131211132221121321132132212321121113121112133221123113112221131112212211131221121321131211132221123113112221131112311332211211133112111311222112111312211311123113322112111312211312111322212321121113121112133221121321132132211331121321132213211231132132211211131221232112111312212221121123222112311311222113111231133211121321321122111312211312111322211213211321322123211211131211121332211231131122211311123113321112131221123113111231121123222112111331121113112221121113122113111231133221121113122113121113221112131221123113111231121123222112111312211312111322212321121113121112131112132112311321322112111312212321121113122122211211232221121321132132211331121321231231121113112221121321132132211322132113213221123113112221133112132123222112111312211312112213211231132132211211131221131211322113321132211221121332211231131122211311123113321112131...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Jaraz

Wenn die Aufgabe einfach wäre, hätte ich sie nicht gestellt. :D

Du willst mir doch hoffentlich nicht ernsthaft erzählen, dass dich das Ergebnis interessiert. Selbst wenn man 5 Ziffern in ein Byte packt, sind das immer noch ca. 4 Terabyte. Wenn ich das hier poste, bekomme ich Ärger mit e@sy. :D :D :D
Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Klotzkopp

Du willst mir doch hoffentlich nicht ernsthaft erzählen, dass dich das Ergebnis interessiert. Selbst wenn man 5 Ziffern in ein Byte packt, sind das immer noch ca. 4 Terabyte. Wenn ich das hier poste, bekomme ich Ärger mit e@sy. :D :D :D

Ok, Ok,

Nachdem ich den int Überlauf bei Java in Zeile 58 erreicht hatte, dachte ich mit long würde ich hinkommen.

Nur bastel ich gerade noch an der passenden Datenstruktur.

An Terrabyte kann ich noch nicht so ganz glauben.

Hast du wirklich dann bis Zeile 111 das Ergebniss?

Falls ja, kannste irgendwie nen Hashwert ermitteln.

Gruß Jaraz

Nachtrag: OK, ich habe gerade mal den Taschenrechner in die Hand genommen und aufgrund der wachstumskurve nen Schätzwert ermittelt.

Hast recht, das ganze geht in den Terrabyte Bereich.

Trotzdem würden mich die Sourcen interessieren, falls du das komplett durchgerechnet hast.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab es nicht bis zum Ende durchgerechnet. Nachdem mein PC ab Zeile 65 nur noch mit Auslagern beschäftigt war, habe ich abgebrochen. Der Wachstumsfaktor von Zeile zu Zeile scheint sich zwischen 1,303 und 1,304 einzupendeln.

Der Sourcecode:

#include <string>
#include <sstream>
using namespace std;

string zeile( const string& s )
{
char c = s[0], anz = '1';
int len = s.length();
stringstream ss;
for( int i=1; i<len; ++i ) {
if( s[i] == c ) {
++anz;
}
else {
ss << anz << c;
c = s[i];
anz = '1';
}
}
ss << anz << c;

return ss.str();
}[/CODE]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, so in etwa habe ich das auch.

Ich dachte schon, du hättest das ganze Blockweise und nicht Zeilenweise abgearbeitet.

So hätte man sich einfach die Anzahl der Stellen merken können und gut is.

Wenn ich mal viel langeweile habe, werde ich das mal versuchen.

Gruß Jaraz

PS: Ich hoffe wir haben e@sy nicht zu sehr geschockt.

Was das alleine an Traffic gekostet hätte. :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Jaraz

Da soll nochmal einer sagen, Java wäre langsam. :D

Bis einschließlich Zeile 57 dauert bei mir keine 6 Sekunden. :P

Das hat wohl eher mit dem Prozessor zu tun... bei mir braucht er bis Zeile 40 genau 731,96 sekunden (PIII 400) - die Programmierung könnte auch nicht gerade ideal sein, das kommt noch dazu... für einen Vergleich müsste derselbe algorithmus verwendet werden.

:cool:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sollte auch kein Angriff sein. ;)

Pentium 1,7



public class Start {


  public static void main(String args[]) {


    int zaehler;

    int position = 1;

    int wert;

    int[] a = { 1 };

    int[] z = null;

    long time = System.currentTimeMillis();


    // bis Zeile 31, da Zeile 1 nicht mitgezählt wird.

    for (int i = 0; i < 30; i++) {


      //Stellt sicher das das Array groß genug ist.

      if (i > 10) {

        z = new int[(int) (position * 1.4)];

      } else {

        z = new int[position * 2];

      }


      position = 0;

      zaehler = 0;

      wert = a[0];


      //a[] ist die Ausgangsreihe, z[] die neue Ergebnisreihe

      //position ist die laufende Stelle der Ergebnisreihe

      //wert ist der Wert der aktuellen Stelle

      //zaehler ist die Anzahl der gleichen Zahlen die hintereinander stehen

      //j ist die laufende Stelle der Ausgangsreihe

      for (int j = 0; j < a.length; j++) {

        if (a[j] != 0) {

          if (a[j] == wert) {

            zaehler++;

          } else {

            z[position] = zaehler;

            position++;

            z[position] = wert;

            wert = a[j];

            zaehler = 1;

            position++;

          }

        }

      }


      z[position] = zaehler;

      position++;

      z[position] = wert;

      position++;

      a = z;


      //Ausgabe: Nur für kleine Zeilenanzahl zu empfehlen.

      /*for (int k = 0; k < position; k++) {

        System.out.print(z[k]);

      }

      System.out.println("");*/

    }

    System.out.println((System.currentTimeMillis() - time) / 1000 + " Sekunden");

  }

}


Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

und was haben wir jetzt daraus gelernt?

Saga ist eine Frau!!

mein Weltbild wurde zerstört!

und warum? nicht weil sie eine Frau ist, sondern ich ein Mann, und ich es auch nicht checke ! :)

ich werde michaber nochmal reinhängen, vielleicht pack ichs ja bis zum ende meiner ausbildung so in ca. 2 jahren!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Krampe

und ich es auch nicht checke ! :)

Was nicht? Das Rätsel oder die Programme.

Das Rätsel wäre peinlich, da es mittlerweile so ausführlich wie nur möglich erklärt wurde.

Ob die letzen Zahlen der 111 Zeile stimmen, kann ich dir leider nicht sagen, da mir die Terrabytes ausgegangen sind. ;)

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Jaraz

Ob die letzen Zahlen der 111 Zeile stimmen, kann ich dir leider nicht sagen, da mir die Terrabytes ausgegangen sind. ;)

Ja ja, die Informatiker!

Meine Logik sagt mir, daß von Hinten nach vorne sich immer 4 - Reihen bilden, also jedes vierte Ende identisch ist.

Mit fortlaufender Folge werden hinten immer mehr Ziffern signifikant festgeschrieben.

Aber warum das so ist??

Also Aufgabe : mal nur die letzten Ziffern machen (bis auf 20 Stellen dürfte reichen) und meine Theorie empirisch überprüfen.

Es sind zur Berechnung folglich nur die letzten 22 Stellen massgeblich.

Und dann reichen die Terrabytes wieder aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

:uli :uli :uli

Hier die letzten 22 Stellen der Reihen 38-57 von links nach rechts.

1221311221113112233112...Anfang

1122113112221331122232...Anfang

1222123112231132122331...Anfang

1123112131122231123121...Anfang

1221311221113112233112...Anfang

1122113112221331122232...Anfang

1222123112231132122331...Anfang

1123112131122231123121...Anfang

1221311221113112233112...Anfang

1122113112221331122232...Anfang

1222123112231132122331...Anfang

1123112131122231123121...Anfang

1221311221113112233112...Anfang

1122113112221331122232...Anfang

1222123112231132122331...Anfang

1123112131122231123121...Anfang

1221311221113112233112...Anfang

1122113112221331122232...Anfang

1222123112231132122331...Anfang

1123112131122231123121...Anfang

Hast also recht, die Reihen haben dieselben 4 Endungen.

Tja, manchmal sollte man sich das ganze doch einfach mal näher anschauen bevor man loshakt. :D

Gruß Jaraz

PS: Jetzt weiss ich auch wieder warum es besser war mein Studium abzubrechen. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...