Está en la página 1de 30

Universidad Mayor de San Simón

Facultad de Ciencias y Tecnologia


Departamento de Informática - Sistemas

Leticia Blanco C.
1
Maria Leticia Blanco Coca
Recursividad
Universidad Mayor de San Simón
Facultad de Ciencias y Tecnologia
Departamento de Informática - Sistemas

Leticia Blanco C.
2
Permutaciones
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Permutación
Universidad Mayor de San Simón

• Hecho de cambiar el orden o la


disposición de los elementos de un
conjunto.
• En este caso se trata de encontrar todos
los conjuntos posibles que se obtienen de
disponer de maneras diferentes los
elementos del conjunto

3
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

{abcd} —> perm({abcd})

{
{abcd},{abdc},{acbd},{acdb},{adbc},{adcb},
{bacd},{badc},{bcad},{bcda},{bdac},{bdca},
{cabd},{cadb},{cbad},{cbda},{cdab},{cdba},
{dabc},{dacb},{dbac},{dbca},{dcab},{dcba}
}

4
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

perm({abcd})

{
a
{abcd},{abdc},{acbd},{acdb},{adbc},{adcb}, b
{bacd},{badc},{bcad},{bcda},{bdac},{bdca}, c
{cabd},{cadb},{cbad},{cbda},{cdab},{cdba}, d
{dabc},{dacb},{dbac},{dbca},{dcab},{dcba}
}

5
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

perm({abcd})

{
{a} ✜ {{bcd},{bdc},{cbd},{cdb},{dbc},{dcb}},
{b} ✜ {{acd},{adc},{cad},{cda},{dac},{dca}},
{c} ✜ {{abd},{adb},{bad},{bda},{dab},{dba}},
{d} ✜ {{abc},{acb},{bac},{bca},{cab},{cba}}
}

6
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

perm({abcd})

{
{a} ✜ {{bcd},{bdc},{cbd},{cdb},{dbc},{dcb}}, perm({bcd})
{b} ✜ {{acd},{adc},{cad},{cda},{dac},{dca}}, perm({acd})
{c} ✜ {{abd},{adb},{bad},{bda},{dab},{dba}}, perm({abd})
{d} ✜ {{abc},{acb},{bac},{bca},{cab},{cba}} perm({abc})

es un subproblema

7
Universidad Mayor de San Simón
Facultad de Ciencias y Tecnologia
Departamento de Informática - Sistemas

}
{
perm({abcd})

{d} ✜ perm({abc})
{c} ✜ perm({abd}),
{b} ✜ perm({acd}),
{a} ✜ perm({bcd}),

8
reducir
Cual es la manera sistemática de reducir?
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

perm({abcd})

{ abcd
1 con 1
{a} ✜ perm({bcd}), abcd
1 con 2
{b} ✜ perm({acd}), bacd
1 con 3
{c} ✜ perm({abd}), cabd
1 con 4
{d} ✜ perm({abc}) dabc
}

9
Cual es la manera sistemática de reducir?
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

perm({abcd})

{ abcd swap(abcd,1,1)==> abcd


1 con 1 a con a
{a} ✜ perm({bcd}), abcd swap(abcd,1,2)==> bacd
1 con 2 a con b
{b} ✜ perm({acd}), bacd swap(bacd,1,3)==> cabd
1 con 3 b con c
{c} ✜ perm({abd}), cabd swap(cabd,1,4)==> dabc
1 con 4 c con d
{d} ✜ perm({abc}) dabc
}

10
Cual es la manera sistemática de reducir?
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

1 2 3 4
perm({abcd})

{ abcd swap(abcd,1,1)==> abcd


1 con 1 a con a
1 {a} ✜ perm({bcd}), abcd swap(abcd,1,2)==> bacd
1 con 2 a con b
2 {b} ✜ perm({acd}), bacd swap(bacd,1,3)==> cabd
1 con 3 b con c
3 {c} ✜ perm({abd}), cabd swap(cabd,1,4)==> dabc
1 con 4 c con d
4 {d} ✜ perm({abc}) dabc
}

11
Cual es la manera sistemática de reducir?
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

1 2 3 4
perm({abcd})

1 {a} ✜ perm({bcd}),

2 {b} ✜ perm({acd}),

3 {c} ✜ perm({abd}),

4 {d} ✜ perm({abc})

12
Cual es la manera sistemática de reducir?
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

1 2 3 4
perm({abcd})

i {

1 {a} ✜ perm({bcd}),

2 {b} ✜ perm({acd}), perm(sec,i) = {seci} ✜ perm(sec’, 1)

3 {c} ✜ perm({abd}), U perm(sec,i+1)

4 {d} ✜ perm({abc})

13
Departamento de Informática - Sistemas

Formalizando......
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

perm({e1,e2,... en}, i) =
| intercambiar el elem1 con el elemi
| {e1} ✜ perm({e2,... en}, 1) U perm({e1,e2,... en}, i+1)

Para n > 1

14
Universidad Mayor de San Simón
Facultad de Ciencias y Tecnologia
Departamento de Informática - Sistemas

perm({e1}, i)
Formalizando......

perm({e1, e2, ..... en}, n+1) = {}

15
Para n = 1 = {{e1}}
Para i = n + 1
Departamento de Informática - Sistemas

Completando......
Facultad de Ciencias y Tecnologia
Universidad Mayor de San Simón

perm(sec, i) =
| intercambiar el elem1 con el elemi
| {e1} ✜ perm(sec’, 1) Uperm(sec, i+1) Para n > 1, i <= n
perm(sec, i) = {sec} Para n = 1
perm(sec, n+1) = {} Para i = n + 1

n E Z+ , 1 <= i <= n+1


n = |sec|, sec’ = sec - e1

16
Universidad Mayor de San Simón
Facultad de Ciencias y Tecnologia
Departamento de Informática - Sistemas

Leticia Blanco C.
17
Combinaciones
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

• tomar k elementos de un conjunto de


elementos
• construir todas las combinaciones de k
elementos del conjunto de elementos

18
Universidad Mayor de San Simón
Facultad de Ciencias y Tecnologia
Departamento de Informática - Sistemas

{1,2,3,4}, k es 2

19
{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}
Combinaciones
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 2

{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}}

{1,2,3}, k es 1

{{1},{2},{3}} + 4

{{1,4},{2,4},{3,4}}

20
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 2

{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}}

