Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Knifflige Aufgabe - was für Tüftler



Gorn
18-09-2002, 17:02
Hallo Leute,

also ich will folgendes Programm erstellen (egal mit welcher Sprache-für meine Diplomarbeit).

Folgende Situation:

Ich habe 25 Personen, diese werden in fünf Gruppen aufgeteilt.
Es gibt nun x viele Aufgaben. Bei jeder Aufgabe sollen sich die
Gruppen neu zusammensetzen.

Die Gruppenzusammensetzung soll so sein, das jeder mit jedem mal zusammengearbeitet hat. Mit der Hand kann ich etwa 5 - 8 Durchläufe logisch,
mit der Hilfe einer 5*5 Feldertafel, erarbeiten. Per Hand macht aber keinen Spass, ausserdem sind es jedesmal unterschiedlich viele Arbeitsaufgaben. Ich weiss auch, dass die komplette Mischung schon nach einigen Durchläufen vollbracht ist. Danach soll dann entweder die Systematik weiterlaufen oder per Zufall ne Gruppenauswahl getroffen werden.

Das ist alles kacke. Ich kann etwas programmieren (PHP, HTML oder auch FLASH MX, in allen würde es ja gehen). Ich habe aber nun keine Idee wie ich das angehen könnte. Habt Ihr da eine? Ach ja, einfach mit n! geht natürlich nicht, ich habe ja 5er Gruppen.


GoRn

axeljaeger
18-09-2002, 19:29
Ich verstehe deine Fragestellung nicht, wenn du noch etwas präziser dein Problem schilderst, könnte sich ein größeres Publikum mit deinem Problem befassen.

HTML oder auch FLASH MX -> beides keine Programmiersprachen

Gorn
19-09-2002, 07:59
Ok, jetztz wird es genauer:

1) Mit Flash kann man sehr gut Programmieren - geht fast alles . .naja fast (Actions Scrips - hat was von Java)

2) Das Programm

Aufgabenstellung: Es handelt sich hierbei um eine Versuchsanordnung in der Kleingruppen Aufgaben lösen müssen. Hierzu werden 25 Personen eingeladen. Jede dieser Personen bekommt eine Zahl zugeordnet - zwischen 1 - 25.

Jetzt sollen die Personen in 5er Gruppen eingeteilt werden. Da der Versuch über 4 Tage geht, geschieht diese Einteilung in 5er Gruppen etwa 10 - 15 mal (je nach Versuchsanordnung unterschiedlich). Diese Einteilung kann man mit einer Lotteriewahl durchführen. Ist aber nicht effektiv genug. Ich möchte das auf jedenfall jede Person einmal mit jeder anderen Person in einer 5er Gruppe war. Dies bedeutet, man muss einen Schlüssel bzw. eine Systematik entwickeln.

Bsp.:

Erste Gruppen zusammensetzung
Personen
Gruppe 1: 1, 2, 3, 4 ,5
Gruppe 2: 6, 7, 8, 9, 10
Gruppe 3: 11, 12, 13, 14, 15
Gruppe 4: 16, 17, 18, 19, 20
Gruppe 5: 21, 22, 23, 24 ,25

zweite Gruppenzusammensetzung

Personen
Gruppe 1: 21, 2, 3, 4 ,5
Gruppe 2: 1, 7, 8, 9, 10
Gruppe 3: 6, 12, 13, 14, 15
Gruppe 4: 11, 17, 18, 19, 20
Gruppe 5: 16, 22, 23, 24 ,25

usw.

Ich möchte dem Programm sagen, ich habe z.B. 10 Versuchdurchläufe, und das Programm sagt mir wie die Gruppen so gemischt werden, dass jede Person mit jeder andern Zusammen gearbeitet hat. Und am besten so, dass die Mischung der Gruppen deutlicher ist, als in dem Bsp. der zweiten Gruppenzusammensetzung oben.

Ich hoffe ich habe es nun besser erklärt!

GoRn

nobody0
19-09-2002, 08:41
Für eine zufällige Auswahl nimmst Du am besten eine Zufallszahl von /dev/random.
Um damit eine gleiverteilte Auswahl zu treffen darf es bei der Umrechnung keinen Überhang geben, also z. B. bei 1 aus 25 ein Byte nehmen (als Int, d. h. 0...254) und wenn das Byte (aus /dev/random) grösser als 249 ist, wird es verworfen (d. h. solange das nächste Byte genommen, bis es kleiner als 250 ist). Die völlig gleiverteilte Auswahl 1 aus 25 ist dann das gültige Byte ganzzahlig geteilt durch 10, so dass der Bereich 0..9 der 0 zugeordnet wird ... und der Bereich 240...249 der 24 zugeordnet wird. ;)

Mit Überhang und einer Modulo-Operation ist eine Auswahl zwar einfacher, aber fast immer falsch, weil nicht gleichverteilt, weil einige Werte mehr oder minder deutlich zu oft ausgewählt werden.

Gorn
19-09-2002, 10:40
Hi nobody0,

das Problem ist, wenn ich den Zufall verwende, kann es passieren, dass nicht jeder mit jedem gearbeitet hat - dann noch möglichst gleich oft.

Im Moment versuche ich eine systematische Auswahl - d.h. zuerst Arbeit in der Gruppe 1: 1 2 3 4 5 , dann im zweiten Durchlauf 1 6 11 16 21 - die anderen GRuppen werden dann dementsprechen mit variierten.

Aber das ist mega aufwendig - nen Programm könnte das schneller :-)

GoRn