#!/usr/bin/env python3 from math import floor Anzahl_teilnehmer = 6 Silben = ['In', 'for', 'ma', 'tik', 'kann', 'uns', 'wei', 'sen', 'wer', 'als', 'Nächs', 'ter', 'kommt', 'zum', 'Spei', 'sen'] teilnehmer = Anzahl_teilnehmer fehlt_noch = (len(Silben) - 1) % Anzahl_teilnehmer runden = 0 # DEBUG einfluss = 0 offset = 0 while fehlt_noch > 0: runden += 1 e = floor((len(Silben) + offset) / teilnehmer) # e Runden ist das Geburtstagskind dran, bis einer gehen darf #offset = (len(Silben) + offset) - e * teilnehmer offset = ((len(Silben) + offset) % (teilnehmer)) - 1 # nach e Runden fängt Teilnehmer Nummer `offset` an offset %= teilnehmer print(offset, teilnehmer) teilnehmer -= 1 einfluss += e # Geburtstagskind kann e-mal "den Zeiger nach vorne pushen" #fehlt_noch = teilnehmer - offset print(str(e) + " Runden " + " offset " + str(offset)) if False: #e != 0: print(fehlt_noch) if not fehlt_noch > einfluss: print("Das Geburtstagskind muss erst " + str(einfluss - fehlt_noch) + "-mal zwei Silben und dann " + str(fehlt_noch) + "-mal eine Silbe sagen, bis es dran ist.") break print(runden) # Das Geburtstagskind kommt nach `j` Runden `einfluss`-mal dran