Medien & Phantastik > Lesen
Buchwichteln
Trichter:
--- Zitat von: Little Indian #5 am 17.12.2020 | 19:49 ---Sind es eigentlich immer "Wichtelpaare" (sodass Bücher zwischen zwei Personen ausfgetauscht werden) oder wird "reihum" gewichtelt?
--- Ende Zitat ---
Ich habe folgenden Algorithmus zum Ermitteln der Wichtelpartner verwendet:
https://www.mathematik.de/dmv-blog/2459-wichteln-f%C3%BCr-fortgeschrittene-der-fast-ideale-weg-zum-richtigen-wichtelpartner
Dabei besteht "Zweierzykelfreiheit" :o
Das heißt, das niemand denjenigen beschenkt, von dem er/sie ebenfalls Geschenke erhält.
Hier das ganze in python implementiert. ;)
(Klicke zum Anzeigen/Verstecken)
--- Code: ---import random
class Person:
def __init__(self, name, address, info=None):
self.name = name
self.address = address
self.info = info
def mix(participants):
# https://www.mathematik.de/dmv-blog/2459-wichteln-f%C3%BCr-fortgeschrittene-der-fast-ideale-weg-zum-richtigen-wichtelpartner
n = len(participants)
IDs = [ i for i in range(n) ]
random.shuffle(IDs)
ID_target = [ (IDs[i], IDs[i-1]) for i in range(n) ]
random.shuffle(ID_target)
for i in range(n):
participants[i].ID = ID_target[i][0]
participants[i].target = ID_target[i][1]
def print_tasks(participants):
for person in participants:
for target in participants:
if target.ID == person.target:
break
#print(f" {person.ID} {person.name}: {target.ID} {target.name} {target.address}")
print(f"Hallo {person.name},\ndein Wichtel ist: {target.name}\n\n{target.name}\n{target.address}")
if target.info is not None:
print(f"\nZusatzinfo:\n{target.info}")
print("\nViele Grüße!")
print('-----')
if __name__ == '__main__':
participants = [ Person('A', 'A-straße'),
Person('B', 'B-straße'),
Person('C', 'C-straße'),
Person('D', 'D-straße'),
Person('E', 'E-straße') ]
mix(participants)
print_tasks(participants
--- Ende Code ---
BobMorane:
Mein Wichtel war gestern in der Post.
Little Indian #5:
--- Zitat von: Trichter am 18.12.2020 | 09:35 ---Ich habe folgenden Algorithmus zum Ermitteln der Wichtelpartner verwendet:
https://www.mathematik.de/dmv-blog/2459-wichteln-f%C3%BCr-fortgeschrittene-der-fast-ideale-weg-zum-richtigen-wichtelpartner
Dabei besteht "Zweierzykelfreiheit" :o
Das heißt, das niemand denjenigen beschenkt, von dem er/sie ebenfalls Geschenke erhält.
--- Ende Zitat ---
Als absoluter IT-Laie bin ich jetzt angemessen beeindruckt.
Ich hätte ja Zettelchen aus einer Tasse gezogen (aber ich bin natürlich auch kein "Digital native").
Blanchett:
Also beim Alk-Wichtel auslosen hab ich ganz altmodisch, aber Hobbygerecht, nen passenden Würfel hervorgeholt
Greifenklaue:
Buchwichtel eingetroffen. Interessantes Buch, trifft nicht 100%ig meinen Geschmack, aber den meines Serienkumpels ... Also, wird gelesen und weiterverschenkt!
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln