kombinování čísel, písmen v excelu - VYŘEŠENO

Software potřebné k práci s elektronikou

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
dobrman
Příspěvky: 1470
Registrován: 12 srp 2012, 02:00
Bydliště: J H

#16 Příspěvek od dobrman »

vyzkoušej tohle, zkoušel jsem to, jdou čísla i písmena a libovolný počty.
(není to moje, je to odchyceno z netu)
Přílohy
15826_kombinace-mt5.zip
(30.11 KiB) Staženo 92 x
........Nedůvěřuji velbloudům a obecně nikomu, kdo dokáže týden nepít........

Uživatelský avatar
PotPalo
Příspěvky: 4565
Registrován: 13 kvě 2009, 02:00
Bydliště: BA-Petržalka :(
Kontaktovat uživatele:

#17 Příspěvek od PotPalo »

Hotovo. Môžeš zadať až 100 hodnôt a z nich vybrať 2 až 10 kombinácii. To už je za dve Víney. :beer:

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 90 x
Zlu sa neustupuje, proti zlu sa bojuje.

Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 02:00

#18 Příspěvek od jiri255 »

...ten první excel není špatný, ale používá makra, ale ten druhý excel, tak ten je super :beer: díky, díky, díky, a když na něj tak koukám a dívám se, jak to funguje, tak si asi vezmu lopatu někde se s ní zahrabu a budu tam dlouho a dlouho přemýšlet o tom, jak je možný, že sem to nedokázal dát dohromady a navíc to umí i kombinace s použitím víc jak jednoho znaku to jsem na začátku vlastně vůbec nedomyslel a úplně na to zapoměl
...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 :-)

Uživatelský avatar
jiri255
Příspěvky: 168
Registrován: 18 dub 2013, 02:00

#19 Příspěvek od jiri255 »

...tak jsem to prošel na různých kombinacích (kombinace čísel,písmen, spec. znaků, textů,atd..) a řekl bych, že to funguje na 100% neobjevil jsem nic na čem by to selhalo :beer: ,takže ještě jednou moc díky je to naprosto perfektní.

Uživatelský avatar
PotPalo
Příspěvky: 4565
Registrován: 13 kvě 2009, 02:00
Bydliště: BA-Petržalka :(
Kontaktovat uživatele:

#20 Příspěvek od PotPalo »

Akurát je to móóóc neefektívne. V BASICu ZX Spectra by taký program bol na pár riadkov. Zadali by sa hodnoty, koľko kombinácii chceme, a už by to išlo, a to bez obmedzenia počtu výpočtov. V Exceli to zaberie neskutočne veľa miesta opakujúcim sa vzorcom, a vypočítava sa iba pokiaľ je ten vzorec. :?
Zlu sa neustupuje, proti zlu sa bojuje.

Uživatelský avatar
LADER
Příspěvky: 273
Registrován: 01 dub 2013, 02:00

#21 Příspěvek od LADER »

V programu wxMaxima to jde napsat takto:

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:[]
je dimenzování prázdného pole.

Kód: Vybrat vše

D: length(S)
je zjištění délky pole.
Příkaz

Kód: Vybrat vše

Q: endcons(P, Q)
připojí pole P na konec pole 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]
	)

Odpovědět

Zpět na „Software“