Ich habe eine Frage über die Rekursion anhand folgender Aufgabe (broken telephone):
Ich erhalte durch einen Scanner zuerst 2 Werte, welche durch einen Abstand voneinander getrennt sind. Der erste Wert bedeuted dabei die Anzahl an Personen, die zweite Zahl die Nachricht (0 oder 1). Nun stehen alle diese Personen in einer Reihe und geben die übermittelte Nachricht der nächsten Person weiter. Durch den Scanner wird mir nach den vorherigen beiden Werten die Wahrscheinlichkeiten gegeben, mit welcher die Person der nächst folgenden die falsche Nachricht übermittelt. Die Frage dabei ist nach der Wahrscheinlichkeit mit welcher die korrekte Nachricht von der letzten Person ausgegeben wird. Wie kann ich dies durch Rekursion lösen? Ich habe dabei mal eine Zeichnung erstellt:
Die Wahrscheinlichkeit lässt sicht ja damit berechnen, indem ich folgendes multipliziere sowie addiere: 0.1*0.2*0.7 + 0.1*0.8*0.3 + 0.9*0.8*0.7+ 0.9*0.2*0.3. Die Personenanzahl geht dabei von 1 bis 100000.
Das richige Resultat müsste ja überliefert werden:
> indem der Vorletzte in der Reihe das Richtige erhalten hat, und die letzte Übermittlung korrekt erfolgte,
oder
> indem der Vorletzte in der Reihe das Falsche erhalten hat, und die letzte Übermittlung verfälscht wird.
Kann mir vielleicht jemand helfen, wie ich auf so eine Rekursionsgleichung komme? Die Wahrscheinlichkeiten habe ich in einen double[] array abgespeichert.
Ich erhalte durch einen Scanner zuerst 2 Werte, welche durch einen Abstand voneinander getrennt sind. Der erste Wert bedeuted dabei die Anzahl an Personen, die zweite Zahl die Nachricht (0 oder 1). Nun stehen alle diese Personen in einer Reihe und geben die übermittelte Nachricht der nächsten Person weiter. Durch den Scanner wird mir nach den vorherigen beiden Werten die Wahrscheinlichkeiten gegeben, mit welcher die Person der nächst folgenden die falsche Nachricht übermittelt. Die Frage dabei ist nach der Wahrscheinlichkeit mit welcher die korrekte Nachricht von der letzten Person ausgegeben wird. Wie kann ich dies durch Rekursion lösen? Ich habe dabei mal eine Zeichnung erstellt:
Die Wahrscheinlichkeit lässt sicht ja damit berechnen, indem ich folgendes multipliziere sowie addiere: 0.1*0.2*0.7 + 0.1*0.8*0.3 + 0.9*0.8*0.7+ 0.9*0.2*0.3. Die Personenanzahl geht dabei von 1 bis 100000.
Das richige Resultat müsste ja überliefert werden:
> indem der Vorletzte in der Reihe das Richtige erhalten hat, und die letzte Übermittlung korrekt erfolgte,
oder
> indem der Vorletzte in der Reihe das Falsche erhalten hat, und die letzte Übermittlung verfälscht wird.
Kann mir vielleicht jemand helfen, wie ich auf so eine Rekursionsgleichung komme? Die Wahrscheinlichkeiten habe ich in einen double[] array abgespeichert.
Zuletzt bearbeitet: