Unlogische Lichterkette |
| 19.06.2024, 14:16 | Dopap | Auf diesen Beitrag antworten » | ||||
| Unlogische Lichterkette oder ausgehen wenn irgendeine Lampe gedrückt wird. Fehlerhaft wird das logische NOT nicht auch an sich selbst gesendet. So wird z.B. aus (0hell, 8dunkel ) (7h,1d). Inzwischen kann ich meiner Enkelin helfen und finde konstruktiv den Weg aus jedem der 9 möglichen Zustände zu (8h,0d) oder (0h,8d). Allerdings stellte sich mir beim Betrachten Ihrer rein zufälligen Drückerei umgehend (!) die Frage nach der mittleren Anzahl an Versuchen um z.B. von ganz dunkel nach ganz hell zu gelangen. Der TR ist hier bei einer Simulation besonders langsam, teilweise gehen die seltenen Versuche in die Hunderte oder mehr.
|
||||||
| 19.06.2024, 14:38 | HAL 9000 | Auf diesen Beitrag antworten » | ||||
Womöglich ja, sofern vorher eine Beschreibung der Situation erfolgt, die man auch wirklich verstehen kann und nicht so viel Raum für Spekulation offen hält wie die obige. |
||||||
| 19.06.2024, 15:31 | Steffen Bühler | Auf diesen Beitrag antworten » | ||||
Zum Beispiel: Alle sind aus, sie drückt Nummer 4, alle gehen an außer 4. Nun drückt sie Nummer 5, alle gehen aus außer 5, die bleibt an und 4, die war ja aus und geht jetzt an. Und so weiter. Ein Brute-Force-Programm zeigt bei willkürlichem Drücken eine durchschnittliche Dauer von etwas mehr als 300 Versuchen von "alle aus" zu "alle an" bei 8 LEDs, etwa 84 bei 6 LEDs, etwa 21 bei 4 LEDs und etwa 4 bei 2 LEDs. Und tatsächlich schafft man es bei einer ungeraden Anzahl nie. Viele Grüße Steffen |
||||||
| 19.06.2024, 19:01 | Luftikus | Auf diesen Beitrag antworten » | ||||
Offenbar ist die Regel: Die Nummer, die gedrückt wird, ändert sich nicht, die anderen werden invertiert; was an ist, geht aus, was aus ist, geht an..?! |
||||||
| 19.06.2024, 19:39 | HAL 9000 | Auf diesen Beitrag antworten » | ||||
Na das ist doch relativ einfach überblickbar: 1) Die Schaltvorgänge sind kommutativ, d.h. jede Änderung der Reihenfolge der gedrückten Lampen bringt dasselbe Leuchtergebnis. 2) Zweimal dieselbe Lampe zu drücken ergibt wieder die Ausgangssituation. Also genügt es Vorgänge zu betrachten, wo jede Lampe maximal einmal gedrückt wird. 3) Bei gerader Anzahl an Schaltvorgängen sind genau die gedrückten Lampen an, bei ungerader Anzahl das Inverse davon. Wenn man also alle Lampen anschalten will, dann geschieht das a) bei gerader Gesamtlampenzahl, wenn man jede Lampe genau einmal drückt, und b) bei ungerader Gesamtlampenzahl nie. In diesem Fall kann man sich zudem überlegen, dass die Anzahl der leuchtenden Lampen stets gerade ist, egal was man drückt.
Ja, das geht mit einer einfachen Regel, die natürlich (s.o.) nur bei gerader Gesamtlampenanzahl greift: - Ist die Anzahl der hellen Lampen gerade, dann drückt man eine der dunklen Lampen. - Ist die Anzahl der hellen Lampen ungerade, dann drückt man eine der hellen Lampen. Da die Paritäten der Anzahlen heller bzw. dunkler Lampen zu jedem Zeitpunkt übereinstimmen, kann man diese Fallunterscheidung alternativ auch an der Anzahl dunkler Lampen festmachen. EDIT: Achso, du willst durch wild zufälliges Drücken zum Ziel kommen? Das erinnert mich an die Aufgabe mit dem Nachtwächter, der in seinem Schlüsselbund den richtigen Schlüssel für eine bestimmte Tür sucht: i) Ist er nüchtern, geht er einen Schlüssel nach dem anderen durch, also achtet drauf keinen mehrfach zu probieren. ii) Ist er besoffen, dann wählt er bei jedem Probierversuch zufällig einen der verfügbaren Schlüssel aus, ohne Beachtung dessen, ob der schonmal probiert wurde.
Wundert mich nicht: Bei 8 Lampen und zufälligem Drücken ist der Erwartungswert der Schaltanzahl bis alle Lampen an sind gleich . -------------------------------------------------------------------------------------------------------- Zur Berechnung: Wir gehen mal von einer Lichterkette mit genau Lampen aus. Betrachten wir das ganze zunächst OHNE die Negation, d.h., wenn jeder Tastendruck auf eine Lampe genau diese umschaltet und die anderen in Ruhe lässt. Zustand bedeute, dass genau Lampen an sind (also ). Bei rein zufälliger Schalterei ist das ganze dann eine Markov-Kette mit () und (). Für ... mittlere Anzahl Schaltvorgänge bis zum ersten Erreichen von Zustand , ausgehend von Zustand bekommt man folgendes Gleichungssystem: für . Letzten Endes suchen wir natürlich , welches übrigens im Fall gerader auch genau jener mittleren Schaltanzahl in deinem Probem mit Negation entspricht (siehe obige Anmerkung 3). Eine explizite Darstellung von als Funktion von konnte ich nicht erkennen. Allerdings ist , so dass man über die obige Rekursion sukzessive für damit rasch den gesuchten Wert berechnen kann. |
||||||
| 20.06.2024, 07:49 | Steffen Bühler | Auf diesen Beitrag antworten » | ||||
Ich hab mal bis n=16 die Werte bestimmt - es scheint ein exponentieller Zusammenhang zu sein: [attach]57849[/attach] |
||||||
| Anzeige | ||||||
|
|
||||||
| 20.06.2024, 08:11 | HAL 9000 | Auf diesen Beitrag antworten » | ||||
"Ungefähr" mag das stimmen. Ich meinte selbstredend eine exakte Formel.
Hab etwas weiter gerechnet (bis n=1000) und festgestellt, dass wohl sogar mit einer (ab ) monoton gegen 1 fallenden Funktion gilt. In erster Näherung scheint für große zu gelten. |
||||||
| 20.06.2024, 15:58 | Dopap | Auf diesen Beitrag antworten » | ||||
Jede Fragen ausreichend ( und mehr ) beantwortet! Danke an Alle für die posts. |
||||||
| 20.06.2024, 16:22 | HAL 9000 | Auf diesen Beitrag antworten » | ||||
Ein wenig vom Thema entfernt: Die obige Rekursion ist übrigens numerisch ganz interessant, wenn man sie (wie ich oben ja auch) für große ausführen will: Ab ca. n=50 wird es von der Genauigkeit her bedenklich (mehr als 1% Fehler), und bereits für n=60 bekommt man ein negatives (!) - wohlgemerkt wenn man die Rekursion mit den üblichen 64Bit-Fließkommazahlen "double" durchführen will. Ausweg: Durch Einsetzen von Ansatz in die Rekursion und etwas umformen bekommt man mit sowie , d.h. alle sind ganzzahlig. Rechnet man also mit deren Rekursion sowie beliebig genauen Zahlen (wie in Python möglich), so kann man die oben beobachteten double-Auslöschungseffekte umschiffen. Ein gewisse Abschlusskontrolle für die Numerik ist die Berechnung von : Da muss (s.o.) theoretisch genau 1 herauskommen. Man schaue sich diesen Wert mal an in der double-Rekursionsroutine so ab etwa n=40 an...
|
||||||
|
|
Verwandte Themen
| Die Beliebtesten » |
| Die Größten » |
| Die Neuesten » |
