R que R

Combinatoria: Permutaciones, variaciones y combinaciones (ESP)

Sat, May 2, 2020
R
#permutaciones #variaciones #combinaciones #combinatoria #probabilidad


NOTA: En el caso de que pueda ver las imágenes vaya al siguiente enlace

Packages



library(gtools)
library(png)
library(grid)



Combinatoria y Factoriales


La Combinatoria estudia las distintas formas de realizar agrupaciones de distintos elementos de un conjunto. Existen diversas formas de realizar dichas agrupaciones, teniendo en cuenta si los elementos o factores se repiten, si deben ser tenidos en cuenta de forma ordenada, si se debe tomar todos los elementos del conjunto o únicamente un subconjunto del mismo, etc.


Antes de empezar a realizar los cálculos combinatorios conviene explicar qué es un factorial de un número entero positivo. El factorial de un número entero positivo es el producto de n factores consecutivos desde n hasta 1. Dicho factorial se denota por n!, se lee “n factorial”, y su formulación matemática sería:



Para calcular el factorial de un número en R utilizamos la función factorial(). El factorial de 5 será, por tanto:



factorial(5)
## [1] 120


El uso de factoriales es imprescindible a la hora de calcular permutaciones, variaciones o combinaciones como veremos a continuación.


Permutaciones sin repetición


Supongamos que hay un grupo de cinco personas que pretenden acceder a un club privado donde se celebra una fiesta de disfraces y se encuentran agolpadas enfrente de la puerta. El portero del club les indica que el local está lleno y que estas cinco personas tendrán que entrar de uno en uno, según vayan saliendo los clientes que se encuentran en el interior. En una situación como la descrita, donde las cinco personas deben entrar por orden (el orden importa), donde se tienen en consideración todas ellas (puesto que entran las cinco personas) y donde no se repiten los elementos (en el momento que una de las personas ha conseguido entrar, y faltaría por tanto que pudieran entrar las otras cuatro, la primera persona ya no se debe contabilizar de nuevo a la hora de estimar las siguientes posibilidades de entrada), ¿Cuántas posibilidades de organizar la entrada de los cinco clientes existirían?


En un caso como el descrito, donde se cumplen las características mencionadas, para calcular las distintas posibilidades existentes utilizaremos lo que se conoce como permutación, término que se ajusta al concepto de factorial visto previamente



En R podemos observar de forma detallada una lista con todas las posibilidades con la función permutación().



# Los clientes:

x <- c("Juan", "Antonio", "Pepe", "Raquel", "Laura")


# Permutación:

