mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 08:49 Benutzername: Passwort: Auto-Login

Thema: Mechanismus um Pärchen zu bilden vom 08.11.2013


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Mechanismus um Pärchen zu bilden
Seite: 1, 2, 3, 4, 5  Weiter
Autor Nachricht
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Fr 08.11.2013 16:24
Titel

Mechanismus um Pärchen zu bilden

Antworten mit Zitat Zum Seitenanfang

Servus

In einem kleinen, selbstgeschriebenen Softwaretool geht es darum, aus einer Liste von Namen Pärchen zu bilden. Weil es hier aber nicht um ne Swingerparty geht, darf jeder nur ein Partner haben und sich auch nicht mit sich selber paaren. Lächel

Bisher mache ich das - gefüht - mit der Hand am Arm. Die Liste steht in einem Aray, ich bestimme die Länge und benutze dann Zufalszahlen. Für die Postion 1 in der Liste bestimme ich eine Zufallszahl in der max. Länge des Arays, und vergleiche, ob dies Zahl schon im ziel-Aray vorhanden ist oder nicht. Wenn vorhandenoder der eigne Index, dann solange neu, bis das nicht mehr der Fall ist. Danach dann die nächste Position usw.

Performant ist natürlich was anderes, schon bei Listen mit 10 oder mehr Personen. Und weil ich das Projekt jetzt mal ein wenig entstauben muss, frage ich mich gerade, ob es da nicht auch was besseres gibt, als meinen Zufalls-Mechanismus.

Wie würdet ihr dieses zuordnungsproblem angehen?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
top
Moderator

Dabei seit: 25.11.2003
Ort: Hedwig Holzbein
Alter: 52
Geschlecht: Männlich
Verfasst Fr 08.11.2013 17:13
Titel

Antworten mit Zitat Zum Seitenanfang

Kannst du die bereits ausgewählten Einträge nicht einfach aus der Liste entfernen und die berechnete Zufallszahl zur Auswahl immer um einen verringern?

Ich bin kein Programmierer, daher stelle ich mir das recht einfach vor... * Keine Ahnung... *
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Struwwelpeter

Dabei seit: 25.08.2005
Ort: Stuttgart
Alter: 37
Geschlecht: Männlich
Verfasst Fr 08.11.2013 18:31
Titel

Antworten mit Zitat Zum Seitenanfang

Falls die Namen bei jedem Aufruf neu gepaart werden sollen kannst du die Liste shuffeln (Fisher-Yates shuffle), dann lassen sich daraus die zufälligen Paarungen ablesen.

z.B.
Code:
random.shuffle(namen)
for i in range(0,len(namen),2):
    print namen[i:i+2]
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Fr 08.11.2013 19:22
Titel

Antworten mit Zitat Zum Seitenanfang

Naja, ich würde die Liste shuffeln und dann in ne Datenbank-Tabelle wegschreiben.

Aber der Ansatz klingt schon mal spannend. Muss ich mal durchspielen.

Aber weitere Ansätzeund Vorschläge gerne! *Thumbs up!*


Zuletzt bearbeitet von Nimroy am Fr 08.11.2013 19:23, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 109
Geschlecht: Männlich
Verfasst Fr 08.11.2013 20:44
Titel

Antworten mit Zitat Zum Seitenanfang

Nimroy hat geschrieben:

Aber weitere Ansätzeund Vorschläge gerne! *Thumbs up!*


Besser nicht - effizienter als shuffle + abspulen wird es nicht.
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Fr 08.11.2013 23:22
Titel

Antworten mit Zitat Zum Seitenanfang

Struwwelpeter hat geschrieben:
Falls die Namen bei jedem Aufruf neu gepaart werden sollen kannst du die Liste shuffeln (Fisher-Yates shuffle), dann lassen sich daraus die zufälligen Paarungen ablesen.

z.B.
Code:
random.shuffle(namen)
for i in range(0,len(namen),2):
    print namen[i:i+2]


Okay. Dann würde ich einmal die originale Liste haben, dagegen die geshuffelte legen und dann noch überprüfen, dass es nicht die gleichen Inhalte sind.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 109
Geschlecht: Männlich
Verfasst Sa 09.11.2013 00:08
Titel

Antworten mit Zitat Zum Seitenanfang

Nimroy hat geschrieben:


Okay. Dann würde ich einmal die originale Liste haben, dagegen die geshuffelte legen und dann noch überprüfen, dass es nicht die gleichen Inhalte sind.


wieso die zusätzliche überprüfung?
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Sa 09.11.2013 09:09
Titel

Antworten mit Zitat Zum Seitenanfang

Kann da nicht theoretisch rauskommen, dass Person C als Partner Person C bekommt?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [C4D] Diamanten zufällig ein Wort bilden lassen
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3, 4, 5  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.