{1,2,3}, k es 1

{{1},{2},{3}} + 4

{{1,4},{2,4},{3,4}}

21
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 2

{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}}

{1,2,3}, k es 1

{{1},{2},{3}} ✜ 4

{{1,4},{2,4},{3,4}}

22
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 2

{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}}

{1,2,3}, k es 1

{{1},{2},{3}} ✜ 4

{{1,4},{2,4},{3,4}}

23
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 3

{{1,2,3},{1,2,4},{1,3,4},{2,3,4}}

{1,2,3}, k es 3

{{1,2,3}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}} + 4

{{1,2,4},{1,3,4},{2,3,4}}

24
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 3

{{1,2,3},{1,2,4},{1,3,4},{2,3,4}}

{1,2,3}, k es 3

{{1,2,3}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}} + 4

{{1,2,4},{1,3,4},{2,3,4}}

25
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 3

{{1,2,3},{1,2,4},{1,3,4},{2,3,4}}

{1,2,3}, k es 3

{{1,2,3}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}} + 4

{{1,2,4},{1,3,4},{2,3,4}}

26
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4}, k es 3

{{1,2,3},{1,2,4},{1,3,4},{2,3,4}}

{1,2,3}, k es 3

{{1,2,3}}

{1,2,3}, k es 2

{{1,2},{1,3},{2,3}} ✜ 4

{{1,2,4},{1,3,4},{2,3,4}}

27
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Combinaciones
Universidad Mayor de San Simón

{1,2,3,4,5}, k es 3
{{1,2,3},{1,2,4},{1,2,5},{1,3,4},{1,3,5},
{1,4,5},{2,3,4},{2,3,5},{2,4,5},{3,4,5}}

{1,2,3,4}, k es 3

{{1,2,3},{1,2,4},{1,3,4},{2,3,4}}

{1,2,3,4}, k es 2

{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}} ✜ 5

{{1,2,5},{1,3,5},{1,4,5}{2,3,5}{2,4,5}
{3,4,5}}

28
Universidad Mayor de San Simón
Facultad de Ciencias y Tecnologia
Departamento de Informática - Sistemas

Leticia Blanco C.
29
Conjunto Clausura
Departamento de Informática - Sistemas
Facultad de Ciencias y Tecnologia
Conjunto clausura
Universidad Mayor de San Simón

{1,2,3,4}

{{},{1},{2},{3},{4},{1,2},{1,3},{1,4},{2,3},
{2,4},{3,4},{1,2,3},{1,2,4},{1,3,4},{2,3,4},
{1,2,3,4}}

30