permutations(n= 5, r= 5, v=x, repeats.allowed = FALSE)
##        [,1]      [,2]      [,3]      [,4]      [,5]     
##   [1,] "Antonio" "Juan"    "Laura"   "Pepe"    "Raquel" 
##   [2,] "Antonio" "Juan"    "Laura"   "Raquel"  "Pepe"   
##   [3,] "Antonio" "Juan"    "Pepe"    "Laura"   "Raquel" 
##   [4,] "Antonio" "Juan"    "Pepe"    "Raquel"  "Laura"  
##   [5,] "Antonio" "Juan"    "Raquel"  "Laura"   "Pepe"   
##   [6,] "Antonio" "Juan"    "Raquel"  "Pepe"    "Laura"  
##   [7,] "Antonio" "Laura"   "Juan"    "Pepe"    "Raquel" 
##   [8,] "Antonio" "Laura"   "Juan"    "Raquel"  "Pepe"   
##   [9,] "Antonio" "Laura"   "Pepe"    "Juan"    "Raquel" 
##  [10,] "Antonio" "Laura"   "Pepe"    "Raquel"  "Juan"   
##  [11,] "Antonio" "Laura"   "Raquel"  "Juan"    "Pepe"   
##  [12,] "Antonio" "Laura"   "Raquel"  "Pepe"    "Juan"   
##  [13,] "Antonio" "Pepe"    "Juan"    "Laura"   "Raquel" 
##  [14,] "Antonio" "Pepe"    "Juan"    "Raquel"  "Laura"  
##  [15,] "Antonio" "Pepe"    "Laura"   "Juan"    "Raquel" 
##  [16,] "Antonio" "Pepe"    "Laura"   "Raquel"  "Juan"   
##  [17,] "Antonio" "Pepe"    "Raquel"  "Juan"    "Laura"  
##  [18,] "Antonio" "Pepe"    "Raquel"  "Laura"   "Juan"   
##  [19,] "Antonio" "Raquel"  "Juan"    "Laura"   "Pepe"   
##  [20,] "Antonio" "Raquel"  "Juan"    "Pepe"    "Laura"  
##  [21,] "Antonio" "Raquel"  "Laura"   "Juan"    "Pepe"   
##  [22,] "Antonio" "Raquel"  "Laura"   "Pepe"    "Juan"   
##  [23,] "Antonio" "Raquel"  "Pepe"    "Juan"    "Laura"  
##  [24,] "Antonio" "Raquel"  "Pepe"    "Laura"   "Juan"   
##  [25,] "Juan"    "Antonio" "Laura"   "Pepe"    "Raquel" 
##  [26,] "Juan"    "Antonio" "Laura"   "Raquel"  "Pepe"   
##  [27,] "Juan"    "Antonio" "Pepe"    "Laura"   "Raquel" 
##  [28,] "Juan"    "Antonio" "Pepe"    "Raquel"  "Laura"  
##  [29,] "Juan"    "Antonio" "Raquel"  "Laura"   "Pepe"   
##  [30,] "Juan"    "Antonio" "Raquel"  "Pepe"    "Laura"  
##  [31,] "Juan"    "Laura"   "Antonio" "Pepe"    "Raquel" 
##  [32,] "Juan"    "Laura"   "Antonio" "Raquel"  "Pepe"   
##  [33,] "Juan"    "Laura"   "Pepe"    "Antonio" "Raquel" 
##  [34,] "Juan"    "Laura"   "Pepe"    "Raquel"  "Antonio"
##  [35,] "Juan"    "Laura"   "Raquel"  "Antonio" "Pepe"   
##  [36,] "Juan"    "Laura"   "Raquel"  "Pepe"    "Antonio"
##  [37,] "Juan"    "Pepe"    "Antonio" "Laura"   "Raquel" 
##  [38,] "Juan"    "Pepe"    "Antonio" "Raquel"  "Laura"  
##  [39,] "Juan"    "Pepe"    "Laura"   "Antonio" "Raquel" 
##  [40,] "Juan"    "Pepe"    "Laura"   "Raquel"  "Antonio"
##  [41,] "Juan"    "Pepe"    "Raquel"  "Antonio" "Laura"  
##  [42,] "Juan"    "Pepe"    "Raquel"  "Laura"   "Antonio"
##  [43,] "Juan"    "Raquel"  "Antonio" "Laura"   "Pepe"   
##  [44,] "Juan"    "Raquel"  "Antonio" "Pepe"    "Laura"  
##  [45,] "Juan"    "Raquel"  "Laura"   "Antonio" "Pepe"   
##  [46,] "Juan"    "Raquel"  "Laura"   "Pepe"    "Antonio"
##  [47,] "Juan"    "Raquel"  "Pepe"    "Antonio" "Laura"  
##  [48,] "Juan"    "Raquel"  "Pepe"    "Laura"   "Antonio"
##  [49,] "Laura"   "Antonio" "Juan"    "Pepe"    "Raquel" 
##  [50,] "Laura"   "Antonio" "Juan"    "Raquel"  "Pepe"   
##  [51,] "Laura"   "Antonio" "Pepe"    "Juan"    "Raquel" 
##  [52,] "Laura"   "Antonio" "Pepe"    "Raquel"  "Juan"   
##  [53,] "Laura"   "Antonio" "Raquel"  "Juan"    "Pepe"   
##  [54,] "Laura"   "Antonio" "Raquel"  "Pepe"    "Juan"   
##  [55,] "Laura"   "Juan"    "Antonio" "Pepe"    "Raquel" 
##  [56,] "Laura"   "Juan"    "Antonio" "Raquel"  "Pepe"   
##  [57,] "Laura"   "Juan"    "Pepe"    "Antonio" "Raquel" 
##  [58,] "Laura"   "Juan"    "Pepe"    "Raquel"  "Antonio"
##  [59,] "Laura"   "Juan"    "Raquel"  "Antonio" "Pepe"   
##  [60,] "Laura"   "Juan"    "Raquel"  "Pepe"    "Antonio"
##  [61,] "Laura"   "Pepe"    "Antonio" "Juan"    "Raquel" 
##  [62,] "Laura"   "Pepe"    "Antonio" "Raquel"  "Juan"   
##  [63,] "Laura"   "Pepe"    "Juan"    "Antonio" "Raquel" 
##  [64,] "Laura"   "Pepe"    "Juan"    "Raquel"  "Antonio"
##  [65,] "Laura"   "Pepe"    "Raquel"  "Antonio" "Juan"   
##  [66,] "Laura"   "Pepe"    "Raquel"  "Juan"    "Antonio"
##  [67,] "Laura"   "Raquel"  "Antonio" "Juan"    "Pepe"   
##  [68,] "Laura"   "Raquel"  "Antonio" "Pepe"    "Juan"   
##  [69,] "Laura"   "Raquel"  "Juan"    "Antonio" "Pepe"   
##  [70,] "Laura"   "Raquel"  "Juan"    "Pepe"    "Antonio"
##  [71,] "Laura"   "Raquel"  "Pepe"    "Antonio" "Juan"   
##  [72,] "Laura"   "Raquel"  "Pepe"    "Juan"    "Antonio"
##  [73,] "Pepe"    "Antonio" "Juan"    "Laura"   "Raquel" 
##  [74,] "Pepe"    "Antonio" "Juan"    "Raquel"  "Laura"  
##  [75,] "Pepe"    "Antonio" "Laura"   "Juan"    "Raquel" 
##  [76,] "Pepe"    "Antonio" "Laura"   "Raquel"  "Juan"   
##  [77,] "Pepe"    "Antonio" "Raquel"  "Juan"    "Laura"  
##  [78,] "Pepe"    "Antonio" "Raquel"  "Laura"   "Juan"   
##  [79,] "Pepe"    "Juan"    "Antonio" "Laura"   "Raquel" 
##  [80,] "Pepe"    "Juan"    "Antonio" "Raquel"  "Laura"  
##  [81,] "Pepe"    "Juan"    "Laura"   "Antonio" "Raquel" 
##  [82,] "Pepe"    "Juan"    "Laura"   "Raquel"  "Antonio"
##  [83,] "Pepe"    "Juan"    "Raquel"  "Antonio" "Laura"  
##  [84,] "Pepe"    "Juan"    "Raquel"  "Laura"   "Antonio"
##  [85,] "Pepe"    "Laura"   "Antonio" "Juan"    "Raquel" 
##  [86,] "Pepe"    "Laura"   "Antonio" "Raquel"  "Juan"   
##  [87,] "Pepe"    "Laura"   "Juan"    "Antonio" "Raquel" 
##  [88,] "Pepe"    "Laura"   "Juan"    "Raquel"  "Antonio"
##  [89,] "Pepe"    "Laura"   "Raquel"  "Antonio" "Juan"   
##  [90,] "Pepe"    "Laura"   "Raquel"  "Juan"    "Antonio"
##  [91,] "Pepe"    "Raquel"  "Antonio" "Juan"    "Laura"  
##  [92,] "Pepe"    "Raquel"  "Antonio" "Laura"   "Juan"   
##  [93,] "Pepe"    "Raquel"  "Juan"    "Antonio" "Laura"  
##  [94,] "Pepe"    "Raquel"  "Juan"    "Laura"   "Antonio"
##  [95,] "Pepe"    "Raquel"  "Laura"   "Antonio" "Juan"   
##  [96,] "Pepe"    "Raquel"  "Laura"   "Juan"    "Antonio"
##  [97,] "Raquel"  "Antonio" "Juan"    "Laura"   "Pepe"   
##  [98,] "Raquel"  "Antonio" "Juan"    "Pepe"    "Laura"  
##  [99,] "Raquel"  "Antonio" "Laura"   "Juan"    "Pepe"   
## [100,] "Raquel"  "Antonio" "Laura"   "Pepe"    "Juan"   
## [101,] "Raquel"  "Antonio" "Pepe"    "Juan"    "Laura"  
## [102,] "Raquel"  "Antonio" "Pepe"    "Laura"   "Juan"   
## [103,] "Raquel"  "Juan"    "Antonio" "Laura"   "Pepe"   
## [104,] "Raquel"  "Juan"    "Antonio" "Pepe"    "Laura"  
## [105,] "Raquel"  "Juan"    "Laura"   "Antonio" "Pepe"   
## [106,] "Raquel"  "Juan"    "Laura"   "Pepe"    "Antonio"
## [107,] "Raquel"  "Juan"    "Pepe"    "Antonio" "Laura"  
## [108,] "Raquel"  "Juan"    "Pepe"    "Laura"   "Antonio"
## [109,] "Raquel"  "Laura"   "Antonio" "Juan"    "Pepe"   
## [110,] "Raquel"  "Laura"   "Antonio" "Pepe"    "Juan"   
## [111,] "Raquel"  "Laura"   "Juan"    "Antonio" "Pepe"   
## [112,] "Raquel"  "Laura"   "Juan"    "Pepe"    "Antonio"
## [113,] "Raquel"  "Laura"   "Pepe"    "Antonio" "Juan"   
## [114,] "Raquel"  "Laura"   "Pepe"    "Juan"    "Antonio"
## [115,] "Raquel"  "Pepe"    "Antonio" "Juan"    "Laura"  
## [116,] "Raquel"  "Pepe"    "Antonio" "Laura"   "Juan"   
## [117,] "Raquel"  "Pepe"    "Juan"    "Antonio" "Laura"  
## [118,] "Raquel"  "Pepe"    "Juan"    "Laura"   "Antonio"
## [119,] "Raquel"  "Pepe"    "Laura"   "Antonio" "Juan"   
## [120,] "Raquel"  "Pepe"    "Laura"   "Juan"    "Antonio"


