Autor | Zpráva | ||
---|---|---|---|
marat Profil |
#1 · Zasláno: 13. 5. 2006, 16:10:49
Šlo by nějak pomocí PHP počítat kombinační číslo ? Kdyžtak jak ?
|
||
WanTo Profil |
#2 · Zasláno: 13. 5. 2006, 16:12:13
Co je to kombinační číslo?
|
||
marat Profil |
#3 · Zasláno: 13. 5. 2006, 16:13:44
Máš např. čísla 1 , 2 , 3 a 4
a chceš je mezi sebou prokombinovat - nesměj se opakovat... takže např. 1324,1423 atd... nechci přímo počet kombinací, ale spíš aby z php scriptu vylezly i ty combinace... |
||
thingwath Profil |
#4 · Zasláno: 13. 5. 2006, 16:19:17
Proč by to nešlo... Ani to není těžké :-)
|
||
marat Profil |
#5 · Zasláno: 13. 5. 2006, 16:19:51
Njn, problém je, že nevim jak na to... neznám princip...
|
||
WanTo Profil |
#6 · Zasláno: 13. 5. 2006, 16:25:14
Zkus chíli přemýšlet :-) Říká ti něco rekurze?
|
||
marat Profil |
#7 · Zasláno: 13. 5. 2006, 16:26:28
Ne, vubec, moc dobrý matematik nejsem a ve škole jsme to ještě nebrali... Je mi 13 let :P :D
|
||
marat Profil |
#8 · Zasláno: 13. 5. 2006, 16:27:16
Jo takhle v php... mno... moc ne
|
||
WanTo Profil |
#9 · Zasláno: 13. 5. 2006, 16:31:15 · Upravil/a: WanTo
marat
Ona ta rekurze s matematikou nemá vůbec nic společného. Rekurze znamená, že nějaká funkce volá sama sebe. Teďka píšu jeden článek, až ho dodělám, tak se ti s tím pokusím pomoct ;-) |
||
marat Profil |
#10 · Zasláno: 13. 5. 2006, 16:32:41
No jop, počet kombinací, to taky spočítám - faktoriál.. ale chci aby mě to ty kombinace vypsalo :P
|
||
Dero Profil |
#11 · Zasláno: 13. 5. 2006, 16:35:27
Ptákovina. Kombinační číslo n nad k se počítá dle vzorce: n! / k!.(n-k)!
Pokud je Ti třináct, tak dodám, že ! znamená faktoriál, který se počítá takto: n! = n.(n-1).(n-2) ... .[n-(n-1)] (v praxi: 7! = 7.6.5.4.3.2.1) Na faktoriál si snadno můžeš pomocí rekurze napsat funkci, pokud to PHP neumí interně. |
||
souki Profil |
#12 · Zasláno: 13. 5. 2006, 16:38:53
n! /( k!*(n-k)! )
|
||
thingwath Profil |
#13 · Zasláno: 13. 5. 2006, 16:40:39
No právě proto tu je rekurzivní řešení :-)
V podstatě budeš mít funkci, které předáš pole možných prvků a ta pro každý prvek zavolá opět sebe, ale bez toho jednoho prvku. Z toho už by měl princip vyplynout :-) |
||
marat Profil |
#14 · Zasláno: 13. 5. 2006, 16:47:31
Na faktoriál mam napsanou funkci...
Ale ne na kombinace ... to fakt nevim princip |
||
marat Profil |
#15 · Zasláno: 13. 5. 2006, 16:49:37
Počkej, abys to nebral tak, že z těch čísel jedno může prchnout :D prostě 1,2,3,4 a chci je zkombinovat...
|
||
marat Profil |
#16 · Zasláno: 13. 5. 2006, 16:53:29
No asi to neřešte, udělám si to třeba ručně přes excel :D
|
||
WanTo Profil |
#17 · Zasláno: 13. 5. 2006, 16:56:16
marat
Počkej chvilku, už na to píšu program :-) |
||
thingwath Profil |
#18 · Zasláno: 13. 5. 2006, 16:57:01
Poměrně elegantní řešení (dle mého názoru):
Budeme mít rekurzivní funkci, té budeme předávat mezivýsledek a pole možných prvků. Na počátku jí předáme prázdný mezivýsledek a úplné pole možných prvků. Pokud bude pole možných prvků nenulové, pro každý prvek z něj opět zavoláme sama sebe s tím, že do každého volání přidáme k mezivýsledku ten jeden prvek a naopak ho vyškrtneme z pole možných prvků. Až bude pole možných prvků prázdné, vytiskneme mezivýsledek. Lze si představit jako pěkný stromeček, kde nám listy tisknou výsledek :-) |
||
marat Profil |
#19 · Zasláno: 13. 5. 2006, 16:59:49
ALe myslim, že faktoriál počítá asi nějak tak kombinační číslo... přece faktoriál 3 = 3*2*1 = 6
3 2 1 3 1 2 1 3 2 2 1 3 1 2 3 2 3 1 == 6 kombinací čísel 3 2 1 = faktoriál čísla 3 což jsou 3 počáteční čísla |
||
Dero Profil |
#20 · Zasláno: 13. 5. 2006, 17:06:32
marat: To je permutace.
|
||
marat Profil |
#21 · Zasláno: 13. 5. 2006, 17:09:24
Ok.. tak jsem si spletl pojmy.. tohle jsem myslel :D ale aby mi ty permutace to vypisovalo
|
||
thingwath Profil |
#22 · Zasláno: 13. 5. 2006, 17:10:50
Proč mě nekopnete hned, mám v těhle názvech děsný bordel :-)
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0