Volgorde

Continue & discrete verdelingen, toevalsveranderlijken, betrouwbaarheidsintervallen, correlaties.
Plaats reactie
MarijnB
Nieuw lid
Nieuw lid
Berichten: 12
Lid geworden op: 09 nov 2008, 09:14

Volgorde

Bericht door MarijnB » 15 nov 2008, 15:00

Stel, je het een 3 A's, 2 B's en 4 C's

Het aantal volgorde is dan: 9! / 4! x 3! x 2! = 1260

Nu wil je de letters op 4 plaatsen plaatsen. bv. AAAB of AABA

Hoeveel volgorde zijn er nu? Kan iemand mij opweg helpen?

SafeX
Moderator
Moderator
Berichten: 14278
Lid geworden op: 29 dec 2005, 11:53

Re: Volgorde

Bericht door SafeX » 15 nov 2008, 15:58

Je kiest willekeurig 4 letters uit die 9?

MarijnB
Nieuw lid
Nieuw lid
Berichten: 12
Lid geworden op: 09 nov 2008, 09:14

Re: Volgorde

Bericht door MarijnB » 15 nov 2008, 18:01

SafeX schreef:Je kiest willekeurig 4 letters uit die 9?
Ja, maar het "probleem" zit hem er in dat je meerdere dezelfde letters hebt! Als je 9 verschillende letters hebt krijg je gewoon 9x8x7x6 = 3024 verschillende "woorden"

Maar nu heb je dus te maken met meerdere dezelfde letters. Zo komt AAAB er 6 maal in voor.

SafeX
Moderator
Moderator
Berichten: 14278
Lid geworden op: 29 dec 2005, 11:53

Re: Volgorde

Bericht door SafeX » 15 nov 2008, 18:29

Alle mog nagaan, zoals bv 2 dezelfde en 2 versch letters.

MarijnB
Nieuw lid
Nieuw lid
Berichten: 12
Lid geworden op: 09 nov 2008, 09:14

Re: Volgorde

Bericht door MarijnB » 15 nov 2008, 18:32

Dat dacht ik al! dat deed ik altijd al, maar vroeg me af of er niet een snellere manier voor was, bedankt trouwens!

SafeX
Moderator
Moderator
Berichten: 14278
Lid geworden op: 29 dec 2005, 11:53

Re: Volgorde

Bericht door SafeX » 15 nov 2008, 19:49

Maar zorgvuldig: jouw vb:

Achtereenvolgens: mog om A te kiezen, mog om B ..., mog om te rangschikken.

Anoniem

Re: Volgorde

Bericht door Anoniem » 15 nov 2008, 22:46

Er is volgens mij wel een snellere methode maar hij zit diep.
Je verdeelt zonder rekening te houden met het aantal van letters de "combinaties".
De volgende combinaties zijn dan mogelijk:
(4,0,0) = Alle 4 zijn dezelfde letter en de andere 2 letters zijn er niet.
(3,1,0) = 1 letter 3 maal en 1 letter 1 maal en 1 letter niet.
(2,2,0) = 2 letters zijn dubbel en 1 letter niet.
(2,1,1) = 1 letter dubbel en van de andere ieder een.

Het aantal lettercombinaties is dan:


Het aantal mogelijkheden met letters en combinaties is dan


Als vb werk ik de combinatie van (3,1,0) uit.

(aaab,aaac,cccb,ccca)

(1112,1121,1211,2111)
Er zijn dus 4*4 =16 mogelijkheden om 4 letters te rangschikken waarbij je 1 letter 3x gebruikt en een andere letter 1x. (aaab,aaba,abaa,baaa,aaac,aaca,acaa,caaa,cccb,ccbc,cbcc,bccc,ccca,ccac,cacc,accc)

De andere mag je zelf doen!

Anoniem

arie
Moderator
Moderator
Berichten: 3917
Lid geworden op: 09 mei 2008, 09:19

Re: Volgorde

Bericht door arie » 16 nov 2008, 15:20

Als je van programmeren houdt is er een eenvoudige oplossing:

Code: Selecteer alles

FUNCTIE  A(n, a, b, c){
r = 0;
ALS(n==1){
    ALS(a>0) r = r + 1;
    ALS(b>0) r = r + 1;
    ALS(c>0) r = r + 1;
    }
ANDERS{
    ALS(a>0) r = r + A(n-1, a-1, b, c);
    ALS(b>0) r = r + A(n-1, a, b-1, c);
    ALS(c>0) r = r + A(n-1, a, b, c-1);
    }
RETURN(r);
}
De functie A is afhankelijk van
n = aantal te gebruiken letters
a = aantal A's dat beschikbaar is
b = aantal B's dat beschikbaar is
c = aantal C's dat beschikbaar is
en geeft terug het resultaat r = het gevraagde aantal woorden.
De functie zet eerst het resultaat op nul.
Indien er 1 plaats is (ALS(n==1)) is het aantal mogelijkheden gelijk aan het aantal letters dat nog beschikbaar is,
anders, indien er dus meerdere plaatsen in te vullen zijn zijn, kijken we voor elke letter of die nog beschikbaar is, en zo ja, dan tellen we met behulp van de functie A zelf nog het aantal mogelijkheden voor de rest van het woord (n-1 plaatsen beschikbaar, de betreffende letter - 1 omdat we die gebruikt hebben).

Als ik de functie aanroep met A(4,3,1,4) krijg ik als resultaat r=71.

Natuurlijk is deze methode nogal resultaat gericht en geeft het minder wiskundig inzicht, maar het werkt wel goed, ook voor grotere aantallen.
Je moet de code nog wel even aanpassen aan de taal van je voorkeur, maar dat lijkt me goed te doen.

Plaats reactie