El número total de posibilidades será, evidentemente, la suma de las filas de la lista anterior.



nrow(permutations(n= 5, r= 5, v=x, repeats.allowed = FALSE))
## [1] 120

 

Variaciones sin repetición


Mientras las cinco personas están debatiendo el orden de entrada al recinto, el portero del club recibe un mensaje por el pinganillo desde la organización del local. Parece ser que el club está sobrepasando el aforo máximo y, por consiguiente, únicamente aceptarán que tres personas puedan entrar en el local. Una vez hayan entrado esos tres afortunados no se permitirá la entrada de más clientes hasta nueva orden, que no se prevé cercana. En este caso las posibilidades se reducen considerablemente, teniéndose que abstenerse de entrar dos de las cinco personas. En esta nueva situación, ¿Cuántas posibilidades de entrada de tres personas seleccionadas de entre el grupo de cinco existen? En este caso, donde no se consideran todos los elementos (no entrarán todos), pero donde todavía importa el orden de entrada y donde no se repiten los elementos, para calcular el nuevo número de posibilidades utilizaremos la variación sin repetición. La fórmula matemática para calcular el número de variaciones posibles cuando tenemos un número determinado de opciones es la siguiente:



En R podemos observar las distintas posibilidades fácilmente realizando una pequeña modificación al código anterior (r= 3)



