» »

Kombinatorčni problem.

Kombinatorčni problem.

ciki57 ::

Imamo n množic.
Množice imajo različno število elementov. Recimo množica i ima k(i) elementov.
Znotraj množice so vsi elementi različni.
Med množicami pa se lahko elementi ponavljajo (ali pa tudi ne). Recimo da z C(A,B) označimo skupne elemente množic A in B.

Sedaj naredimo vektor velikosti n tako da v izberemo en element iz vsake množice. Prvi element iz prve, drugi iz druge itd.
Elementi znotraj vektorja se ne smejo ponavljati!

Koliko takih vektorjev obstaja??

--------------------

Primer:

množica 1: { 3 5 7 8 }
množica 2: { 1 7 8 }
množica 3: { 5 8 9 }
množica 4: { 6 }

n = 4;
k(1) = 4; k(2) = 3; k(3) = 3; k(4) = 1;
C(1,2) = { 8,7}; C(1,3) = {5,8}; C(1,4) = {}; C(2,3) = { 8 }; C(2,4) = {}, C(3,4) = {}

pravilen vektor: [ 3, 1, 5, 6]
nepravilen vektor: [ 5, 8, 5, 6] - petka se ponovi -> narobe

število pravilnih vektorjev (rešitev problema) = 22

--------------------

Če imamo samo dve množici je rešitev preprosta: k(1)*k(2) - |C(1,2)|
Pri 3 in več pa se zaplete...

Ali je to kakšen standarden kombinatorični problem? Mal sem iskal po googlu pa nisem našel nič podobnega.

Rabil bi splošno formulo, ki mi takoj izračuna št. vektorjev, če imam recimo 10 množic in par sto elementov v vsaki.
  • spremenil: ciki57 ()

whatever ::

Za tale primer računaš takole:

Primer:

množica A: { 3 5 7 8 }
množica B: { 1 7 8 }
množica C: { 5 8 9 }
množica D: { 6 }

(a/b) POMENI BINOMSKI SIMBOL, TOREJ a NAD b!

1*(3/1)*(2/1)*1 + 1*(3/1)*(2/1)*1 + 1*(2/1)*(3/1)*1 + 1*(2/1)*(2/1)*1 =
1*3*2*1 + 1*3*2*1 + 1*2*3*1 + 1*2*2*1 = 6 + 6 + 6 + 4 = 18 + 4 = 22.

Torej: Začneš z vsakim elementom prve množice posebej in nato primerjaš če je kateri element naslednje množice enak kateremu koli elementu pred njim. Če začneš s 3: imaš 1*(3/1) možnosti, vendar se v množici C element 8 ponovi glede na množico B in zato *(2/1) - ker imaš naprej izbiraš en element med dvema elementoma množice C. Najbrž se bo dalo posplošit tudi za primere, ko je n=10.
Veliko jih je notri, še več jih je pa zunaj.
Bilijarde v šole! - Ivan Kramberger
Abnormal behaviour of abnormal brain makes me normal.

Zgodovina sprememb…

  • spremenilo: whatever ()

whatever ::

Sicer pa tud mene zanima, če je možno skonstruirat splošno formulo za tole. Ajde mastermindi, da vas vidim!>:D
Veliko jih je notri, še več jih je pa zunaj.
Bilijarde v šole! - Ivan Kramberger
Abnormal behaviour of abnormal brain makes me normal.

molotov ::

Hm mogoče ne sestaviš niti en vektor.

ciki57 >> ...Med množicami pa se lahko elementi ponavljajo (ali pa tudi ne)...

Za ta navodila se nada sestavit formule, kar pač lahko imaš npr. 2 enaki množici.

edit: ups sm spregledal, da imajo množice različno št. elementov, sry :\

Zgodovina sprememb…

  • spremenil: molotov ()

ciki57 ::

Ja če imaš recimo a = {1}, b = {1} se ne da sestavit vektorja, ampak v tem primeru bi formula pač morala vrniti 0. :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Baza v vektorskem prostoru

Oddelek: Šola
182643 (1141) BivšiUser2
»

[c++] naloge

Oddelek: Programiranje
476248 (4788) technolog
»

Računanje matrične enačbe

Oddelek: Šola
346430 (5990) soulfly
»

Surjektivno + Injektivno = Bijektivno ... huh!?

Oddelek: Šola
3213264 (8015) Math Freak
»

1+1=3 ? (strani: 1 2 )

Oddelek: Šola
7514486 (12003) redo

Več podobnih tem