modelovy priklad...mam vo vreci 10 ocislovanych guliciek, vyberam vzdy 4 gulicky ktore naspet nevhadzujem, potrebujem 2x algoritmus ktory mi vypise vsetky moznosti , jeden ked nebude zalezat na poradit (gulicka 1,2,3,4 je to iste ako keby vyberiem 4,3,2,1) a dalsi kde bude zalezat na poradi (gulicka 1,2,3,4 a 4,3,2,1 su 2 odlisne vybery)
dufam ze som to napisal zrozimitne
co sa tyka jazyka moze to byt v php,c,java,python,....
algoritmus - vypis vsetkych kombinaci
Re: algoritmus - vypis vsetkych kombinaci
kombinacie bez opakovania
Kód: Vybrať všetko
<?php
function comb($a, $len){
if ($len > count($a))return 'error';
$out = array();
if ($len==1) {
foreach ($a as $v) $out[] = array($v);
return $out;
}
$len--;
while (count($a) > $len) {
$b = array_shift($a);
$c = comb($a, $len);
foreach ($c as $v){
array_unshift($v, $b);
$out[] = $v;
}
}
return $out;
}
$test = array(1,2,3,4,5,6,7,8,9,10); // 10 lopticiek
$a = comb($test,4); // vyberame 4
print_r($a);
?>-
mirak2
Hardcore addict
- Príspevky: 6719
- Registrovaný: 18 sep 2005, 13:44
- Bydlisko: Prague, CZE / Kosice, SVK
Re: algoritmus - vypis vsetkych kombinaci
obe verzie vies vytvorit cez 4 for cykly
zalezi na poradi: mas styri for cykly (vnorene) a pri kazdom zacinas od prveho (medzitym kontrolujes ci aktualna hodnota premennej foru nie je uz vybrana)
nezalezi na poradi: znova styri vnorene cykly, prvy zacinas od jednotky, druhy vnoreny zacnes od premenna prveho+1, dalsi premenna druheho+1 atd a len to vypisujes (je to lahsie lebo nemusis kontrolovat)
dufam ze netrepem bludy
zalezi na poradi: mas styri for cykly (vnorene) a pri kazdom zacinas od prveho (medzitym kontrolujes ci aktualna hodnota premennej foru nie je uz vybrana)
nezalezi na poradi: znova styri vnorene cykly, prvy zacinas od jednotky, druhy vnoreny zacnes od premenna prveho+1, dalsi premenna druheho+1 atd a len to vypisujes (je to lahsie lebo nemusis kontrolovat)
dufam ze netrepem bludy