Nxc: Infinite-Monkey-Theorem

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

Moderator: Moderatoren

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

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 16. Jun 2011 20:41

Korrektur:
ich hatte oben geschrieben, die Lego Zufallszahlen wären ziemlich gleichverteilt. Die Beobachtung stammte aus einer wahrscheinlich zu kleinen Stichprobe.
ich habe jetzt den lego FW Zufallszahlengenerator statistisch geprüft durch 1 Million Randomisierungen von Zahlen zwischen 0-15 (einschl.)
Das Ergebnis ist schockierend:
Manche Zahlen werden fast doppelt so häufig erzeugt wie andere, und, schlimmer: es sind bei verschiedenen Testläufen sogar immer die gleichen!

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

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

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 24. Jun 2011 18:08

habs jetzt nochmal laufen lassen (mit Mersenne Twister RNG):
5 richtige Buchstaben (hamle) nach 15 Minuten:
monkey5.jpeg
monkey5.jpeg (17.46 KiB) 2826 mal betrachtet
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

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

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 11. Apr 2015 10:48

hätte mal jemand Lust, dieses kleine Progrämmchen per EV3-Basic laufen zu lassen?
Würde mich mal interessieren, was da wann raus kommt... ;)

Code: Alles auswählen

string hamlet="to be or not to be",   // pattern
        monkey="                  ",   // default: 18x white space
        buf2, buf3;

char i=0, state;

byte c;
bool fertig=false;
unsigned long count, sav;

task main(){
  SetSleepTimeout(0);
  buf3=SubStr(hamlet, 0, state);

  while(!fertig) {

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

    //buf1=SubStr(monkey, 0, 18);
    if (state<18)  buf2=SubStr(monkey, 0, state);

    if (!(count%50)) {
       TextOut(0,40, monkey);
       NumOut(0,56, count);
    }

    if(buf2==buf3)  {
      i=0;
      while ( (monkey[i]==hamlet[i]) && (i<17) )  ++i;
      if ( i>state )   sav=count;
      state=i;
      buf3= SubStr(monkey, 0, state);
      TextOut(0,24, buf3+"_");
      NumOut(0, 8, sav);
    }


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

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

Peter28
Schreibt viel
Schreibt viel
Beiträge: 185
Registriert: 2. Nov 2013 21:44
Wohnort: Schmallenberg

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon Peter28 » 11. Apr 2015 13:36

Hallo,
wieviel Batteriesätze sollen da drauf gehen???
Habe mit Excel mal 30.000 nur 6-buchstabige Wörter erstellen lassen und mit dem Wort monkey verglichen. Kein Treffer. Dann den Finger auf F9 (aktualisiert Anzeige und erzeugt jedesmal 6x30.000 Zufallszahlen) gelassen - länger. Keine Chance, der Trefferzähler blieb auf 0.
Also wohl kein Programmier- als vielmehr ein Accu- problem.

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

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 11. Apr 2015 14:17

also der NXT ist schon mal ne Woche lang gelaufen, mit weniger Buchstaben.
Allerdings könnte - zumindest theoretisch - der EV3 zig x schneller sein als der NXT mit NXC.

Aber ein Akku, der ständig mit dem Ladenetzgerät verbunden ist, wird schon nötig sein... ;)

ps, edit:
habe das Programm oben noch ein bisschen verschönert, zum besseren mitlesen ;)

pps,
die Wahrscheinlichkeit, diesen Satz zufällig zu erzeugen, ist natürlich 1 : ( 2718)
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Peter28
Schreibt viel
Schreibt viel
Beiträge: 185
Registriert: 2. Nov 2013 21:44
Wohnort: Schmallenberg

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon Peter28 » 12. Apr 2015 09:15

Hallo,
das ganze in SB mal auf i7/64bit ohne EV3 durchgezogen.

Code: Alles auswählen

vergleichstext="to be"
x=text.GetLength(vergleichstext)
fertig="true"
durchläufe=0
While fertig
  text=""
  For i=1 To x
    ZZ=Math.GetRandomNumber(27)+96
    if ZZ=123 Then
      ZZ=32 '-----------------------------wegen Leerzeichen
    EndIf
    text=Text.Append(text,text.GetCharacter(ZZ))
  EndFor
  durchläufe=durchläufe+1
  If text=vergleichstext Then
    text=Text.Append(text,"   geschafft")
    TextWindow.WriteLine(durchläufe)
    TextWindow.WriteLine(text)
    Program.Delay(10000)
    fertig="false"
  EndIf
EndWhile

-----------------------------------------------
Ergo:
1-3 Buchstaben -> zack
4 Buchst. -> 2-4 sek.
5 Buchst. -> nach 5 min abgebrochen
Wer seinem Rechner eine Nachtschicht verpassen will kann in einer äußeren Schleife ja noch (wenn er es denn halt geschafft hat) weitere Buchstaben dazu nehmen.
Viiieeel Spaß
(edited by HaWe: Rest verschoben!)

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

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 12. Apr 2015 10:51

"to_be" hatte ich zufällig nach der 5,6-Millionsten Iteration auf dem NXT - das entspricht in etwa dem statistischen Erwartungswert.
(Rechengeschwindigkeit: ca. 10000 Iterationen pro Minute).
Das ist aber ntl nur ein zufälliger Wert, hätte auch zufällig sofort oder nach 10 sek schon eintreten können.

Je länger allerdings die Zeichenketten sind, desto mehr nähert sich sich die echte Ziehungsdauer mit der Zeit der statistischen Wahrscheinlichkeit an.
("Gesetz der Großen Zahl")
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
c0pperdragon
Schreibt viel
Schreibt viel
Beiträge: 231
Registriert: 9. Feb 2015 00:29

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon c0pperdragon » 13. Apr 2015 06:53

Das Gesetz der großen Zahl hilft nicht, wenn du nur ein Ergebnis (Anzahl der Ziehungen bis zum Erfolg) hast. Da müsstest du mehrmals bis zum gesuchten Wort würfel und dann die Anzahl mitteln.

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

Re: Nxc: Infinite-Monkey-Theorem

Beitragvon HaWe » 13. Apr 2015 08:23

nein, das bezog sich auf verschieden lange Wörter und verschiedene unabhängige Ziehungsserien,
d.h. die Anzahl der Ziehungen bis 1 Buchstabe stimmt,
daneben dann (unabhängig davon) die Anzahl der Ziehungen bis 2 Buchstaben stimmen,
dann 3 usw.

Bei nur 1 Ziehung kann jedes beliebige Ergebnis (1,2,3,4,5...richtige) bereits (von irgendeinem Affen) bei der 1. Ziehung ereicht worden sein,
oder auch alleine der 1. Buchstabe kann bereits nach 1000 Ziehungen (von irgendeinem anderen Affen) immer noch nicht getroffen worden sein,
aber bei zunehmend vielen bis hin zu unendlich vielen unabhängigen Ziehungen (Affen) wird die durchschnittliche Häufigkeit der Ziehungen bis zum Erfolg ihren statischen Erwartungswerten entsprechen.
(D.h. um die ersten 3 richtigen Buchstaben bei einer Ziehung zu treffen, werden bei (fast) unendlich vielen Ziehungsserien (Affen) dann schließlich durchschnittlich 27*27*27= 19683 Versuche nötig gewesen sein, egal, ob man dann ganz neu für 3 richtige startet oder weiter macht bis man 5 oder 6 oder mehr richtige hat.)
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E


Zurück zu „Projekte, Showcase, Bauanleitungen“

Wer ist online?

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

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss