Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[PHP] deelnemers indelen gebaseerd op voorkeur

Pagina: 1
Acties:

Vraag


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
Mijn vraag
Deelnemers moeten gebaseerd op voorkeuren ingedeeld zijn maar als de groep vol zit moet er random het max aantal mensen in de groep geplaatst worden. De deelnemers moeten alle voorkeuren aangeven. Het moet in een array komen voor de resultaten.

Ik maak op dit moment gebruik van 3 arrays(later ga ik het via een database doen)

PHP: filename
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
  $ArrDeelnemers = array();
    $ArrDeelnemers[0] = array("StudentenID"=>"1","Studentnummer"=>"0300123","Naam"=>"Harrie Jansen","Email"=>"0300123@student.rocvantwente.nl");
    $ArrDeelnemers[1] = array("StudentenID"=>"2","Studentnummer"=>"0300032","Naam"=>"Yiri Jaspers","Email"=>"0300032@student.rocvantwente.nl");
    $ArrDeelnemers[2] = array("StudentenID"=>"3","Studentnummer"=>"0257230", "Naam"=>"Loren Zoutkamp", "email"=>"0257230@student.rocvantwente.nl");
    $ArrDeelnemers[3] = array("StudentenID"=>"4","Studentnummer"=>"0300830","Naam"=>"Demion Trojka","Email"=>"0300830@student.rocvantwente.nl");
    $ArrDeelnemers[4] = array("StudentenID"=>"5","Studentnummer"=>"0300098","Naam"=>"Patricia Paay","Email"=>"0300098@student.rocvantwente.nl");
    $ArrDeelnemers[5] = array("StudentenID"=>"6","Studentnummer"=>"0300567","Naam"=>"Henk Knol","Email"=>"0300567@student.rocvantwente.nl");
    $ArrDeelnemers[6] = array("StudentenID"=>"7","Studentnummer"=>"0300876","Naam"=>"Piet Paulusma","Email"=>"0300876@student.rocvantwente.nl");
    $ArrDeelnemers[7] = array("StudentenID"=>"8","Studentnummer"=>"0300644","Naam"=>"Enzo Renzo","Email"=>"0300644@student.rocvantwente.nl");
    $ArrDeelnemers[8] = array("StudentenID"=>"9","Studentnummer"=>"0300099","Naam"=>"Milan Knol","Email"=>"0300099@student.rocvantwente.nl");
    $ArrDeelnemers[9] = array("StudentenID"=>"10","Studentnummer"=>"0200013","Naam"=>"Irma Dekker","Email"=>"0200013@student.rocvantwente.nl");

  $ArrOpdrachten = array();
    $ArrOpdrachten[0] = array("OpdrachtID" =>"1","Opdrachtnaam" =>"Opdracht_1","Maxaantal" => "3");
    $ArrOpdrachten[1] = array("OpdrachtID" =>"2","Opdrachtnaam" =>"Opdracht_2","Maxaantal" => "2");
    $ArrOpdrachten[2] = array("OpdrachtID" =>"3","Opdrachtnaam" =>"Opdracht_3","Maxaantal" => "2");
    $ArrOpdrachten[3] = array("OpdrachtID" =>"4","Opdrachtnaam" =>"Opdracht_4","Maxaantal" => "3");

