Matthias Apsel: Programmierung zum Wochenende - Lösung

Beitrag lesen

Hallo Matthias Apsel,

a) Leider hat das Gefängnis 1000 Insassen …

226, 406

b) Verallgemeinere das Programm so, dass aus einer Liste mit N Elementen fortlaufend jedes K-te Element entfernt wird bis nur noch (K-1) Elemente übrig sind und der Abzählprozess an einer beliebigen Stelle beginnt.

Die eingegangenen Lösungen von @Rolf B, @1unitedpower, @Camping_RIDER, @Gunnar Bittersmann und @encoder, empfinde ich zum Teil deutlich eleganter als meine, ich überlasse es ihnen, sie hier zu posten.

(Ich habe wirklich das Array ggf. umsortiert, die entsprechenden Positionen markiert, geschaut, wieviele noch bis zum Ende fehlen, das Array gekürzt. Aber wenigstens die while-Schleife habe ich auch verwendet)

c) gibt es Positionen, die besonders wahrscheinlich sind, übrig zu bleiben?

Nein. Man beginnt an der Stelle 0 und stellt fest, dass die Stelle a übrig bleibt. Beginnt man jetzt an der Stelle s, bleibt die Stelle (a + s) % length übrig, da man dieselben Operationen auf demselben Array durchführt. Das gilt für jede übrig bleibende Stelle unabhängig von n und k.

Bis demnächst
Matthias

--
Pantoffeltierchen haben keine Hobbys.