permutations(n= 5, r= 3, v=x, repeats.allowed = FALSE)
##       [,1]      [,2]      [,3]     
##  [1,] "Antonio" "Juan"    "Laura"  
##  [2,] "Antonio" "Juan"    "Pepe"   
##  [3,] "Antonio" "Juan"    "Raquel" 
##  [4,] "Antonio" "Laura"   "Juan"   
##  [5,] "Antonio" "Laura"   "Pepe"   
##  [6,] "Antonio" "Laura"   "Raquel" 
##  [7,] "Antonio" "Pepe"    "Juan"   
##  [8,] "Antonio" "Pepe"    "Laura"  
##  [9,] "Antonio" "Pepe"    "Raquel" 
## [10,] "Antonio" "Raquel"  "Juan"   
## [11,] "Antonio" "Raquel"  "Laura"  
## [12,] "Antonio" "Raquel"  "Pepe"   
## [13,] "Juan"    "Antonio" "Laura"  
## [14,] "Juan"    "Antonio" "Pepe"   
## [15,] "Juan"    "Antonio" "Raquel" 
## [16,] "Juan"    "Laura"   "Antonio"
## [17,] "Juan"    "Laura"   "Pepe"   
## [18,] "Juan"    "Laura"   "Raquel" 
## [19,] "Juan"    "Pepe"    "Antonio"
## [20,] "Juan"    "Pepe"    "Laura"  
## [21,] "Juan"    "Pepe"    "Raquel" 
## [22,] "Juan"    "Raquel"  "Antonio"
## [23,] "Juan"    "Raquel"  "Laura"  
## [24,] "Juan"    "Raquel"  "Pepe"   
## [25,] "Laura"   "Antonio" "Juan"   
## [26,] "Laura"   "Antonio" "Pepe"   
## [27,] "Laura"   "Antonio" "Raquel" 
## [28,] "Laura"   "Juan"    "Antonio"
## [29,] "Laura"   "Juan"    "Pepe"   
## [30,] "Laura"   "Juan"    "Raquel" 
## [31,] "Laura"   "Pepe"    "Antonio"
## [32,] "Laura"   "Pepe"    "Juan"   
## [33,] "Laura"   "Pepe"    "Raquel" 
## [34,] "Laura"   "Raquel"  "Antonio"
## [35,] "Laura"   "Raquel"  "Juan"   
## [36,] "Laura"   "Raquel"  "Pepe"   
## [37,] "Pepe"    "Antonio" "Juan"   
## [38,] "Pepe"    "Antonio" "Laura"  
## [39,] "Pepe"    "Antonio" "Raquel" 
## [40,] "Pepe"    "Juan"    "Antonio"
## [41,] "Pepe"    "Juan"    "Laura"  
## [42,] "Pepe"    "Juan"    "Raquel" 
## [43,] "Pepe"    "Laura"   "Antonio"
## [44,] "Pepe"    "Laura"   "Juan"   
## [45,] "Pepe"    "Laura"   "Raquel" 
## [46,] "Pepe"    "Raquel"  "Antonio"
## [47,] "Pepe"    "Raquel"  "Juan"   
## [48,] "Pepe"    "Raquel"  "Laura"  
## [49,] "Raquel"  "Antonio" "Juan"   
## [50,] "Raquel"  "Antonio" "Laura"  
## [51,] "Raquel"  "Antonio" "Pepe"   
## [52,] "Raquel"  "Juan"    "Antonio"
## [53,] "Raquel"  "Juan"    "Laura"  
## [54,] "Raquel"  "Juan"    "Pepe"   
## [55,] "Raquel"  "Laura"   "Antonio"
## [56,] "Raquel"  "Laura"   "Juan"   
## [57,] "Raquel"  "Laura"   "Pepe"   
## [58,] "Raquel"  "Pepe"    "Antonio"
## [59,] "Raquel"  "Pepe"    "Juan"   
## [60,] "Raquel"  "Pepe"    "Laura"