$ArrVoorkeur = array(
    $ArrVoorkeur[0][0] = array("StudentenID" => "1" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[0][1] = array("StudentenID" => "1" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_1"),
    $ArrVoorkeur[0][2] = array("StudentenID" => "1" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_4"),
    $ArrVoorkeur[0][3] = array("StudentenID" => "1" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_3"),

    $ArrVoorkeur[1][0] = array("StudentenID" => "2" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_4"),
    $ArrVoorkeur[1][1] = array("StudentenID" => "2" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_1"),
    $ArrVoorkeur[1][2] = array("StudentenID" => "2" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[1][3] = array("StudentenID" => "2" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_3"),

    $ArrVoorkeur[2][0] = array("StudentenID" => "3" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[2][1] = array("StudentenID" => "3" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_3"),
    $ArrVoorkeur[2][2] = array("StudentenID" => "3" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_4"),
    $ArrVoorkeur[2][3] = array("StudentenID" => "3" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_1"),

    $ArrVoorkeur[3][0] = array("StudentenID" => "4" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_1"),
    $ArrVoorkeur[3][1] = array("StudentenID" => "4" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[3][2] = array("StudentenID" => "4" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_3"),
    $ArrVoorkeur[3][3] = array("StudentenID" => "4" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_4"),

    $ArrVoorkeur[4][0] = array("StudentenID" => "5" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_4"),
    $ArrVoorkeur[4][1] = array("StudentenID" => "5" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_3"),
    $ArrVoorkeur[4][2] = array("StudentenID" => "5" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[4][3] = array("StudentenID" => "5" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_1"),

    $ArrVoorkeur[5][0] = array("StudentenID" => "6" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_3"),
    $ArrVoorkeur[5][1] = array("StudentenID" => "6" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[5][2] = array("StudentenID" => "6" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_1"),
    $ArrVoorkeur[5][3] = array("StudentenID" => "6" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_4"),

    $ArrVoorkeur[6][0] = array("StudentenID" => "7" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_1"),
    $ArrVoorkeur[6][1] = array("StudentenID" => "7" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_4"),
    $ArrVoorkeur[6][2] = array("StudentenID" => "7" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[6][3] = array("StudentenID" => "7" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_3"),

    $ArrVoorkeur[7][0] = array("StudentenID" => "8" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[7][1] = array("StudentenID" => "8" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_4"),
    $ArrVoorkeur[7][2] = array("StudentenID" => "8" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_1"),
    $ArrVoorkeur[7][3] = array("StudentenID" => "8" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_3"),

    $ArrVoorkeur[8][0] = array("StudentenID" => "9" , "VoorkeurNaam" => "1" , "Voorkeur" => "Opdracht_2"),
    $ArrVoorkeur[8][1] = array("StudentenID" => "9" , "VoorkeurNaam" => "2" , "Voorkeur" => "Opdracht_3"),
    $ArrVoorkeur[8][2] = array("StudentenID" => "9" , "VoorkeurNaam" => "3" , "Voorkeur" => "Opdracht_4"),
    $ArrVoorkeur[8][3] = array("StudentenID" => "9" , "VoorkeurNaam" => "4" , "Voorkeur" => "Opdracht_1"),

    $ArrVoorkeur[9][0] = array("StudentenID" => "10" , "VoorkeurNaam" => "1" , "Voorkeur" => "3"),
    $ArrVoorkeur[9][1] = array("StudentenID" => "10" , "VoorkeurNaam" => "2" , "Voorkeur" => "1"),
    $ArrVoorkeur[9][2] = array("StudentenID" => "10" , "VoorkeurNaam" => "3" , "Voorkeur" => "4"),
    $ArrVoorkeur[9][3] = array("StudentenID" => "10" , "VoorkeurNaam" => "4" , "Voorkeur" => "2")
    );

Ik heb op internet niet echt iets kunnen vinden

Beste antwoord (via KuXXeon. op 19-09-2018 09:41)


  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
KuXXeon. schreef op dinsdag 18 september 2018 @ 15:57:
Mijn gewenste output is de deelnemers ingedeeld bij een opdracht gebaseerd op hun voorkeur.
Dat lijkt me een goeie.

Dan zou ik beginnen met een array te maken hoe je denkt dat het er uit moet zien voor 1 opdracht en 1 student.
Je hoeft het nog niet met php te vullen, maar gewoon, hoe zou jij dat eruit laten zien?

Never explain with stupidity where malice is a better explanation

Alle reacties


  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

🔴 🔴 🔴 🔴 🔴

Ik snap de vraag niet helemaal, die mag je even verduidelijken.

Wat je eerst even mag doen is je post aanpassen en:
• De code tussen [code]-tags plaatsen => meer uitleg hier
• De persoonsgevens maskeren. Het is natuurlijk niet charmant dat je hier op een openbaar forum zomaar namen en e-mail adressen van medestudenten neerzet
• De boel een beetje inkorten en relevante code plaatsen; het enige wat we nu zien is dat je tig arrays loopt te vullen.

☀️🔋  18 Panelen | 5,8 kWp | SolarEdge SE6K


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
Harrie_ schreef op dinsdag 18 september 2018 @ 11:09:
Ik snap de vraag niet helemaal, die mag je even verduidelijken.

Wat je eerst even mag doen is je post aanpassen en:
• De code tussen ~~~[code]-tags plaatsen => meer uitleg hier
• De persoonsgevens maskeren. Het is natuurlijk niet charmant dat je hier op een openbaar forum zomaar namen en e-mail adressen van medestudenten neerzet
• De boel een beetje inkorten en relevante code plaatsen; het enige wat we nu zien is dat je tig arrays loopt te vullen.
Ik heb gebruik gemaakt van niet bestaande gegevens.
Ik laat die array's zien om duidelijk te maken welke gegevens ik gebruik

  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

🔴 🔴 🔴 🔴 🔴

@KuXXeon. Ok maar ik begrijp nog steeds niet helemaal wat je vraag nu is.
Ik zie 3 arrays (deelnemers, opdrachten en voorkeuren). In de array Voorkeuren geef je per deelnemer aan welke voorkeur deze persoon heeft. (Waarom verwijs je hier naar de voorkeur_naam en niet naar het ID want daar is een ID tenslotte voor?).

Verder lees ik in de OP 'als de groep vol zit moet er random het max aantal mensen in de groep geplaatst worden'. Dus:
• Wanneer zit een groep vol?
• Hoe kun je mensen in een groep plaatsen als de groep al vol zit?

Verder:
• Wat heb je al geprobeerd behalve een hele lijst arrays aanmaken?
• Waar kom je dan precies niet uit?
• Probeer eens (zonder code) te redeneren wat er moet gebeuren?

☀️🔋  18 Panelen | 5,8 kWp | SolarEdge SE6K


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
Harrie_ schreef op dinsdag 18 september 2018 @ 11:42:
@KuXXeon. Ok maar ik begrijp nog steeds niet helemaal wat je vraag nu is.
Ik zie 3 arrays (deelnemers, opdrachten en voorkeuren). In de array Voorkeuren geef je per deelnemer aan welke voorkeur deze persoon heeft. (Waarom verwijs je hier naar de voorkeur_naam en niet naar het ID want daar is een ID tenslotte voor?).

^^Dat is zeker waar.

Verder lees ik in de OP 'als de groep vol zit moet er random het max aantal mensen in de groep geplaatst worden'. Dus:
• Wanneer zit een groep vol?

Dat staat bij de opdrachten. Daar staat de max aangegeven

• Hoe kun je mensen in een groep plaatsen als de groep al vol zit?

Als 4 mensen als voorkeur 1, 2 hebben gekozen en er maar 3 mensen in kunnen moet er random 3 mensen gekozen worden. (Had ik niet helemaal goed uitgelegd)

Verder:
• Wat heb je al geprobeerd behalve een hele lijst arrays aanmaken?

Het moet eerst als array gemaakt worden en daarna moet er gebruik worden gemaakt van

• Waar kom je dan precies niet uit?

Het plaatsen van de deelnemers in de groep op basis van de eerste voorkeur en als ze niet in de groep passen dat ze op basis van de 2de voorkeur in een groep geplaatst wordt

• Probeer eens (zonder code) te redeneren wat er moet gebeuren?

  • DJMaze
  • Registratie: juni 2002
  • Niet online

Maak je niet druk, dat doet de compressor maar


  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
Hij wordt misschien makkelijker als je het eerst uitwerkt zonder max_aantal en gewoon iedereen in de groep van eerste voorkeur stopt? Hoe zou je dat aanpakken?

Never explain with stupidity where malice is a better explanation


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
incaz schreef op dinsdag 18 september 2018 @ 12:10:
Hij wordt misschien makkelijker als je het eerst uitwerkt zonder max_aantal en gewoon iedereen in de groep van eerste voorkeur stopt? Hoe zou je dat aanpakken?
Ik ben zelf nog een best beginnende programmeur. Ik heb nog geen ervaring met dit soort opdrachten en met een klein duwtje in mijn rug kom ik er wel

  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
Je komt er ook wel :) Stel, je code werkt al helemaal. Wat wil je dan kunnen zien op je scherm?

Never explain with stupidity where malice is a better explanation


  • bauke1994
  • Registratie: maart 2011
  • Laatst online: 20:59
Schrijf het eens om naar een aantal classes en objecten i.p.v. allemaal arrays, dat maakt je code een stuk duidelijker.
Verder is het gewoon een kwestie van over alle deelnemers itereren en hun eerste voorkeur selecteren zolang de groep niet vol zit. Als niet alle deelnemers zijn toegewezen aan een groep itereer je er nog een keer over en doe je hetzelfde met de 2e voorkeur etc.

Nog een waardevolle bron over arrays en wat je er mee kan:
http://php.net/manual/en/ref.array.php

  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
incaz schreef op dinsdag 18 september 2018 @ 12:16:
Je komt er ook wel :) Stel, je code werkt al helemaal. Wat wil je dan kunnen zien op je scherm?
Het moet eigenlijk een functie zijn die zorgt dat hij deelnemers koppelt aan een opdracht gebaseerd op voorkeur. Ik heb een ERP systeem die de rest van het werk doet

[Voor 3% gewijzigd door KuXXeon. op 18-09-2018 12:27]


  • Hopscotch
  • Registratie: september 2015
  • Laatst online: 06-06 21:53
schrijf voor jezelf eens de stappen uit in pseudo code of zelfs in gewone mensen taal die je nodig hebt

Iets als:
- check eerst of er uberhaupt genoeg plek is voor al je studenten
- zoek de opdrachten die nog niet overvol zitten en wijs daar de studenten aan toe die dat als eerste voorkeur hebben
- neem de overvolle opdrachten en kies random de studenten die hem mogen doen
- doe een volgende ronde gebaseerd op de tweede voorkeur
- dan de derde enzovoort

Zorg dat je dat stap voor stap gaat doen en eventueel de stappen weer uitwerkt in nog kleinere stappen net zolang to je stapjes zo klein zijn dat je ze goed snapt en er functies voor kunt schrijven die niet meer uit kleinere stappen bestaan.

  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
Hopscotch schreef op dinsdag 18 september 2018 @ 14:05:
schrijf voor jezelf eens de stappen uit in pseudo code of zelfs in gewone mensen taal die je nodig hebt

Iets als:
- check eerst of er uberhaupt genoeg plek is voor al je studenten
- zoek de opdrachten die nog niet overvol zitten en wijs daar de studenten aan toe die dat als eerste voorkeur hebben
- neem de overvolle opdrachten en kies random de studenten die hem mogen doen
- doe een volgende ronde gebaseerd op de tweede voorkeur
- dan de derde enzovoort

Zorg dat je dat stap voor stap gaat doen en eventueel de stappen weer uitwerkt in nog kleinere stappen net zolang to je stapjes zo klein zijn dat je ze goed snapt en er functies voor kunt schrijven die niet meer uit kleinere stappen bestaan.
Ik heb vooral moeite Het VoorkeurID,StudentenID en OpdrachtenID uit 1 van de arrays te halen

  • _Moe_
  • Registratie: mei 2006
  • Laatst online: 16-06 10:59
Geen idee wat je al kent van programmeren, maar TDD durft ook al wel eens helpen voor het uitwerken van functionaliteit.

RTFM!


  • Hopscotch
  • Registratie: september 2015
  • Laatst online: 06-06 21:53
KuXXeon. schreef op dinsdag 18 september 2018 @ 14:07:
[...]


Ik heb vooral moeite Het VoorkeurID,StudentenID en OpdrachtenID uit 1 van de arrays te halen
Dan moet je de hint van @bauke1994 opvolgen en er fatsoenlijke objecten van maken dat scheelt je een hoop hersenbrekers met een kluwen van arrays.

Voor deze functionaliteit heb je overigens de hele deelnemers array niet nodig en als je toch in arrays wilt blijven werken maak dan van de voorkeuren een veel simpeler array namelijk student id naar een lijstje van voorkeuren:

code:
1
2
3
4
5
$voorkeuren = [
    1 => [2, 1, 4, 3],
    2 => [4, 1, 2, 3],
        ....
]

  • bauke1994
  • Registratie: maart 2011
  • Laatst online: 20:59
Hopscotch schreef op dinsdag 18 september 2018 @ 14:12:
[...]

Dan moet je de hint van @bauke1994 opvolgen en er fatsoenlijke objecten van maken dat scheelt je een hoop hersenbrekers met een kluwen van arrays.

Voor deze functionaliteit heb je overigens de hele deelnemers array niet nodig en als je toch in arrays wilt blijven werken maak dan van de voorkeuren een veel simpeler array namelijk student id naar een lijstje van voorkeuren:

code:
1
2
3
4
5
$voorkeuren = [
    1 => [2, 1, 4, 3],
    2 => [4, 1, 2, 3],
        ....
]
Of gebruik nested arrays, als opstapje naar classes en objects.

code:
1
2
3
4
5
$deelnemers = [
    ['naam' => 'Bert, 'voorkeuren' => [2, 1, 4, 3]],
    ['naam '=> 'Aart, 'voorkeuren' => [4, 1, 2, 3]],
    ....
];

  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
_Moe_ schreef op dinsdag 18 september 2018 @ 14:10:
Geen idee wat je al kent van programmeren, maar TDD durft ook al wel eens helpen voor het uitwerken van functionaliteit.
Zit net in het 2de jaar van mijn opleiding

  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
KuXXeon. schreef op dinsdag 18 september 2018 @ 12:26:
Het moet eigenlijk een functie zijn die zorgt dat hij deelnemers koppelt aan een opdracht gebaseerd op voorkeur. Ik heb een ERP systeem die de rest van het werk doet
In dat geval, wat wil je het ERP geven om mee te werken? Hoe ziet dat eruit?

Never explain with stupidity where malice is a better explanation


  • NMe
  • Registratie: februari 2004
  • Laatst online: 00:05

NMe

Quia Ego Sic Dico.

KuXXeon. schreef op dinsdag 18 september 2018 @ 14:15:
[...]


Zit net in het 2de jaar van mijn opleiding
En in het tweede jaar van je opleiding heb je nog moeite met "het VoorkeurID, StudentenID en OpdrachtenID uit 1 van de arrays te halen"?

Je bent het jezelf onnodig moeilijk aan het maken. Om te beginnen door alles eerst in arrays te zetten terwijl het naar eigen zeggen straks nog in een database moet belanden. Waarom dan tijd verspillen met die tussenstap? Vanuit de database krijg je het nooit in exact dezelfde vorm als die array zonder het eerst in zo'n array te zetten, waardoor je straks ineens een vertaalslag nodig hebt om je code te laten werken.

Daarnaast ben je nog steeds gewoon niet duidelijk over wat je nou eigenlijk niet lukt. Hoezo, je hebt moeite met spul uit die arrays halen? Je kent de structuur, want die heb je zelf gedefinieerd. Wat lukt er precies niet? Wat heb je geprobeerd? Help ons om jou te helpen. Op dit moment weten we zoals incaz al zegt niet eens wat je gewenste output is.

[Voor 3% gewijzigd door NMe op 18-09-2018 14:39]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
incaz schreef op dinsdag 18 september 2018 @ 14:38:
[...]


In dat geval, wat wil je het ERP geven om mee te werken? Hoe ziet dat eruit?
De ERP heeft alleen een functie nodig. De rest is al aanwezig

  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
Wat is 'de rest'? Wat voor functie heeft het ERP nodig? Wat wil je / verwacht je dat die functie doet?

Never explain with stupidity where malice is a better explanation


  • Reptile209
  • Registratie: juni 2001
  • Nu online

Reptile209

- gers -

incaz schreef op dinsdag 18 september 2018 @ 14:48:
Wat is 'de rest'? Wat voor functie heeft het ERP nodig? Wat wil je / verwacht je dat die functie doet?
Gokje:
tabellen met namen/opdrachten/voorkeuren --> functie / *black magic* --> koppeltabel tussen opdrachten en namen.

If you're not part of the solution, you're part of the precipitate.


  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
@Reptile209, ik denk dat het voor TS nuttiger is als hij/zij het zelf onder woorden probeert te brengen, dan kom je dichter bij de oplossing. We kunnen het wel voor gaan kauwen, maar ik denk niet dat dat veel toevoegt.

Never explain with stupidity where malice is a better explanation


  • NMe
  • Registratie: februari 2004
  • Laatst online: 00:05

NMe

Quia Ego Sic Dico.

KuXXeon. schreef op dinsdag 18 september 2018 @ 14:41:
[...]

De ERP heeft alleen een functie nodig. De rest is al aanwezig
Ik stel voor dat je nu eindelijk eens iets van moeite steekt in een antwoord hier dat uitlegt wat je nu eigenlijk probeert te bereiken. Je bent enorm cryptisch. Lees je eigen posts eens door en stel je daarbij eens voor dat je geen idee hebt wat het eindresultaat moet zijn. Dat is hoe wij je posts lezen en we kunnen er echt geen chocola van maken. Als je dan ook nog eens bij vragen om verduidelijking met dergelijke one-liners aankomt heeft dit topic echt helemaal geen zin meer en kan ik het net zo goed dicht doen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

incaz schreef op dinsdag 18 september 2018 @ 14:58:
@Reptile209, ik denk dat het voor TS nuttiger is als hij/zij het zelf onder woorden probeert te brengen, dan kom je dichter bij de oplossing. We kunnen het wel voor gaan kauwen, maar ik denk niet dat dat veel toevoegt.
TS vult op zijn tentamen programmeren in bij de vraag "Welk design pattern kan je het beste gebruiken om ... op te lossen": Black Magic. Want TS nam zijn spiekbriefje te letterlijk :+

Oftewel, @Reptile209 zegt niks voor, maar probeert het cryptische van TS te spiegelen ;)

[Voor 8% gewijzigd door CurlyMo op 18-09-2018 15:08]

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
NMe schreef op dinsdag 18 september 2018 @ 14:38:
[...]

En in het tweede jaar van je opleiding heb je nog moeite met "het VoorkeurID, StudentenID en OpdrachtenID uit 1 van de arrays te halen"?

Je bent het jezelf onnodig moeilijk aan het maken. Om te beginnen door alles eerst in arrays te zetten terwijl het naar eigen zeggen straks nog in een database moet belanden. Waarom dan tijd verspillen met die tussenstap? Vanuit de database krijg je het nooit in exact dezelfde vorm als die array zonder het eerst in zo'n array te zetten, waardoor je straks ineens een vertaalslag nodig hebt om je code te laten werken.

Daarnaast ben je nog steeds gewoon niet duidelijk over wat je nou eigenlijk niet lukt. Hoezo, je hebt moeite met spul uit die arrays halen? Je kent de structuur, want die heb je zelf gedefinieerd. Wat lukt er precies niet? Wat heb je geprobeerd? Help ons om jou te helpen. Op dit moment weten we zoals incaz al zegt niet eens wat je gewenste output is.
mijn school wil ons meerdere programmeer talen leren in een half jaar want het eerste half jaar was het alleen maar blokjes en we kregen maar 3 uur per week

  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
@KuXXeon., dat klinkt alsof het de moeite waard is om met medestudenten te overleggen over het studieprogramma en kijken of de school daarin ook een goed opgebouwd programma biedt.

Maar hier is het probleem op zich niet de taal volgens mij, maar dat je nog niet duidelijk hebt hoe je een opdracht in stukjes moet hakken. Dat is ook lastig om te leren, maar vandaar de vragen: wat wil je bereiken en hoe ziet dat er dan uit? Je hebt al een setje testdata aangemaakt, en dat is een prima begin, hoe ziet de data eruit die het resultaat wordt van je functie?

Never explain with stupidity where malice is a better explanation


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
incaz schreef op dinsdag 18 september 2018 @ 15:33:
@KuXXeon., dat klinkt alsof het de moeite waard is om met medestudenten te overleggen over het studieprogramma en kijken of de school daarin ook een goed opgebouwd programma biedt.

Maar hier is het probleem op zich niet de taal volgens mij, maar dat je nog niet duidelijk hebt hoe je een opdracht in stukjes moet hakken. Dat is ook lastig om te leren, maar vandaar de vragen: wat wil je bereiken en hoe ziet dat er dan uit? Je hebt al een setje testdata aangemaakt, en dat is een prima begin, hoe ziet de data eruit die het resultaat wordt van je functie?
Ik ben op dit moment op stage en zit met medestudenten die eigenlijk geen idee hebben wat ik heb gedaan

  • kruimel0
  • Registratie: oktober 2014
  • Laatst online: 02:30
KuXXeon. schreef op dinsdag 18 september 2018 @ 15:35:
[...]


Ik ben op dit moment op stage en zit met medestudenten die eigenlijk geen idee hebben wat ik heb gedaan
KuXXeon, beantwoord nu eens de vragen die er worden gesteld. In de comment waar jij op reageert staat:
wat wil je bereiken en hoe ziet dat er dan uit? Hoe ziet de data eruit die het resultaat wordt van je functie?

  • Stoelpoot
  • Registratie: september 2012
  • Niet online
KuXXeon. schreef op dinsdag 18 september 2018 @ 15:27:
[...]


mijn school wil ons meerdere programmeer talen leren in een half jaar want het eerste half jaar was het alleen maar blokjes en we kregen maar 3 uur per week
En wat heeft dit voor nut als enige reactie op de vragen die @NMe stelde?

De manier waarop je je vragen formuleert lijkt erop gericht alsof je met een projectleider of collega praat, die al voldoende kennis heeft van het domein en het einddoel. Wij hebben dat niet. Het enige wat wij hebben is een dump van data wat nog niet eens in een gangbaar serialisatieformaat staat voor de leesbaarheid. De adviezen die de Tweakers hier geven doe je (of zo lijkt het iig) niets mee, terwijl dat juist *de* technieken zijn die ervaren programmeurs dagelijks gebruiken om hun problemen uit te werken.

Je laatste reactie ook weer, je reageert heel netjes op de eerste alinea, maar de tweede waarin je een in je eigen woorden "duwtje in de rug" krijgt, in de vorm van een gebruikelijke werkmethode waar wereldwijd o.a. programmeurs, maar ook constructiewerkers, doctoren, koks en vele andere beroepsgroepen dagelijks op vertrouwen om hun werk uit te kunnen voeren, wordt genegeerd.

  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
NMe schreef op dinsdag 18 september 2018 @ 14:38:
[...]
Daarnaast ben je nog steeds gewoon niet duidelijk over wat je nou eigenlijk niet lukt. Hoezo, je hebt moeite met spul uit die arrays halen? Je kent de structuur, want die heb je zelf gedefinieerd. Wat lukt er precies niet? Wat heb je geprobeerd? Help ons om jou te helpen. Op dit moment weten we zoals incaz al zegt niet eens wat je gewenste output is.
Het is inderdaad handiger om het via een database te doen. Mijn gewenste output is de deelnemers ingedeeld bij een opdracht gebaseerd op hun voorkeur.

Dus als student 1 graag bij opdracht 2 wilt als 1ste voorkeur is het de bedoeling dat er wordt gekeken of er nog meer mensen bij opdracht 2 willen. Als er meer mensen bij de opdracht willen dan dat er plek is moet er random geselecteerd worden wie aan de opdracht gekoppeld worden en bij wie er naar de 2de keuze gekeken moet worden. Dat moet gedaan worden totdat iedereen is ingedeeld bij een opdracht.

Ik hoop dat ik het nu wat beter heb uitgelegd.(Ben niet de grootste held in uitleggen)

Acties:
  • Beste antwoord
  • +1Henk 'm!

  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
KuXXeon. schreef op dinsdag 18 september 2018 @ 15:57:
Mijn gewenste output is de deelnemers ingedeeld bij een opdracht gebaseerd op hun voorkeur.
Dat lijkt me een goeie.

Dan zou ik beginnen met een array te maken hoe je denkt dat het er uit moet zien voor 1 opdracht en 1 student.
Je hoeft het nog niet met php te vullen, maar gewoon, hoe zou jij dat eruit laten zien?

Never explain with stupidity where malice is a better explanation


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
incaz schreef op dinsdag 18 september 2018 @ 16:03:
[...]


Dat lijkt me een goeie.

Dan zou ik beginnen met een array te maken hoe je denkt dat het er uit moet zien voor 1 opdracht en 1 student.
Je hoeft het nog niet met php te vullen, maar gewoon, hoe zou jij dat eruit laten zien?
In de array moet staan welke opdracht het is, welke student gekoppeld is aan die opdracht en hoeveelste keuze het is (dus als het zijn eerste keus is moet dat in de array staan om eventueel later nog iets mee te doen)(hoort bij de opdracht)

  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

KuXXeon. schreef op dinsdag 18 september 2018 @ 15:57:
[...]
Dus als student 1 graag bij opdracht 2 wilt als 1ste voorkeur is het de bedoeling dat er wordt gekeken of er nog meer mensen bij opdracht 2 willen. Als er meer mensen bij de opdracht willen dan dat er plek is moet er random geselecteerd worden wie aan de opdracht gekoppeld worden en bij wie er naar de 2de keuze gekeken moet worden. Dat moet gedaan worden totdat iedereen is ingedeeld bij een opdracht.
En bedenk ook wat je met alle uitzonderingssituaties doet. Dit zou je voorjezelf kunnen uit tekenen in een beslisboom. Neem bijv. deze situatie:

Opdracht 1 heeft plek voor drie mensen
Student A heeft als eerste voorkeur opdracht 2 en als tweede opdracht 1.
Student C, D, en E hadden als eerste voorkeur opdracht 1.
Student A is uitgeloot voor opdracht opdracht 2.

Wat doe je dan:
1. Worden de studenten A, C, D en E dan ook random toegedeeld aan opdracht 1?
of
2. Krijgt persoon A voorrang op opdracht 1, omdat dit al zijn tweede voorkeur was?
of
3. Worden de studenten C, D en E aan opdracht 1 gekoppeld. Bij student A wordt nu naar de derde keus gekeken?

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
CurlyMo schreef op dinsdag 18 september 2018 @ 16:13:
[...]

En bedenk ook wat je met alle uitzonderingssitutaties doet. Dit zou je voorjezelf kunnen uit tekenen in een beslisboom. Neem bijv. deze situatie:

Opdracht 1 heeft plek voor drie mensen
Student A heeft als eerste voorkeur opdracht 2 en als tweede opdracht 1.
Student C, D, en E hadden als eerste voorkeur opdracht 1.
Student A is uitgeloot voor opdracht opdracht 2.

Wat doe je dan:
1. Worden de studenten A, C, D en E dan ook random toegedeeld aan opdracht 1?
of
2. Krijgt persoon A voorrang op opdracht 1, omdat dit al zijn tweede voorkeur was?
of
3. Worden de studenten C, D en E aan opdracht 1 gekoppeld. Bij student A wordt nu naar de derde keus gekeken?
Hier had ik al over nagedacht. Als er een student is die als 2de keus een opdracht heeft waar nog ruimte is wordt die persoon gekoppeld aan zijn 2de keuze en gaat de Student A naar opdracht 1

  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

KuXXeon. schreef op dinsdag 18 september 2018 @ 16:15:
[...]


Hier had ik al over nagedacht.
Waarom vertel je dat dan niet?
Als er een student is die als 2de keus een opdracht heeft waar nog ruimte is wordt die persoon gekoppeld aan zijn 2de keuze en gaat de Student A naar opdracht 1
En wat doe je dan met C, D en E die opdracht 1 als eerste keuze hadden, maar waar nu nog maar plek is voor 2 studenten aangezien student A al is toebedeeld aan opdracht 1?

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
CurlyMo schreef op dinsdag 18 september 2018 @ 16:17:
[...]

Waarom vertel je dat dan niet?


[...]

En wat doe je dan met C, D en E die opdracht 1 als eerste keuze hadden, maar waar nu nog maar plek is voor 2 studenten aangezien student A al is toebedeeld aan opdracht 1?
Als zij een 2de keus hebben waar nog plek is gaat Student A naar opdracht 1,
Als dat niet het geval is wordt er gekeken naar de 3de keuze van Student A

  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

KuXXeon. schreef op dinsdag 18 september 2018 @ 16:19:
[...]
Als zij een 2de keus hebben waar nog plek is gaat Student A naar opdracht 1,
Dat strookt niet met wat je hiervoor eerder zei.

Dat betekent dus dat eerst van alle studenten wordt gekeken of er plek is bij hun eerste keus. En nadat dat bekend is pas voor de tweede keus van alle nog niet ingedeelde studenten wordt gekeken of er plek is. En daarna voor de derde keus.
Als dat niet het geval is wordt er gekeken naar de 3de keuze van Student A
Wat dus kan beteken dat studenten bij hun laatste keus terecht kunnen komen, omdat er niet met voorrang wordt gewerkt.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
CurlyMo schreef op dinsdag 18 september 2018 @ 16:13:
En bedenk ook wat je met alle uitzonderingssituaties doet. Dit zou je voorjezelf kunnen uit tekenen in een beslisboom. Neem bijv. deze situatie:
Die zijn leuk voor later, maar dat geeft bij mij nou juist het soort chaos waardoor ik nergens toe kom.
Die uitzonderingen zijn nuttig voor later, maar ik zou eerst iets maken dat 1 student aan 1 opdracht koppelt. Gewoon, zodat je weet hoe je resultaat eruit komt te zien en hoe je daar komt.

En dan iets dat alle studenten aan de eerste voorkeur koppelt.

En pas als dat werkt, kun je langzamerhand de complexiteit steeds wat groter maken. Maar juist het te snel alles in 1 keer willen oplossen maakt het vaak chaotisch en overzichtelijk, dus daar zou ik niet mee beginnen.

@KuXXeon., welk array heb je nu voor je resultaat (in code-tags bij voorkeur)?

Never explain with stupidity where malice is a better explanation


  • n3othebest
  • Registratie: januari 2013
  • Laatst online: 23:20
CurlyMo schreef op dinsdag 18 september 2018 @ 16:23:
[...]

Dat strookt niet met wat je hiervoor eerder zei.

Dat betekent dus dat eerst van alle studenten wordt gekeken of er plek is bij hun eerste keus. En nadat dat bekend is pas voor de tweede keus van alle nog niet ingedeelde studenten wordt gekeken of er plek is. En daarna voor de derde keus.
Niet helemaal. Als student A als eerste keuze 1 heeft maar 1 is vol dan gaat die naar 2 kijken. Daarbij krijgt student A voorrang zolang student B die 2 als eerste keuze had makkelijk naar zijn tweede keuze (opdracht 3) geschoven kan worden.

  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

incaz schreef op dinsdag 18 september 2018 @ 16:24:
[...]
Die zijn leuk voor later, maar dat geeft bij mij nou juist het soort chaos waardoor ik nergens toe kom.
Bij mij juist niet. Als ik weet wat de bedrijfsregels zijn, dan kan ik die stap voor stap implementeren. Nu weten we nog niet wat die in de volledigheid zijn.

[Voor 134% gewijzigd door CurlyMo op 18-09-2018 16:36]

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • n3othebest
  • Registratie: januari 2013
  • Laatst online: 23:20
CurlyMo schreef op dinsdag 18 september 2018 @ 16:28:
[...]

Bij mij juist niet. Als ik weet wat de bedrijfsregels zijn, dan kan ik die stap voor stap implementeren. Nu weten we nog niet wat die in de volledigheid zijn.
Ik zie het als 2 losstaande zaken. 1 is het algoritme van toewijzing bedenken, het andere is het coderen. Indien beide een probleem zijn zou ik ze inderdaad niet combineren en dus de regels los uitwerken en een simpel algoritme implementeren om het coderen onder de knie te krijgen. Daarna kan je beide gaan combineren.

  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
CurlyMo schreef op dinsdag 18 september 2018 @ 16:28:
[...]

Bij mij juist niet. Als ik weet wat de bedrijfsregels zijn, dan kan ik die stap voor stap implementeren.
Jij misschien wel, maar de TS geeft aan dat 'ie niet weet hoe hij/zij een element uit een array benadert. Dus ik denk dat het prima is om eerst de makkelijke implementatie te bouwen, en dan daarna pas naar de detailregels te kijken. Die voegen nu gewoon nog niets toe.

Dat is trouwens ook stap voor stap, alleen zijn het andere stappen.

Never explain with stupidity where malice is a better explanation


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
incaz schreef op dinsdag 18 september 2018 @ 16:24:
[...]


Die zijn leuk voor later, maar dat geeft bij mij nou juist het soort chaos waardoor ik nergens toe kom.
Die uitzonderingen zijn nuttig voor later, maar ik zou eerst iets maken dat 1 student aan 1 opdracht koppelt. Gewoon, zodat je weet hoe je resultaat eruit komt te zien en hoe je daar komt.

En dan iets dat alle studenten aan de eerste voorkeur koppelt.

En pas als dat werkt, kun je langzamerhand de complexiteit steeds wat groter maken. Maar juist het te snel alles in 1 keer willen oplossen maakt het vaak chaotisch en overzichtelijk, dus daar zou ik niet mee beginnen.

@KuXXeon., welk array heb je nu voor je resultaat (in code-tags bij voorkeur)?
De array Resultaten. Die op het einde als return terug komt.
Die array heb ik aangemaakt maar die is op dit moment leeg.

  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
Prima. Stel nu dat je alleen student 1 wilt toewijzen aan opdracht 1, en dat zet je dan in Resultaten. Hoe ziet dat eruit?

Never explain with stupidity where malice is a better explanation


  • Reptile209
  • Registratie: juni 2001
  • Nu online

Reptile209

- gers -

Maar je kunt zelfs de base-case op verschillende manieren aanpakken, waarvan ik durf te roepen dat dat tot verschillende antwoorden kan/zal leiden:
- Je kunt vanuit de student werken (student 1, 1e voorkeur, dan student 2, 1e voorkeur, tot er opdrachten vol raken)
- Je kunt vanuit de opdrachten werken (welke studenten hebben opdracht 1 als voorkeur, welke studenten hebben opdracht 2 als voorkeur, ...)
- tussenvormen van beiden

In beide aanpakken zal het ook nog uitmaken of je bij de eerste of de laatste studen begint, of bij de eerste of laatste opdracht. Er zal in de meeste gevallen meer dan één oplossing mogelijk zijn. Dus accepteer je de eerste de beste die je vindt, of ga je er meerdere doorrekenen en dan met een score bepalen welke de 'beste' is?

If you're not part of the solution, you're part of the precipitate.


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
incaz schreef op dinsdag 18 september 2018 @ 16:33:
Prima. Stel nu dat je alleen student 1 wilt toewijzen aan opdracht 1, en dat zet je dan in Resultaten. Hoe ziet dat eruit?
Is het al de bedoeling dat ik het ga coderen of het uitleg?

Met uitleg: Als eerste heb je de opdrachtID(1), daarna StudentenID(1), en als Voorkeur 1 in dit geval.

  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

n3othebest schreef op dinsdag 18 september 2018 @ 16:26:
Niet helemaal. Als student A als eerste keuze 1 heeft maar 1 is vol dan gaat die naar 2 kijken. Daarbij krijgt student A voorrang zolang student B die 2 als eerste keuze had makkelijk naar zijn tweede keuze (opdracht 3) geschoven kan worden.
Inderdaad. Verkeerd gelezen.
n3othebest schreef op dinsdag 18 september 2018 @ 16:30:
[...]
Ik zie het als 2 losstaande zaken. 1 is het algoritme van toewijzing bedenken, het andere is het coderen. Indien beide een probleem zijn zou ik ze inderdaad niet combineren en dus de regels los uitwerken en een simpel algoritme implementeren om het coderen onder de knie te krijgen. Daarna kan je beide gaan combineren.
Eens. Daarom een voorstel om uit te gaan van de simpelste bedrijfsregel:

Iedereen wordt toebedeeld aan zijn eerste keus. Als de eerste keuze vol is dan random toebedelen. Daarna hebben alle opdrachten nog maar plek voor het aantal nog niet toegewezen studenten. Dat maakt een nieuwe begin situatie. Alle studenten die toebedeeld zijn worden geschrapt. Alle volle opdrachten worden geschrapt en de riedel begint opnieuw met de overgebleven studenten en opdrachten.

Als dit eenmaal werkt, dan kan je naar de voorrangs en doorschuifsituatie gaan.

Maar alles staat en valt met het kunnen verwerken van gegevenssets. Of dat nu een array of database is maakt dan niet uit. En het voor ogen kunnen zien van je eindresultaat.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • incaz
  • Registratie: augustus 2012
  • Laatst online: 29-04 20:24
@KuXXeon. ik zou het zeker ook in code doen! Dan kun je namelijk stap voor stap delen variabel maken en feeling krijgen voor waar je mee werkt.

Never explain with stupidity where malice is a better explanation


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

@KuXXeon. Ik oprecht benieuwd naar waarom de reactie die je nu als beste antwoord hebt aangemerkt het beste antwoord is. Wat heb je er van geleerd?

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Morrar
  • Registratie: juni 2002
  • Laatst online: 21:43
CurlyMo schreef op dinsdag 18 september 2018 @ 16:36:
[...]

Inderdaad. Verkeerd gelezen.


[...]

Eens. Daarom een voorstel om uit te gaan van de simpelste bedrijfsregel:

Iedereen wordt toebedeeld aan zijn eerste keus. Als de eerste keuze vol is dan random toebedelen. Daarna hebben alle opdrachten nog maar plek voor het aantal nog niet toegewezen studenten. Dat maakt een nieuwe begin situatie. Alle studenten die toebedeeld zijn worden geschrapt. Alle volle opdrachten worden geschrapt en de riedel begint opnieuw met de overgebleven studenten en opdrachten.

Als dit eenmaal werkt, dan kan je naar de voorrangs en doorschuifsituatie gaan.

Maar alles staat en valt met het kunnen verwerken van gegevenssets. Of dat nu een array of database is maakt dan niet uit. En het voor ogen kunnen zien van je eindresultaat.
Dit soort problemen kun je beter oplossen met lineaire optimalisatie / programmeren: Wikipedia: Linear programming

Ken aan iedere opgegeven voorkeur punten toe: 1e keuze = 4 punten, 2e keuze = 3 punten... 5e keuze = 0 punten.

Definieer dan het probleem als maximaliseer het totale aantal punten over alle studenten. Voeg de groepsgroottes toe als beperkingen / constraints aan het probleem.

Zijn zat tooltjes die dit soort problemen snel voor je op kunnen lossen, bv Google OR tools: https://developers.google.com/optimization/

  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 07:03

CurlyMo

www.pilight.org

Morrar schreef op woensdag 19 september 2018 @ 13:23:
[...]
Definieer dan het probleem als maximaliseer het totale aantal punten over alle studenten. Voeg de groepsgroottes toe als beperkingen / constraints aan het probleem.
Liniear programmeren voor mezelf ook onbekend was voordat jij er over begon. Het heeft wel mijn interesse gewekt, dus ben ik ook zelf benieuwd hoe je het probleem van TS zo oplost.

Volgens mij zijn dit de kaders:

A = aantal punten in groep 1
B = aantal punten in groep 2
C = aantal punten in groep 3
D = aantal punten in groep 4

Objective:
T = A + B + C + D

Constraints:
10 >= T <= 40
3 >= A <= 12
2 >= B <= 8
2 >= C <= 8
3 >= D <= 12

Klotp dit? En zo ja, hoe nu dan verder? Ik snap het nog bij twee afhankelijk variabelen, maar (volgens mij) 4 gaat me nu nog te ver :)

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
CurlyMo schreef op woensdag 19 september 2018 @ 12:19:
@KuXXeon. Ik oprecht benieuwd naar waarom de reactie die je nu als beste antwoord hebt aangemerkt het beste antwoord is. Wat heb je er van geleerd?
Het was niet specifiek alleen dat antwoord het waren er meerdere. Die dezelfde persoon heeft gegeven

  • KuXXeon.
  • Registratie: juli 2018
  • Laatst online: 10-09-2019
Morrar schreef op woensdag 19 september 2018 @ 13:23:
[...]


Dit soort problemen kun je beter oplossen met lineaire optimalisatie / programmeren: Wikipedia: Linear programming

Ken aan iedere opgegeven voorkeur punten toe: 1e keuze = 4 punten, 2e keuze = 3 punten... 5e keuze = 0 punten.

Definieer dan het probleem als maximaliseer het totale aantal punten over alle studenten. Voeg de groepsgroottes toe als beperkingen / constraints aan het probleem.

Zijn zat tooltjes die dit soort problemen snel voor je op kunnen lossen, bv Google OR tools: https://developers.google.com/optimization/
De aantal keuzes moet gebaseerd worden op het aantal opdrachten dus variabel zijn. Dan is het denk ik extra werk
Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True