Volledige versie bekijken : formule
celar
%Europe/Berlin %450 %2005, 11:48
Hallo,
Ik ben bezig met een vragenspel waarin er 4 vragen zijn met elk twee antwoord mogelijkheden.
{1=A-B},{2=A-B},{3=A-B},{4=A-B}
dus elke antwoord kan A of B zijn.
Nu wil ik weten hoeveel mogelijke combinaties er mogelijk zijn en hoe ik die kan laten "genereren". Dat ik een lijst heb als volgt:
{1-A},{2-A},{3-A},{4-A}
{1-A},{2-A},{3-A},{4-B}
{1-A},{2-A},{3-B},{4-A}
{1-A},{2-B},{3-A},{4-A}
{1-B},{2-A},{3-A},{4-A}
etc. etc.
een goeie wiskundige uitleg is ook handig. Ik dacht zelf dat wanneer je dus 4x4x4x4 doet je het aantal combinaties hebt. maar ben er niet zeker van dat dit klopt.
Thanks!
Roenes
%Europe/Berlin %456 %2005, 11:57
een goeie wiskundige uitleg is ook handig. Ik dacht zelf dat wanneer je dus 4x4x4x4 doet je het aantal combinaties hebt. maar ben er niet zeker van dat dit klopt.Dit klopt niet 4x4x4x4 = 256 mogelijkheden.
Voor iedere vraag zijn er 2 antwoorden. dus bij vraag 1 heb je de keuze uit 2. bij vraag 2 ook, 3 en 4 idem. Dat zou de som 2*2*2*2 = 2^4 = 16 opleveren.
Ter controle zou je alle mogelijkheden uit kunnen schrijven, dat heb ik niet gedaan. Maar als mijn wiskundige kennis me niet in de steek laat, kom je op 16 uit :)
Hoe je dit visueel makkelijk kan weergeven (als je dat wilde, kan ik niet helemaal opmaken uit de vraag), zou ik eerlijk gezegd niet weten. Je zult dan denk ik met 2 for lusjes moeten werken. 1tje voor het aantal vragen en 1tje voor het aantal mogelijkheden.
Misschien kijk ik daar later vandaag even naar, kan best interessant zijn :)
gbolssens
%Europe/Berlin %484 %2005, 12:37
Dat zou de som 2*2*2*2 = 2^4 = 16 opleveren.
Wiskundig zit het zo:
aantal combinaties = a^b
waarbij a het aantal mogelijkheden is (in jouw geval 2, zijnde A of B)
en b is het aantal variabelen met dat aantal mogelijkheden (in jouw geval 4 omdat er 4 vragen zijn)
Heb je sommige meerkeuzevragen die een ander aantal antwoorden hebben, dan wordt het:
aantal comb. = a1^b1 + a2^b2 + ...... enz.
De 2 for-lussen waar Roenes over sprak komen zo tot hun recht:
aantalVragen=4;
aantalAntwoordenPerVraag=2;
aantalMogelijkheden=0;
for (i=1; i<=aantalVragen; i++)
{
for(j=1; j=aantalAntwoordenPerVraag; j++)
{
trace ("Vraag: "+i+" ; Antwoord:"+j);
aantalMogelijkheden++;
}
}
trace("Het aantal mogelijkheden is:"+aantalMogelijkheden+" en dat klopt want ik heb 't zelf geteld");
trace("Maar volgens de wiskunde is het"+Math.pow(aantalAntwoordenPerVraag,aantalVragen) );
greetz,
GB
Gerrit55
%Europe/Berlin %494 %2005, 12:51
Mijn knobbel is niet zo groot hoor, maar als je vier vragen hebt, met 2 antwoorden per vraag, dan kom je toch uit op 8 (4 * 2) ???
Roenes
%Europe/Berlin %498 %2005, 12:57
gbolssens, je bent een < vergeten in je 2e lusje ;)
Maarruhm, ik heb het rijtje eens uitgeschreven en dan kom je toch echt op 16:
AAAA
AAAB
AABA
AABB
ABAA
ABAB
ABBA
ABBB
BBBB
BBBA
BBAA
BAAA
BBAB
BABB
BABA
BAAB
Volgens mij zitten hier geen dubbele in, maar je 2 lusjes zo los klopt niet. Want je houd dan geen rekening met combinaties. Dus de lusjes moeten iets anders in elkaar steken. :)
Roenes
%Europe/Berlin %499 %2005, 12:59
Mijn knobbel is niet zo groot hoor, maar als je vier vragen hebt, met 2 antwoorden per vraag, dan kom je toch uit op 8 (4 * 2) ???Neej, dit is een standaard denkfout die mensen vaak maken. Want je let dan niet op combinaties. Erg goed in uitleggen hiervan ben ik niet, omdat ik zelf nooit wiskunde A heb gehad, en dan dus ook nooit kansberekening heb gehad. Ik weet er het een en ander van omdat ik geregeld vrienden hiermee heb geholpen.
Maar een goed onderbouwde uitleg geven wordt dus moeilijk ;)
celar
%Europe/Berlin %506 %2005, 13:09
ik heb de code van gbolssens bekeken (zat nog klein foutje in). maar daar krijg ik 8 combi's uit.
aantalVragen=4;
aantalAntwoordenPerVraag=2;
aantalMogelijkheden=0;
for (i=1; i<=aantalVragen; i++)
{
for(j=1; j <= aantalAntwoordenPerVraag; j++)
{
trace ("Vraag: "+i+" ; Antwoord:"+j);
aantalMogelijkheden++;
}
}
trace("Het aantal mogelijkheden is:"+aantalMogelijkheden+" en dat klopt want ik heb 't zelf geteld");
trace("Maar volgens de wiskunde is het"+Math.pow(aantalAntwoordenPerVraag,aantalVragen) );
edit: zie net de reacties hierboven ;-)
maar is het ook mogelijk om dus per combinatie ( dus bij eerste combinatie {1-A},{2-A},{3-A},{4-A} ) een uitslag te geven. dan zou ik dus de eerste loop 4 x moeten laten loopen (aantal vragen) en binnen die loop A of B zetten(1 of 0 kan ook). Maar hoe weet ik dan dat het een unieke combi is? want loop je nu per vraag en mogelijke antwoord (eerste loop 4, tweede loop 2) dan krijg je 8 uitslagen.
edit: om al die mogelijke combi's te krijgen (tracen) dan moet je volgens mij al van tevoren weten hoeveel combi's er mogelijk zijn?!
Roenes
%Europe/Berlin %556 %2005, 14:21
edit: om al die mogelijke combi's te krijgen (tracen) dan moet je volgens mij al van tevoren weten hoeveel combi's er mogelijk zijn?!Dat is simpel te berekenen. Je weet het aantal vragen en het aantal antwoorden. Dan is het aantalAntwoorden^aantalVragen = combinaties.
Ik heb al zitten denken hoe je dat in lusjes moet kunnen tracen. Alleen ben ik daar nog niet uit. Maar dat moet zeker wel mogelijk zijn :) Misschien bestaat er al een algoritme voor, dat weet ik niet :)
Roenes
%Europe/Berlin %588 %2005, 15:07
Ik heb de vraag doorgespeeld naar Narie en die heeft al wel een scriptje ervoor maar is er nog mee bezig. Hij zal strax waarschijnlijk wel met een stukkie komen :)
Tha Narie
%Europe/Berlin %593 %2005, 15:14
Total : 16
AAAA
AAAB
AABA
AABB
ABAA
ABAB
ABBA
ABBB
BAAA
BAAB
BABA
BABB
BBAA
BBAB
BBBA
BBBB
nrOfQuestions = 4;
answers = ["A", "B"];
totalNr = Math.pow(answers.length, nrOfQuestions);
trace("Total : " + totalNr);
for(var i=0; i<totalNr; ++i)
{
var bin = i.toString(answers.length);
bin = new Array((nrOfQuestions+1) - bin.length).join("0").split("undefined").join("") + bin;
for(var a in answers)bin = bin.split( a).join(answers[a]);
trace(bin);
}
Vieze manier, maar werkt wel :)
Roenes
%Europe/Berlin %599 %2005, 15:23
Dat bedoelde ik ;)
Even erbij vermelden: met meerdere vragen en antwoorden werkt het ook nogsteeds. Subtiele manier, had ik iig nooit bedacht :)
celar
%Europe/Berlin %609 %2005, 15:38
Wauw.
snap niet precies wat hij doet. Wat ik eruit kan halen is dat hij knipt en plakt zeg maar:-D
maar werkt als een speer.
Tha Narie
%Europe/Berlin %649 %2005, 16:35
http://www.flashfocus.nl/forum/showthread.php?p=17412#post17412
Hier werkende als app.
Zal komende dagen uitleg bij komen te staan ;)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.