Y el número de nuevas posibilidades se calculará de nuevo contando el número de filas de la lista obtenida:



nrow(permutations(n= 5, r= 3, v=x, repeats.allowed = FALSE))
## [1] 60


Variaciones con repetición


Tres de ellos están por fin dentro. La entrada al local, nada barata, incluye una consumición, que puede ser un botellín de agua, un refresco, una copa de vino o un vaso de cerveza. Por tanto, una vez dentro, los tres afortunados se dirigen con sus respectivos disfraces a la barra con el objetivo de conseguir sus respectivas consumiciones. El camarero, un chico joven y atractivo pero un poco vago, les pide que escriban la consumición que desean en el reverso de las entradas. Siendo que son tres, y que cada una de ellas tiene cuatro posibles bebidas a elegir, ¿Cuántas posibles combinaciones de bebidas podrá encontrarse el camarero cuando recoja las tres entradas? En este caso es posible que repitan la bebida dos de ellos, e incluso los tres, o puede que cada uno escoja una bebida diferente. Este caso para calcular las posibles combinaciones recurrimos a la variación con repetición, en tanto en cuanto se puede repetir los elementos (bebidas) y donde no se consideran todos los elementos (existen cuatro posibles bebidas pero solo tres entradas). La variación con repetición se calcula de la siguiente forma:



Su estimación en R se realiza utilizando la función ’permutations(), como hemos hecho previamente, pero indicando que existe la posibilidad de repeticiones con 'repeats.allowed = TRUE.



x <- c("agua", "refresco", "vino", "cerveza")

