mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 09:32 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: Zurück  1, 2, 3, 4, 5  Weiter
Autor Nachricht
DEKONSTRUKTIV

Dabei seit: 22.06.2009
Ort: bln
Alter: -
Geschlecht: -
Verfasst So 10.11.2013 15:58
Titel

Antworten mit Zitat Zum Seitenanfang

qualidat hat geschrieben:
Du gibst der Liste ein zusätzliches Feld und füllst dieses mit Zufallszahlen aus einem möglichst großen Bereich, so verringerst du die Gefahr, gleiche Nummern zu erhalten. Danach sortierst du nach diesem Feld. Am Ende gehst du die Liste einfach der Reihe nach in Zweier-Schritten durch ... oder du nimmst jeweils einen von vorne und einen von hinten ... oder ...


im ernst? weia.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
qualidat

Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht: Männlich
Verfasst So 10.11.2013 16:57
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
im ernst? weia.


Aha. Würdest du bitte auch erklären, was du daran ungeeignet findest? "Sort" ist ein Befehl, der in Sekundenbruchteilen ausgeführt wird, wenn es sich nicht gerade um zig-tausende Datensätze handelt. Und so lang war die Liste des TE m.W. nicht.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
DEKONSTRUKTIV

Dabei seit: 22.06.2009
Ort: bln
Alter: -
Geschlecht: -
Verfasst So 10.11.2013 17:30
Titel

Antworten mit Zitat Zum Seitenanfang

was duda vorschlägst is nichtsweiter als das shufflen der datenmenge.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
qualidat

Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht: Männlich
Verfasst So 10.11.2013 21:08
Titel

Antworten mit Zitat Zum Seitenanfang

DEKONSTRUKTIV hat geschrieben:
was duda vorschlägst is nichtsweiter als das shufflen der datenmenge.


Ja, aber "shuffle" ist kein SQL-Befehl. Ich dachte, es ging um Namen aus bzw. in einer Datenbank ... habe wohl das Eingansposting nicht gründlich genug gelesen ...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 110
Geschlecht: Männlich
Verfasst So 10.11.2013 21:44
Titel

Antworten mit Zitat Zum Seitenanfang

qualidat hat geschrieben:
DEKONSTRUKTIV hat geschrieben:
was duda vorschlägst is nichtsweiter als das shufflen der datenmenge.


Ja, aber "shuffle" ist kein SQL-Befehl. Ich dachte, es ging um Namen aus bzw. in einer Datenbank ... habe wohl das Eingansposting nicht gründlich genug gelesen ...


Auch dann wäre es extrem ineffizient die Datenbank mit einer zusätzlichen Spalte aufzublähen. Das Generieren und Einfügen von zufälligen Werten ist teuer.

Ich habe aus Spaß an der Freude mal deinen Vorschlag umgesetzt und dem Array einen zweiten Wert zur Sortierung eingeimpft.

Für 5 Millionen Items braucht der Zweizeiler von m 3.5 Sekunden - das Sortieren mittels zusätzlichem Wert ganze 269.7 Sekunden (das sind mal bequeme 7700% mehr, vom ungleich höheren Speicherverbrauch ganz zu schweigen).

Wenn man das ganze über die Datenbank macht, dann auch eher mit einem ORDER BY RAND() als mit zusätzlichem Datenmüll. Langsamer dürfte es (zumindest bei MySQL) dennoch sein.
  View user's profile Private Nachricht senden
qualidat

Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht: Männlich
Verfasst So 10.11.2013 23:50
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Für 5 Millionen Items braucht ...


Ich hege keine Zweifel an der Richtigkeit deiner Tests, aber ich glaube, es ging nicht um 5 Millionen Leute, sondern bestenfalls um einige Hundert ...

Aber "order by random()" klingt echt clever, auf die Idee bin ich noch garnicht gekommen. Man lernt nie aus ... *Thumbs up!*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
xaos

Dabei seit: 06.10.2004
Ort: Kargath
Alter: -
Geschlecht: -
Verfasst Mo 11.11.2013 17:57
Titel

Antworten mit Zitat Zum Seitenanfang

remote hat geschrieben:

Wenn man das ganze über die Datenbank macht, dann auch eher mit einem ORDER BY RAND() als mit zusätzlichem Datenmüll. Langsamer dürfte es (zumindest bei MySQL) dennoch sein.


qualidat hat geschrieben:

Aber "order by random()" klingt echt clever, auf die Idee bin ich noch garnicht gekommen. Man lernt nie aus ...


MySQL kopiert für den Spaß wohl die komplette Tabelle, ergänzt um eine Spalte für die Zufallsnummer und sortiert anschliessend nach dieser. Klingt weder clever noch performant...
  View user's profile Private Nachricht senden
DEKONSTRUKTIV

Dabei seit: 22.06.2009
Ort: bln
Alter: -
Geschlecht: -
Verfasst Mo 11.11.2013 18:05
Titel

Antworten mit Zitat Zum Seitenanfang

xaos hat geschrieben:
Klingt weder clever noch performant...


loadbalancing für arme, wenn der mysqld auf ner anderen maschine läuft als der httpd...
  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: Zurück  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.