Combinatoria:

¿Que es?

Es la formula principal de combinaciones sin repeticion, es decir, cuando el orden no importa y los elementos no se pueden repetir, es la siguiente: \[ C(n,k) = \binom{n}{k} =\frac{n!}{k!(n-k)!} \] Aqui, n viene siendo el numero total de elementos disponibles, k el numero de elementos seleccionados en cada grupo y ! el factorial de estos elementos.

Como ejemplo en lenguaje R tenemos la combinatoria de n y k, cuando n = 6, k = 3:

n = 6 
k = 3

factn = 1 #auxiliares para poder hacer el factorial de los elementos dados, se empiezan en 1
factk = 1
factnk = 1

#factorial de n:
for(i in 1:n){
  factn = factn * i
}

#factorial de k:
for(j in 1:k){
  factk = factk * j
}

#factorial de n-k:
for(y in 1:(n-k)){
  factnk = factnk * y 
}

#Llevar los factoriales a la formula y resolver:

combinatoria = factn/(factk*factnk)

#Ya tendriamos el restultado, solamente queda imprimirlo

combinatoria
## [1] 20

General:

Si queremos realizar un programa que pida los valores de n y de k, lo unico que haremos es pedirle al usuario que ingrese los valores de n y de k, a continuacion lo ves:

#Pedimos que el usuario ingrese ambos valores
n = as.integer(readline(prompt = "Ingese la cantidad de elementos totales:")) 
k = as.integer(readline(prompt = "Ingrese la cantidad de elementos seleccionados:"))

factn = 1 
factk = 1
factnk = 1

for(i in 1:n){
  factn = factn * i
}

for(j in 1:k){
  factk = factk * j
}

for(y in 1:(n-k)){
  factnk = factnk * y 
}

combinatoria = factn/(factk*factnk)

combinatoria

Asi es el proceso si queremos que el usuario tenga la libertad de calcular las combinatorias que sean de su necesidad, el codigo se puede dejar mucho más claro y poner mensajes para indicar mejor los pasos y que no se vea tan crudo, pero ya queda a criterio del programador.