kombinování čísel, písmen v excelu - VYŘEŠENO
Moderátor: Moderátoři
(není to moje, je to odchyceno z netu)
- Přílohy
-
15826_kombinace-mt5.zip- (30.11 KiB) Staženo 152 x
edit: maličká chybička v súbore opravená o 1:47 menšou zmenou.
- Přílohy
-
Kombinácie hodnôt.rar- Vypočítam z množiny údajov všetky kombinácie, pritom sa žiadny údaj neopakuje a na poradí nezáleží.
- (64.95 KiB) Staženo 156 x
...může být i varianta:
X, 1A, JHG, 2, PP, K2, 00 a toho třeba kombinace 6ti a tenhle vzorec řeší úplně všechno, jdu na tom provést zatěžkávací test
Kód: Vybrat vše
FN(P, S, K, M):= block([X, D: length(S), J:K],
if length(P)=M then ( Q: endcons(P, Q), return() ),
while J<=D do ( X: endcons(S[J], P), J: J+1, FN(X, S, J, M) )
)$
Kombinace(S,M):=block([Q:[],P:[]], FN(P, S, 1, M), Q)$Pokud by se někomu chtělo přepsat do basicu, pak:
Funkci Kombinace(S,M) je předají dvě proměnné:
S - je to vstupní pole dat (například [1,2,3,4,5])
M - je počet hodnot (například 4)
Funkce Kombinace(S,M) volá rekurzivní funkci FN(P, S, K, M) (ta pak volá sama sebe).
Funkce Kombinace(S,M) vrací výsledek v poli Q (poslední položka ve funkci)
No a důležité je vědět, že proměnné S, P, Q jsou pole.
Kód: Vybrat vše
P:[]Kód: Vybrat vše
D: length(S)Příkaz
Kód: Vybrat vše
Q: endcons(P, Q)Jinak je to stejné jako basic.
Výsledek bude vypadat takto:
Kód: Vybrat vše
Kombinace([1,2,3,4,5], 4);
matrix(
[1, 2, 3, 4],
[1, 2, 3, 5],
[1, 2, 4, 5],
[1, 3, 4, 5],
[2, 3, 4, 5]
)nebo třeba:
Kód: Vybrat vše
Kombinace([A,B,C,D,E,F,G], 5);
matrix(
[A, B, C, D, E],
[A, B, C, D, F],
[A, B, C, D, G],
[A, B, C, E, F],
[A, B, C, E, G],
[A, B, C, F, G],
[A, B, D, E, F],
[A, B, D, E, G],
[A, B, D, F, G],
[A, B, E, F, G],
[A, C, D, E, F],
[A, C, D, E, G],
[A, C, D, F, G],
[A, C, E, F, G],
[A, D, E, F, G],
[B, C, D, E, F],
[B, C, D, E, G],
[B, C, D, F, G],
[B, C, E, F, G],
[B, D, E, F, G],
[C, D, E, F, G]
)