Liste/Array ausgewählte Elemente kopieren
@Anaconda2016: Wo liegt denn das konkrete Problem beim Umsetzen der ”Papierlösung” in Python? Wie sieht die Lösung auf dem Papier aus?
-
- User
- Beiträge: 11
- Registriert: Dienstag 5. April 2016, 13:07
Auf dem Blatt Papier sieht es dann ja so aus, dass aus einem one-to-one matching ein many-to-one matching wird, der 'Deferred Acceptance Algorithm' läuft dort wie folgt ab:
Man kann den bestehenden Algorithm dann (ohne Bedenken) so abändern, dass man nur die Kapazitäten für die Schule berücksichtigt(die nun neu dazu kommen, da ja eine Schule mehr als einen Teacher aufnehmen kann) und für die Schulen dann quasi pro Kapazität, die Preference Liste kopiert, sprich wenn s1 die Präferenzen (i1,i2,i3) hat, hat Schule s1 bei einer kapazität von 2 die Präferenzen (i1,i1,i2,i2,i3,i3). Hät Schule s1 eine Kapzität von 3 wären die Präferenzen (i1,i1,i1,i2,i2,i2,i3,i3,i3). Das ganze sollte jetzt das neue Programm berücksichtigen.Step 1: Each teacher proposes to her most preferred school. Each school tentatively
assigns its spots to its proposers one at a time in the order of its preference.
When all of its sports are tentatively assigned, it rejects all the propoers who remain
unassigned
In general, at Step k: Each teacher who was rejected in the previous step proposes
to her next preferred school. Each school considers the set of teachers it has
been holding and its new proposers. It tentatively assigns its spots to these teachers
one at a time in the order of its preference. When all of its spots are tentatively
assigned, it rejects all the proposers who remain unassigned.
The algorithm terminates when no student proposal is rejected.and each student
is assigned her final tentative assignment.
@Anaconda2016: In dem Fall hätte snafu dann aber doch schon mehrere Lösungen zum vervielfachen von solchen Einträgen gezeigt.
Hierzu noch eine rein LC-basierte Lösung:
Code: Alles auswählen
l = [1, 2, 3]
print([elem for pair in zip(l, l) for elem in pair])
-
- User
- Beiträge: 11
- Registriert: Dienstag 5. April 2016, 13:07
hat sich erledigt, danke, beiträge können gelöscht werden
Wohl kaum. Ein Forum lebt auch von der Archivierung seiner Threads. Wenn du das nicht willst, dann solltest du besser deine Fragen in einem IRC-Chat oder ähnliches stellen.Anaconda2016 hat geschrieben:beiträge können gelöscht werden
Es wäre nur nett, dem Forum deine Lösung mitzuteilen, so dass auch andere Leser davon lernen können.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.