Hvordan finder jeg alle mulige kombinationer?
OK, denne her kräver lidt matematik-hjerne (hvilket jeg ikke altid har)....Jeg spiller hver uge et lille oddssystem, der hedder 1-3-4, dvs. jeg välger 1 sikker, 3 halvsikre og 4 chancer.
Hvis blot en i hver kategori holder, er der gevinst, idet jeg spiller fölgende räkker:
S,H1,C1
S,H1,C2
S,H1,C3
S,H1,C4
S,H2,C1
S,H2,C2
S,H2,C3
S,H2,C4
S,H3,C1
S,H3,C2
S,H3,C3
S,H3,C4
Jeg kan beregne mig frem til, at der er 12 räkker, idet:
1/1 sikker (binomialt) = 1 kombination
gange
1/3 halvsikre (binomialt) = 3 kombinationer
gange
1/4 chancer (binomialt) = 4 kombinationer.
--> Så 12 räkker.
Jeg går imidlertid med tanker om at spille andre systemer. Lad os forestille os, at jeg vil spille 1-3-5, men jeg vil have at mindst 2 af chancerne skal holde.
Det vil give
1/1 sikker (binomialt) = 1 kombination
gange
1/3 halvsikre (binomialt) = 3 kombinationer
gange
2/5 chancer (binomialt) = 10 kombinationer.
--> 30 räkker.
Jeg önsker at finde alle kombinationer, hvilket lige pludselig ikke er så ligetil. Jeg kan pröve at göre det manuelt her:
S,H1,C1,C2
S,H1,C1,C3
S,H1,C1,C4
S,H1,C1,C5
S,H1,C2,C3
S,H1,C2,C4
S,H1,C2,C5
S,H1,C3,C4
S,H1,C3,C5
S,H1,C4,C5
S,H2,C1,C2
S,H2,C1,C3
S,H2,C1,C4
S,H2,C1,C5
S,H2,C2,C3
S,H2,C2,C4
S,H2,C2,C5
S,H2,C3,C4
S,H2,C3,C5
S,H2,C4,C5
S,H3,C1,C2
S,H3,C1,C3
S,H3,C1,C4
S,H3,C1,C5
S,H3,C2,C3
S,H3,C2,C4
S,H3,C2,C5
S,H3,C3,C4
S,H3,C3,C5
S,H3,C4,C5
Kort og godt mangler jeg en lösning, der smertefrit kan give mig alle kombinationer - uanset system.
Jeg har alle (kamp)data, gruppering (S/H/C) mv. som variabler i et array allerede - og jeg ved derudover fölgende:
$s = antal sikre (1 i mit seneste eksempel)
$s_h = hvor mange af de sikre, der skal spilles af gangen (1 i mit seneste eksempel)
$binomial_fordeling_for_sikre: 1 kombination
$h = antal halvchancer (3 i mit seneste eksempel)
$h_h = hvor mange af de halvsikre, der skal spilles af gangen (1 i mit seneste eksempel)
$binomial_fordeling_for_halvsikre: 3 kombinationer
$c = antal halvchancer (5 i mit seneste eksempel)
$c_h = hvor mange af de halvsikre, der skal spilles af gangen (2 i mit seneste eksempel)
$binomial_fordeling_for_chancer: 10 kombinationer
så jeg ved, at der er 1*3*10 kombinationer = 30 (räkker).
og jeg ved, at der er 4 (kampe) per räkke.
og jeg ved, at der er 9 kampe i alt i dette tilfälde.
men hvordan og hvorledes?
jeg har allerede en funktion til at finde binomiale coefficienter:
<?php
// calculate binomial coefficient
function binomial_coeff($n, $k) {
$j = $res = 1;
if($k < 0 || $k > $n)
return 0;
if(($n - $k) < $k)
$k = $n - $k;
while($j <= $k) {
$res *= $n--;
$res /= $j++;
}
return $res;
}
?>