Kamis, 09 Desember 2021

permutasi dan kombinasi dengan phyton

Permutasi dan Kombinasi dengan Python

Permutasi dan Kombinasi dengan Python

Import Module

In [1]:
import itertools

Permutasi Sederhana

nPn=n!

In [2]:
data = ['A', 'B', 'C']
permutasi = itertools.permutations(data)

for perm in permutasi:
    print(perm)
('A', 'B', 'C')
('A', 'C', 'B')
('B', 'A', 'C')
('B', 'C', 'A')
('C', 'A', 'B')
('C', 'B', 'A')

Permutasi pada sejumlah objek tertentu

nPr=n!(nr)!

In [3]:
data = ['A', 'B', 'C', 'D']

4P2=4!(42)!=4×3×2!2!=12

In [4]:
permutasi = itertools.permutations(data, 2)

for perm in permutasi:
    print(perm)
('A', 'B')
('A', 'C')
('A', 'D')
('B', 'A')
('B', 'C')
('B', 'D')
('C', 'A')
('C', 'B')
('C', 'D')
('D', 'A')
('D', 'B')
('D', 'C')

Kalkulasi Permutasi dengan Python

kasus 1:

4P2=?

In [5]:
permutasi = itertools.permutations(range(4), 2)
len(tuple(permutasi))
Out[5]:
12

kasus 2:

10P4=?

In [6]:
permutasi = itertools.permutations(range(10), 4)
len(tuple(permutasi))
Out[6]:
5040

kasus 3:

43P3=?

In [7]:
permutasi = itertools.permutations(range(43), 3)
len(tuple(permutasi))
Out[7]:
74046

Kombinasi Sederhana

nCr=n!(nr)!×r!

In [8]:
data = ['A', 'B', 'C', 'D', 'E']

5C3=5!(53)!×3!=5!2!×3!=10

In [9]:
kombinasi = itertools.combinations(data, 3)

for comb in kombinasi:
    print(comb)
('A', 'B', 'C')
('A', 'B', 'D')
('A', 'B', 'E')
('A', 'C', 'D')
('A', 'C', 'E')
('A', 'D', 'E')
('B', 'C', 'D')
('B', 'C', 'E')
('B', 'D', 'E')
('C', 'D', 'E')

Kalkulasi Kombinasi dengan Python

kasus 1:

5C3=?

In [10]:
kombinasi = itertools.combinations(range(5), 3)
len(tuple(kombinasi))
Out[10]:
10

kasus 2:

16C4=?

In [11]:
kombinasi = itertools.combinations(range(16), 4)
len(tuple(kombinasi))
Out[11]:
1820

Kombinasi lanjutan

Sebuah ember berisikan kelereng sebagai berikut: 4 kelereng merah, 3 kelereng biru, 4 kelereng hijau, dan 3 kelereng kuning.

pertanyaan:

  1. berapa set/grup yang dapat dibentuk dari 4 kelereng?
  2. berapa set/grup yang dapat dibentuk dari 4 kelereng jika tiap kelereng warnanya berbeda?
  3. berapa set/grup yang dapat dibentuk dari 4 kelereng jika minimal terdapat 2 kelereng merah didalamnya?
  4. berapa set/grup yang dapat dibentuk dari 4 kelereng jika warna merah tidak boleh diikut sertakan didalam set/grup, tetapi minimal harus ada 1 kelereng hijau?
In [12]:
data = ['m1','m2','m3','m4',
        'b1','b2','b3',
        'h1','h2','h3','h4',
        'k1','k2','k3']
data
Out[12]:
['m1',
 'm2',
 'm3',
 'm4',
 'b1',
 'b2',
 'b3',
 'h1',
 'h2',
 'h3',
 'h4',
 'k1',
 'k2',
 'k3']

jawaban no 1

Out[13]:
1001

jawaban no 2

jawaban no 3

In [15]:
# kondisi 1 = (2 merah dari 4 merah) * (2 bukan merah dari 10 bukan merah)
k1 = len(tuple(itertools.combinations(range(4),2))) * len(tuple(itertools.combinations(range(10),2)))

# kondisi 2 = (3 merah dari 4 merah) * (1 bukan merah dari 10 bukan merah)
k2 = len(tuple(itertools.combinations(range(4),3))) * len(tuple(itertools.combinations(range(10),1)))

# kondisi 3 = keempatnya merah

k3 = len(tuple(itertools.combinations(range(4),4)))

jawab = k1 + k2 + k3
jawab
Out[15]:
311

jawaban no 4

In [16]:
#kondisi 1 = 1h (1 hijau) * 3sh (3 selain hijau):tanpa merah
#kondisi 2 = 2h * 2sh: tanpa merah
#kondisi 3 = 3h * 1sh: tanpa merah
#kondisi 4 = 4h
#jawab = k1 + k2 + k3 + k4

k1 = len(tuple(itertools.combinations(range(4),1))) * len(tuple(itertools.combinations(range(6),3)))
k2 = len(tuple(itertools.combinations(range(4),2))) * len(tuple(itertools.combinations(range(6),2)))
k3 = len(tuple(itertools.combinations(range(4),3))) * len(tuple(itertools.combinations(range(6),1)))
k4 = len(tuple(itertools.combinations(range(4),4)))
jawab = k1 + k2 + k3 + k4
jawab
Out[16]:
195

 

Tidak ada komentar:

Posting Komentar

Uji Hipotesis

Hipotesis w Hipotesis merupakan dugaan sementara yang dianggap    benar. w Dalam Statistika, Hipotesis merupakan pernyataan yang bis...