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.
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
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.