permutations(n= 4, r= 3, v= x, repeats.allowed = TRUE)
##       [,1]       [,2]       [,3]      
##  [1,] "agua"     "agua"     "agua"    
##  [2,] "agua"     "agua"     "cerveza" 
##  [3,] "agua"     "agua"     "refresco"
##  [4,] "agua"     "agua"     "vino"    
##  [5,] "agua"     "cerveza"  "agua"    
##  [6,] "agua"     "cerveza"  "cerveza" 
##  [7,] "agua"     "cerveza"  "refresco"
##  [8,] "agua"     "cerveza"  "vino"    
##  [9,] "agua"     "refresco" "agua"    
## [10,] "agua"     "refresco" "cerveza" 
## [11,] "agua"     "refresco" "refresco"
## [12,] "agua"     "refresco" "vino"    
## [13,] "agua"     "vino"     "agua"    
## [14,] "agua"     "vino"     "cerveza" 
## [15,] "agua"     "vino"     "refresco"
## [16,] "agua"     "vino"     "vino"    
## [17,] "cerveza"  "agua"     "agua"    
## [18,] "cerveza"  "agua"     "cerveza" 
## [19,] "cerveza"  "agua"     "refresco"
## [20,] "cerveza"  "agua"     "vino"    
## [21,] "cerveza"  "cerveza"  "agua"    
## [22,] "cerveza"  "cerveza"  "cerveza" 
## [23,] "cerveza"  "cerveza"  "refresco"
## [24,] "cerveza"  "cerveza"  "vino"    
## [25,] "cerveza"  "refresco" "agua"    
## [26,] "cerveza"  "refresco" "cerveza" 
## [27,] "cerveza"  "refresco" "refresco"
## [28,] "cerveza"  "refresco" "vino"    
## [29,] "cerveza"  "vino"     "agua"    
## [30,] "cerveza"  "vino"     "cerveza" 
## [31,] "cerveza"  "vino"     "refresco"
## [32,] "cerveza"  "vino"     "vino"    
## [33,] "refresco" "agua"     "agua"    
## [34,] "refresco" "agua"     "cerveza" 
## [35,] "refresco" "agua"     "refresco"
## [36,] "refresco" "agua"     "vino"    
## [37,] "refresco" "cerveza"  "agua"    
## [38,] "refresco" "cerveza"  "cerveza" 
## [39,] "refresco" "cerveza"  "refresco"
## [40,] "refresco" "cerveza"  "vino"    
## [41,] "refresco" "refresco" "agua"    
## [42,] "refresco" "refresco" "cerveza" 
## [43,] "refresco" "refresco" "refresco"
## [44,] "refresco" "refresco" "vino"    
## [45,] "refresco" "vino"     "agua"    
## [46,] "refresco" "vino"     "cerveza" 
## [47,] "refresco" "vino"     "refresco"
## [48,] "refresco" "vino"     "vino"    
## [49,] "vino"     "agua"     "agua"    
## [50,] "vino"     "agua"     "cerveza" 
## [51,] "vino"     "agua"     "refresco"
## [52,] "vino"     "agua"     "vino"    
## [53,] "vino"     "cerveza"  "agua"    
## [54,] "vino"     "cerveza"  "cerveza" 
## [55,] "vino"     "cerveza"  "refresco"
## [56,] "vino"     "cerveza"  "vino"    
## [57,] "vino"     "refresco" "agua"    
## [58,] "vino"     "refresco" "cerveza" 
## [59,] "vino"     "refresco" "refresco"
## [60,] "vino"     "refresco" "vino"    
## [61,] "vino"     "vino"     "agua"    
## [62,] "vino"     "vino"     "cerveza" 
## [63,] "vino"     "vino"     "refresco"
## [64,] "vino"     "vino"     "vino"


De nuevo, el número total de posibilidades se obtiene observando el número de filas de la lista obtenida mediante el código anterior:



nrow(permutations(n= 4, r= 3, v=x, repeats.allowed = TRUE))
## [1] 64


Combinaciones


Durante la fiesta y el baile un jurado escogido por el club ha ido observando los distintos disfraces de los clientes y, tras un agitado debate, acaban seleccionando los que consideran son los 10 disfraces más originales de entre todos los asistentes. A media noche se apaga la música, se encienden ligeramente las luces del escenario y aparece repentinamente el organizador del evento, que se presenta como Antonio y ofrece al público entregado una gran sonrisa. Con la ayuda de un micrófono Antonio anuncia que se va a realizar un sorteo entre los 10 disfraces seleccionados por el jurado, a los cuales se les invita a ir subiendo uno a uno al escenario para que el público pueda comprobar con sus propios ojos la originalidad de los mismos. Antonio anuncia que entre los 10 seleccionados se van a sortear tres invitaciones (para dos personas) para cenar en un restaurante de lujo perteneciente también al club. En una situación como esta, donde no se repiten los elementos (cada persona puede ser seleccionada una sola vez), donde evidentemente no se seleccionan todos los elementos (solo tres personas son las agraciadas para el premio) y donde no importa el orden (es exactamente lo mismo que Pepito, Pepita y Pepete sean escogidos para la cena que lo sea Pepita, Pepito y Pepete o que lo sea Pepete, Pepito y Pepita), para saber el número de posibilidades hacemos uso de las combinaciones.



