Nxc: Infinite-Monkey-Theorem

Modelle zum Nachbauen oder wo gibt es etwas interessantes oder Projekte?

Moderator: Moderatoren

Nicholas
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 38
Registriert: 10. Jun 2011 18:35

Nxc: Infinite-Monkey-Theorem

Beitragvon Nicholas » 10. Jun 2011 20:36

hi
also ich wollte mal dieses experiment mit meinem NXT ausprobieren. NXG hat nicht so wirklich geklappt also wollte ichs mal mit NXC versuchen bin mit der software aber noch nicht so wirklich vertraut.
Für alle dies nicht kennen http://de.wikipedia.org/wiki/Infinite-Monkey-Theorem
was ich herauskriegen will: soll nicht gleich der gesamte Hamlet sein aber damits wirklich dieses experiment sollte es zu mindestens "sein oder nicht sein, das ist hier die Frage" (großschreibung, zeichensetzung und leerstellen sind zu vernachlässigen.
Und am Ende soll er ausgeben wie oft er gebraucht hat um die richtige lösung zu kriegen (ca. 3.342*10^49)

danke im vorraus
Nicholas
Möge die Macht mit euch sein

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5296
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 10. Jun 2011 22:07

vllt hilft dir das als Idee:

Code: Alles auswählen

    #define printf1( _x, _y, _format1, _value1) { \
      string sval1 = FormatNum(_format1, _value1); \
      TextOut(_x, _y, sval1); \
    }

    string hamlet="sein oder nicht sein das ist hier die frage",
           monkey="                                           ",
           buf1, buf2, buf3;
    char i=0;
    byte c;
    bool fertig=false;
    float count;



    task main(){
      while(!fertig) {

        for (i=0; i<44; i++) {
          c=(rand()%27)+96;
          if (c==96) c=32;
          monkey[i]=c;
        }
        count+=1;

        // monkey=hamlet;  // ??

        buf1=SubStr(monkey, 0, 15);
        buf2=SubStr(monkey,16, 13);
        buf3=SubStr(monkey,29, 17);

        TextOut(0,40, buf1);
        TextOut(0,32, buf2);
        TextOut(0,24, buf3);

        printf1(0, 8,"%e", count);

        while (ButtonPressed(BTNCENTER, false)) ;  // freeze

        if(monkey==hamlet) {
          fertig=true;
          while(1);
        }

      }
    }


Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5296
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 10. Jun 2011 22:08

etwas gemogelt:

Code: Alles auswählen

    #define printf1( _x, _y, _format1, _value1) { \
      string sval1 = FormatNum(_format1, _value1); \
      TextOut(_x, _y, sval1); \
    }

    string hamlet="sein oder nicht sein das ist hier die frage",
           monkey="                                           ",
           buf1, buf2, buf3;
    char i=0, istart=0;
    byte c;
    bool fertig=false;
    float count;



    task main(){
      while(!fertig) {

        for (i=istart; i<44; i++) {
          c=(rand()%27)+96;
          if (c==96) c=32;
          monkey[i]=c;
        }
        count+=1;
        if (monkey[istart]==hamlet[istart]) ++istart;

        // monkey=hamlet;  // ??

        buf1=SubStr(monkey, 0, 15);
        buf2=SubStr(monkey,16, 13);
        buf3=SubStr(monkey,29, 17);

        TextOut(0,40, buf1);
        TextOut(0,32, buf2);
        TextOut(0,24, buf3);

        printf1(0, 8,"%e", count);

        while (ButtonPressed(BTNCENTER, false)) ;  // freeze

        if(monkey==hamlet) {
          fertig=true;
          while(1);
        }

      }
    }


Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
elomatreb
Schreibt viel
Schreibt viel
Beiträge: 171
Registriert: 16. Nov 2010 16:53

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon elomatreb » 10. Jun 2011 22:37

Ich schätze mal er braucht so 10 min. dafür :D

Ich habe mal einen Bericht über einen Hobbyprogrammierer gelesen,der hat das auf einem C64 (Computer von 1982) gemacht,das Teil hat 12 1/2 Stunden gebraucht um die richtige Lösung (mit Groß-/Kleinschreibung und Leerstellen) zu bekommen :shock:

elomatreb.

EDIT:NEINFALSCHNEINFALSCH! Das habe ich verwechselt,das war irgendeine Wetterberechnung :lol: Ich warte gespannt auf die Ergbnisse :!:
Zuletzt geändert von elomatreb am 10. Jun 2011 22:56, insgesamt 1-mal geändert.
http://www.elomatreb.jimdo.com "Hochspannende" Elektronik,Elektronenröhren uvm.
______________________________________
A Computer is like a Submarine - If you open Windows,you get problems.
;)

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5296
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 10. Jun 2011 22:42

ich schätze mal, da liegst du daneben.
Wahrscheinlichkeit != Sicherheit.
Er kann es schon in 10 sec schaffen oder erst in 1000 Jahren.
Außerdem hat NXC ntl. keine "echten" Start-Zufallszahlen.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
elomatreb
Schreibt viel
Schreibt viel
Beiträge: 171
Registriert: 16. Nov 2010 16:53

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon elomatreb » 10. Jun 2011 23:01

