From c71a804a73851a805a6283c5afef685aefb62f85 Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 16 Nov 2014 11:48:43 +0100 Subject: Datei umbennenen --- buffet_lotterie.py | 46 +++++++++++++++++++--------------------------- buffet_lotterie2.py | 26 -------------------------- 2 files changed, 19 insertions(+), 53 deletions(-) delete mode 100755 buffet_lotterie2.py diff --git a/buffet_lotterie.py b/buffet_lotterie.py index 5d203fc..82a8d75 100755 --- a/buffet_lotterie.py +++ b/buffet_lotterie.py @@ -1,34 +1,26 @@ #!/usr/bin/env python3 -Anzahl_teilnehmer = 28 -Silben = ['In', 'for', 'ma', 'tik', 'kann', 'uns', 'wei', 'sen', 'wer', 'als', 'Nächs', 'ter', 'kommt', 'zum', 'Spei', 'sen'] - -scores = dict() +from math import floor -for doppelte in range(Anzahl_teilnehmer): - teilnehmer = list(range(Anzahl_teilnehmer)) # Teilnehmer besitzen Nummer; Geburtstagskind hat die 1 - wer_ist_dran = 0 # Wer aus `teilnehmer` durfte als letztes gehen? - dop = doppelte - runden = 0 - while len(teilnehmer): - runden += 1 - for s in Silben: # jeder spricht eine Silbe - if wer_ist_dran == 0 and dop > 0: - dop -= 1 - wer_ist_dran += 1 # es sei denn, wir testen, ob es als Geburtstagskind sinnvoller ist, 2 zu sprechen - if wer_ist_dran == len(teilnehmer): - wer_ist_dran = 0 +Anzahl_teilnehmer = 6 +Silben = ['In', 'for', 'ma', 'tik', 'kann', 'uns', 'wei', 'sen', 'wer', 'als', 'Nächs', 'ter', 'kommt', 'zum', 'Spei', 'sen'] - wer_ist_dran += 1 - if wer_ist_dran == len(teilnehmer): - wer_ist_dran = 0 +teilnehmer = Anzahl_teilnehmer +fehlt_noch = float("inf") +einfluss = 0 +offset = 0 +while fehlt_noch > 0: + e = floor((len(Silben) + offset) / teilnehmer) # e Runden ist das Geburtstagskind dran, bis einer gehen darf + offset = ((len(Silben) + offset - 1) % teilnehmer) % (teilnehmer - 1) # nach e Runden fängt Teilnehmer Nummer `offset` an, 0 ist das Geburtstagskind - if teilnehmer[wer_ist_dran] == 0: - #print('Das ist das Geburtstagskind - ' + str(runden) + ' Runden hat es gedauert') - scores[doppelte] = runden - pass # Geschafft, wir kriegen Essen + einfluss += e # Geburtstagskind kann insgesamt `e`-mal dem Essen näher kommen + fehlt_noch = (offset - 1) % (teilnehmer - 1) + 1 # um jetzt dran sein zu müssen, hätte das Geburtstagskind `fehlt_noch`-mal zwei Silben sagen müssen - del teilnehmer[wer_ist_dran] - wer_ist_dran -= 1 + print("Nach " + str(e) + " Runden fängt der " + str(offset + 1) + ". an. Es sind dann noch " + str(teilnehmer - 1) + " Teilnehmer im Spiel.") + if e > 0: # falls das Geburtstagskind dran kam + print("Es fehlten " + str(fehlt_noch) + " bis zum Geburtstagskind") + if fehlt_noch < einfluss: + print("Das Geburtstagskind muss erst " + str(fehlt_noch) + "-mal 'zwei Silben' und dann nur noch 'eine Silbe' sagen, bis es dran ist.") + break -print('Das Geburtstagskind sollte von Anfang an ' + str(min(scores, key=scores.get)) + '-mal zwei Silben und anschließend eine Silbe sprechen.') + teilnehmer -= 1 # einer geht diff --git a/buffet_lotterie2.py b/buffet_lotterie2.py deleted file mode 100755 index 82a8d75..0000000 --- a/buffet_lotterie2.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/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 = float("inf") -einfluss = 0 -offset = 0 -while fehlt_noch > 0: - e = floor((len(Silben) + offset) / teilnehmer) # e Runden ist das Geburtstagskind dran, bis einer gehen darf - offset = ((len(Silben) + offset - 1) % teilnehmer) % (teilnehmer - 1) # nach e Runden fängt Teilnehmer Nummer `offset` an, 0 ist das Geburtstagskind - - einfluss += e # Geburtstagskind kann insgesamt `e`-mal dem Essen näher kommen - fehlt_noch = (offset - 1) % (teilnehmer - 1) + 1 # um jetzt dran sein zu müssen, hätte das Geburtstagskind `fehlt_noch`-mal zwei Silben sagen müssen - - print("Nach " + str(e) + " Runden fängt der " + str(offset + 1) + ". an. Es sind dann noch " + str(teilnehmer - 1) + " Teilnehmer im Spiel.") - if e > 0: # falls das Geburtstagskind dran kam - print("Es fehlten " + str(fehlt_noch) + " bis zum Geburtstagskind") - if fehlt_noch < einfluss: - print("Das Geburtstagskind muss erst " + str(fehlt_noch) + "-mal 'zwei Silben' und dann nur noch 'eine Silbe' sagen, bis es dran ist.") - break - - teilnehmer -= 1 # einer geht -- cgit v1.3.1