El club del que estamos hablando es un club internacional, con gente de muchos países, como se observa en los nombres de las personas elegidas por su disfraz:



library(randomNames)

x <- randomNames(10, which.names = "first")

x
##  [1] "Morgan"  "Daif"    "Briana"  "My"      "Cody"    "Tyla"    "Chad"   
##  [8] "Elena"   "Rebecca" "Anthony"


Los posibles resultados del sorteo se pueden observar con la función combinations()



combinations(n=10, r=3, v=x)
##        [,1]      [,2]      [,3]     
##   [1,] "Anthony" "Briana"  "Chad"   
##   [2,] "Anthony" "Briana"  "Cody"   
##   [3,] "Anthony" "Briana"  "Daif"   
##   [4,] "Anthony" "Briana"  "Elena"  
##   [5,] "Anthony" "Briana"  "Morgan" 
##   [6,] "Anthony" "Briana"  "My"     
##   [7,] "Anthony" "Briana"  "Rebecca"
##   [8,] "Anthony" "Briana"  "Tyla"   
##   [9,] "Anthony" "Chad"    "Cody"   
##  [10,] "Anthony" "Chad"    "Daif"   
##  [11,] "Anthony" "Chad"    "Elena"  
##  [12,] "Anthony" "Chad"    "Morgan" 
##  [13,] "Anthony" "Chad"    "My"     
##  [14,] "Anthony" "Chad"    "Rebecca"
##  [15,] "Anthony" "Chad"    "Tyla"   
##  [16,] "Anthony" "Cody"    "Daif"   
##  [17,] "Anthony" "Cody"    "Elena"  
##  [18,] "Anthony" "Cody"    "Morgan" 
##  [19,] "Anthony" "Cody"    "My"     
##  [20,] "Anthony" "Cody"    "Rebecca"
##  [21,] "Anthony" "Cody"    "Tyla"   
##  [22,] "Anthony" "Daif"    "Elena"  
##  [23,] "Anthony" "Daif"    "Morgan" 
##  [24,] "Anthony" "Daif"    "My"     
##  [25,] "Anthony" "Daif"    "Rebecca"
##  [26,] "Anthony" "Daif"    "Tyla"   
##  [27,] "Anthony" "Elena"   "Morgan" 
##  [28,] "Anthony" "Elena"   "My"     
##  [29,] "Anthony" "Elena"   "Rebecca"
##  [30,] "Anthony" "Elena"   "Tyla"   
##  [31,] "Anthony" "Morgan"  "My"     
##  [32,] "Anthony" "Morgan"  "Rebecca"
##  [33,] "Anthony" "Morgan"  "Tyla"   
##  [34,] "Anthony" "My"      "Rebecca"
##  [35,] "Anthony" "My"      "Tyla"   
##  [36,] "Anthony" "Rebecca" "Tyla"   
##  [37,] "Briana"  "Chad"    "Cody"   
##  [38,] "Briana"  "Chad"    "Daif"   
##  [39,] "Briana"  "Chad"    "Elena"  
##  [40,] "Briana"  "Chad"    "Morgan" 
##  [41,] "Briana"  "Chad"    "My"     
##  [42,] "Briana"  "Chad"    "Rebecca"
##  [43,] "Briana"  "Chad"    "Tyla"   
##  [44,] "Briana"  "Cody"    "Daif"   
##  [45,] "Briana"  "Cody"    "Elena"  
##  [46,] "Briana"  "Cody"    "Morgan" 
##  [47,] "Briana"  "Cody"    "My"     
##  [48,] "Briana"  "Cody"    "Rebecca"
##  [49,] "Briana"  "Cody"    "Tyla"   
##  [50,] "Briana"  "Daif"    "Elena"  
##  [51,] "Briana"  "Daif"    "Morgan" 
##  [52,] "Briana"  "Daif"    "My"     
##  [53,] "Briana"  "Daif"    "Rebecca"
##  [54,] "Briana"  "Daif"    "Tyla"   
##  [55,] "Briana"  "Elena"   "Morgan" 
##  [56,] "Briana"  "Elena"   "My"     
##  [57,] "Briana"  "Elena"   "Rebecca"
##  [58,] "Briana"  "Elena"   "Tyla"   
##  [59,] "Briana"  "Morgan"  "My"     
##  [60,] "Briana"  "Morgan"  "Rebecca"
##  [61,] "Briana"  "Morgan"  "Tyla"   
##  [62,] "Briana"  "My"      "Rebecca"
##  [63,] "Briana"  "My"      "Tyla"   
##  [64,] "Briana"  "Rebecca" "Tyla"   
##  [65,] "Chad"    "Cody"    "Daif"   
##  [66,] "Chad"    "Cody"    "Elena"  
##  [67,] "Chad"    "Cody"    "Morgan" 
##  [68,] "Chad"    "Cody"    "My"     
##  [69,] "Chad"    "Cody"    "Rebecca"
##  [70,] "Chad"    "Cody"    "Tyla"   
##  [71,] "Chad"    "Daif"    "Elena"  
##  [72,] "Chad"    "Daif"    "Morgan" 
##  [73,] "Chad"    "Daif"    "My"     
##  [74,] "Chad"    "Daif"    "Rebecca"
##  [75,] "Chad"    "Daif"    "Tyla"   
##  [76,] "Chad"    "Elena"   "Morgan" 
##  [77,] "Chad"    "Elena"   "My"     
##  [78,] "Chad"    "Elena"   "Rebecca"
##  [79,] "Chad"    "Elena"   "Tyla"   
##  [80,] "Chad"    "Morgan"  "My"     
##  [81,] "Chad"    "Morgan"  "Rebecca"
##  [82,] "Chad"    "Morgan"  "Tyla"   
##  [83,] "Chad"    "My"      "Rebecca"
##  [84,] "Chad"    "My"      "Tyla"   
##  [85,] "Chad"    "Rebecca" "Tyla"   
##  [86,] "Cody"    "Daif"    "Elena"  
##  [87,] "Cody"    "Daif"    "Morgan" 
##  [88,] "Cody"    "Daif"    "My"     
##  [89,] "Cody"    "Daif"    "Rebecca"
##  [90,] "Cody"    "Daif"    "Tyla"   
##  [91,] "Cody"    "Elena"   "Morgan" 
##  [92,] "Cody"    "Elena"   "My"     
##  [93,] "Cody"    "Elena"   "Rebecca"
##  [94,] "Cody"    "Elena"   "Tyla"   
##  [95,] "Cody"    "Morgan"  "My"     
##  [96,] "Cody"    "Morgan"  "Rebecca"
##  [97,] "Cody"    "Morgan"  "Tyla"   
##  [98,] "Cody"    "My"      "Rebecca"
##  [99,] "Cody"    "My"      "Tyla"   
## [100,] "Cody"    "Rebecca" "Tyla"   
## [101,] "Daif"    "Elena"   "Morgan" 
## [102,] "Daif"    "Elena"   "My"     
## [103,] "Daif"    "Elena"   "Rebecca"
## [104,] "Daif"    "Elena"   "Tyla"   
## [105,] "Daif"    "Morgan"  "My"     
## [106,] "Daif"    "Morgan"  "Rebecca"
## [107,] "Daif"    "Morgan"  "Tyla"   
## [108,] "Daif"    "My"      "Rebecca"
## [109,] "Daif"    "My"      "Tyla"   
## [110,] "Daif"    "Rebecca" "Tyla"   
## [111,] "Elena"   "Morgan"  "My"     
## [112,] "Elena"   "Morgan"  "Rebecca"
## [113,] "Elena"   "Morgan"  "Tyla"   
## [114,] "Elena"   "My"      "Rebecca"
## [115,] "Elena"   "My"      "Tyla"   
## [116,] "Elena"   "Rebecca" "Tyla"   
## [117,] "Morgan"  "My"      "Rebecca"
## [118,] "Morgan"  "My"      "Tyla"   
## [119,] "Morgan"  "Rebecca" "Tyla"   
## [120,] "My"      "Rebecca" "Tyla"


Y, en consecuencia, el número de posibilidades será:



nrow(combinations(n=10, r=3, v=x))
## [1] 120