Liste/Array ausgewählte Elemente kopieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

@Anaconda2016: Wo liegt denn das konkrete Problem beim Umsetzen der ”Papierlösung” in Python? Wie sieht die Lösung auf dem Papier aus?
Anaconda2016
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:
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.
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.
BlackJack

@Anaconda2016: In dem Fall hätte snafu dann aber doch schon mehrere Lösungen zum vervielfachen von solchen Einträgen gezeigt.
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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])
Anaconda2016
User
Beiträge: 11
Registriert: Dienstag 5. April 2016, 13:07

hat sich erledigt, danke, beiträge können gelöscht werden
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Anaconda2016 hat geschrieben: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.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

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.
Antworten