Ich hatte die Sachen verwechselt!Ich war von einer anderen Rechnung ausgegangen,die was mit Wetter zu tun hatte :wink:

Erst als ich mal aus Spaß den Wikiartikel gelesen habe,ist mir die Verwechslung eingefallen :wink:

[Sinnlos]
Mir fällt gerade eine passende Stelle aus "Per Anhalter durch die Galaxis ein 8-)
Arthur und Ford befinden sich auf der "Herz aus Gold" und fahren mit UWD :wink:
"Ford,hier hinter der Tür sind unendlich viele Affen.SIe wollen uns ihr Hamlet-Drehbuch vorlesen" :mrgreen:
[/Sinnlos]

elomatreb.
http://www.elomatreb.jimdo.com "Hochspannende" Elektronik,Elektronenröhren uvm.
______________________________________
A Computer is like a Submarine - If you open Windows,you get problems.
;)

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5296
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 11. Jun 2011 09:57

[auch sinnlos]
ja, immer wieder erstaunlich, wieviel Sinn hier hinter manchem Unsinn steckt.
Und auch erstaunlich, zu wieviel Sinn doch manche Taxifahrer fähig sind (und sie dann plötzlich zu Buchautoren werden oder zu Außenministern)
[/sinnlos]
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Nicholas
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 38
Registriert: 10. Jun 2011 18:35

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon Nicholas » 11. Jun 2011 10:04

in der leerzeile zwischen while (ButtonPressed(BTNCENTER, false)) ; // freeze
und if(test==hamlet) {
ist ein Fehler
Error: Invalide opcode: fmtnum
hab keinen schimmer was das bedeuten soll

Nicholas

PS: Ich nutze Bricxx vllt hängts damit zusammen
Möge die Macht mit euch sein

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5296
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 11. Jun 2011 10:31

ich habe keinen compiler error.
benutzt du wirklich das neueste bricxcc (3.3.8.10) und die passende enhanced fw ?
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
Sebi
Administrator
Administrator
Beiträge: 1946
Registriert: 11. Jan 2008 14:28
Wohnort: Aub
Kontaktdaten:

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon Sebi » 11. Jun 2011 10:32

Und ist die enhanced FW auch in BricxCC aktiviert?

Nicholas
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 38
Registriert: 10. Jun 2011 18:35

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon Nicholas » 11. Jun 2011 10:43

oh ich hab 3.3.8.9 kann ich die neue version einfach neu installieren oder muss ich die alte version erst deinstallieren?
und hat einer den link für den download?
wo finde ich heraus ob ich diese enhanced firmware habe

Nicholas
Möge die Macht mit euch sein

Benutzeravatar
elomatreb
Schreibt viel
Schreibt viel
Beiträge: 171
Registriert: 16. Nov 2010 16:53

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon elomatreb » 11. Jun 2011 10:55

Das mit der Firmware kann man ganz einfach überprüfen:

Wenn im Hauptmenü des NXT der Punkt "Try" funktioniert,hast du sie nicht.Oder du kannst unter Settings -> NXT Version gehen,da steht auch die Firmwareversion :wink:

elomatreb.
http://www.elomatreb.jimdo.com "Hochspannende" Elektronik,Elektronenröhren uvm.
______________________________________
A Computer is like a Submarine - If you open Windows,you get problems.
;)

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5296
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 11. Jun 2011 11:01

immer erst die alte Version komplett deinstallieren,
dann neu installieren,
dann bugfix drüberkopieren,
dann fw downloaden,
dann enh fw aktivieren.
Steht alles hier:
http://www.mindstormsforum.de/viewtopic.php?f=25&t=3311
und hier:
https://sourceforge.net/apps/phpbb/mindboards/viewtopic.php?f=3&t=49
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5296
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 11. Jun 2011 13:02

Die Kurzform
string hamlet="sein oder nicht"
wird schon "ewig" dauern:

Code: Alles auswählen

#define printf1( _x, _y, _format1, _value1) { \
  string sval1 = FormatNum(_format1, _value1); \
  TextOut(_x, _y, sval1); \
}

 string hamlet="sein oder nicht",   // Kurzform
        monkey="               ",
        buf1, buf2, buf3;
char i=0;
byte c;
bool fertig=false;
unsigned long count;

task main(){
  while(!fertig) {
    for (i=0; i<15; i++) {
      c=(rand()%27)+96;
      if (c==96) c=32;
      monkey[i]=c;
    }
    count+=1;

    // monkey=hamlet;  // ??
     
    buf1=SubStr(monkey, 0, 15);

    //buf2=SubStr(monkey,16, 13);
    //buf3=SubStr(monkey,29, 17);


    TextOut(0,40, buf1);
    //TextOut(0,32, buf2);
    //TextOut(0,24, buf3);

    printf1(0, 8,"%d", count);

    while (ButtonPressed(BTNCENTER, false)) ;  // freeze
    if(monkey==hamlet) {
      fertig=true;
      while(1);
    }
  }
}
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Nicholas
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 38
Registriert: 10. Jun 2011 18:35

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon Nicholas » 11. Jun 2011 13:04

da is aber nur 3.3.8.9 die hat ich vorher schon ich soll doch 3.3.8.10 runterladen

Nicholas
Möge die Macht mit euch sein


Zurück zu „Projekte, Showcase, Bauanleitungen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss