Definicion de Mazo y reparto del mismo

mazo=matrix(c(rep( c(2:10,"J","Q","K","A"),4),rep(c("C","D","H","S"),rep(13,4))), ncol=2,dimnames=list(NULL,c("rank","suit")))
reparto_mazo = function()
{
  return( mazo[sample(1:52,5,replace=F),])
}

Mano

mano = function(hand)
{    
  ranks_acehigh = c(2:10,"J","Q","K","A")
  ranks_acelow = c("A",2:10,"J","Q","K")
  rank_i_ah = sort( sapply(hand[,"rank"],function(x) which(x == ranks_acehigh)) )
  rank_i_al = sort( sapply(hand[,"rank"],function(x) which(x == ranks_acelow)) )
  is_straight = all( rank_i_ah-min(rank_i_ah)+1 == 1:5 ) |        all(rank_i_al-min(rank_i_al)+1 == 1:5 )
  is_flush = length(unique(hand[,"suit"])) == 1
  if (is_straight && is_flush) {
    if (all(c("K","A") %in% hand[,"rank"]))
      return( "Royal flush" )
    else 
      return( "Straight flush" )
  }
  
  if (is_straight) 
    return( "Straight" )
  if (is_flush) 
    return( "Flush" )
  tab = sort( table(hand[,"rank"]) )
  if (length(tab)==2) {
    if (all(tab == c(1,4)))
      return( "Four of a kind" )
    if (all(tab == c(2,3)))
      return( "Full house")
  }
  if (length(tab)==3) {
    if (all(tab == c(1,1,3))) 
      return( "Three of a kind")
    if (all(tab == c(1,2,2)))
      return( "Two pair" )
  }
  if (length(tab)==4) {
    return( "Pair" )
  }
  return( "No pair" )
}

Funcion de Simulacion

simulate = function(N) 
{
  manos = c("Royal flush", "Straight flush", "Four of a kind",
            "Full house", "Flush", "Straight",
            "Three of a kind", "Two pair", "Pair", "No pair")
  res = matrix(rep(0,length(manos)),ncol=1)
  rownames(res) = manos
  colnames(res) = "Counts"
  
  pb = txtProgressBar(min = 0, max = N, style = 3)
  for(i in 1:N) {
    mano = mano(reparto_mazo())
    res[mano,1] = res[mano,1]+1
    setTxtProgressBar(pb, i)
  }
  return(res)
}

Simulacion

simulate(9999)

  |                                                                       
  |                                                                 |   0%
  |                                                                       
  |                                                                 |   1%
  |                                                                       
  |=                                                                |   1%
  |                                                                       
  |=                                                                |   2%
  |                                                                       
  |==                                                               |   2%
  |                                                                       
  |==                                                               |   3%
  |                                                                       
  |==                                                               |   4%
  |                                                                       
  |===                                                              |   4%
  |                                                                       
  |===                                                              |   5%
  |                                                                       
  |====                                                             |   5%
  |                                                                       
  |====                                                             |   6%
  |                                                                       
  |====                                                             |   7%
  |                                                                       
  |=====                                                            |   7%
  |                                                                       
  |=====                                                            |   8%
  |                                                                       
  |======                                                           |   8%
  |                                                                       
  |======                                                           |   9%
  |                                                                       
  |======                                                           |  10%
  |                                                                       
  |=======                                                          |  10%
  |                                                                       
  |=======                                                          |  11%
  |                                                                       
  |=======                                                          |  12%
  |                                                                       
  |========                                                         |  12%
  |                                                                       
  |========                                                         |  13%
  |                                                                       
  |=========                                                        |  13%
  |                                                                       
  |=========                                                        |  14%
  |                                                                       
  |=========                                                        |  15%
  |                                                                       
  |==========                                                       |  15%
  |                                                                       
  |==========                                                       |  16%
  |                                                                       
  |===========                                                      |  16%
  |                                                                       
  |===========                                                      |  17%
  |                                                                       
  |===========                                                      |  18%
  |                                                                       
  |============                                                     |  18%
  |                                                                       
  |============                                                     |  19%
  |                                                                       
  |=============                                                    |  19%
  |                                                                       
  |=============                                                    |  20%
  |                                                                       
  |=============                                                    |  21%
  |                                                                       
  |==============                                                   |  21%
  |                                                                       
  |==============                                                   |  22%
  |                                                                       
  |===============                                                  |  22%
  |                                                                       
  |===============                                                  |  23%
  |                                                                       
  |===============                                                  |  24%
  |                                                                       
  |================                                                 |  24%
  |                                                                       
  |================                                                 |  25%
  |                                                                       
  |=================                                                |  25%
  |                                                                       
  |=================                                                |  26%
  |                                                                       
  |=================                                                |  27%
  |                                                                       
  |==================                                               |  27%
  |                                                                       
  |==================                                               |  28%
  |                                                                       
  |===================                                              |  28%
  |                                                                       
  |===================                                              |  29%
  |                                                                       
  |===================                                              |  30%
  |                                                                       
  |====================                                             |  30%
  |                                                                       
  |====================                                             |  31%
  |                                                                       
  |====================                                             |  32%
  |                                                                       
  |=====================                                            |  32%
  |                                                                       
  |=====================                                            |  33%
  |                                                                       
  |======================                                           |  33%
  |                                                                       
  |======================                                           |  34%
  |                                                                       
  |======================                                           |  35%
  |                                                                       
  |=======================                                          |  35%
  |                                                                       
  |=======================                                          |  36%
  |                                                                       
  |========================                                         |  36%
  |                                                                       
  |========================                                         |  37%
  |                                                                       
  |========================                                         |  38%
  |                                                                       
  |=========================                                        |  38%
  |                                                                       
  |=========================                                        |  39%
  |                                                                       
  |==========================                                       |  39%
  |                                                                       
  |==========================                                       |  40%
  |                                                                       
  |==========================                                       |  41%
  |                                                                       
  |===========================                                      |  41%
  |                                                                       
  |===========================                                      |  42%
  |                                                                       
  |============================                                     |  42%
  |                                                                       
  |============================                                     |  43%
  |                                                                       
  |============================                                     |  44%
  |                                                                       
  |=============================                                    |  44%
  |                                                                       
  |=============================                                    |  45%
  |                                                                       
  |==============================                                   |  45%
  |                                                                       
  |==============================                                   |  46%
  |                                                                       
  |==============================                                   |  47%
  |                                                                       
  |===============================                                  |  47%
  |                                                                       
  |===============================                                  |  48%
  |                                                                       
  |================================                                 |  48%
  |                                                                       
  |================================                                 |  49%
  |                                                                       
  |================================                                 |  50%
  |                                                                       
  |=================================                                |  50%
  |                                                                       
  |=================================                                |  51%
  |                                                                       
  |=================================                                |  52%
  |                                                                       
  |==================================                               |  52%
  |                                                                       
  |==================================                               |  53%
  |                                                                       
  |===================================                              |  53%
  |                                                                       
  |===================================                              |  54%
  |                                                                       
  |===================================                              |  55%
  |                                                                       
  |====================================                             |  55%
  |                                                                       
  |====================================                             |  56%
  |                                                                       
  |=====================================                            |  56%
  |                                                                       
  |=====================================                            |  57%
  |                                                                       
  |=====================================                            |  58%
  |                                                                       
  |======================================                           |  58%
  |                                                                       
  |======================================                           |  59%
  |                                                                       
  |=======================================                          |  59%
  |                                                                       
  |=======================================                          |  60%
  |                                                                       
  |=======================================                          |  61%
  |                                                                       
  |========================================                         |  61%
  |                                                                       
  |========================================                         |  62%
  |                                                                       
  |=========================================                        |  62%
  |                                                                       
  |=========================================                        |  63%
  |                                                                       
  |=========================================                        |  64%
  |                                                                       
  |==========================================                       |  64%
  |                                                                       
  |==========================================                       |  65%
  |                                                                       
  |===========================================                      |  65%
  |                                                                       
  |===========================================                      |  66%
  |                                                                       
  |===========================================                      |  67%
  |                                                                       
  |============================================                     |  67%
  |                                                                       
  |============================================                     |  68%
  |                                                                       
  |=============================================                    |  68%
  |                                                                       
  |=============================================                    |  69%
  |                                                                       
  |=============================================                    |  70%
  |                                                                       
  |==============================================                   |  70%
  |                                                                       
  |==============================================                   |  71%
  |                                                                       
  |==============================================                   |  72%
  |                                                                       
  |===============================================                  |  72%
  |                                                                       
  |===============================================                  |  73%
  |                                                                       
  |================================================                 |  73%
  |                                                                       
  |================================================                 |  74%
  |                                                                       
  |================================================                 |  75%
  |                                                                       
  |=================================================                |  75%
  |                                                                       
  |=================================================                |  76%
  |                                                                       
  |==================================================               |  76%
  |                                                                       
  |==================================================               |  77%
  |                                                                       
  |==================================================               |  78%
  |                                                                       
  |===================================================              |  78%
  |                                                                       
  |===================================================              |  79%
  |                                                                       
  |====================================================             |  79%
  |                                                                       
  |====================================================             |  80%
  |                                                                       
  |====================================================             |  81%
  |                                                                       
  |=====================================================            |  81%
  |                                                                       
  |=====================================================            |  82%
  |                                                                       
  |======================================================           |  82%
  |                                                                       
  |======================================================           |  83%
  |                                                                       
  |======================================================           |  84%
  |                                                                       
  |=======================================================          |  84%
  |                                                                       
  |=======================================================          |  85%
  |                                                                       
  |========================================================         |  85%
  |                                                                       
  |========================================================         |  86%
  |                                                                       
  |========================================================         |  87%
  |                                                                       
  |=========================================================        |  87%
  |                                                                       
  |=========================================================        |  88%
  |                                                                       
  |==========================================================       |  88%
  |                                                                       
  |==========================================================       |  89%
  |                                                                       
  |==========================================================       |  90%
  |                                                                       
  |===========================================================      |  90%
  |                                                                       
  |===========================================================      |  91%
  |                                                                       
  |===========================================================      |  92%
  |                                                                       
  |============================================================     |  92%
  |                                                                       
  |============================================================     |  93%
  |                                                                       
  |=============================================================    |  93%
  |                                                                       
  |=============================================================    |  94%
  |                                                                       
  |=============================================================    |  95%
  |                                                                       
  |==============================================================   |  95%
  |                                                                       
  |==============================================================   |  96%
  |                                                                       
  |===============================================================  |  96%
  |                                                                       
  |===============================================================  |  97%
  |                                                                       
  |===============================================================  |  98%
  |                                                                       
  |================================================================ |  98%
  |                                                                       
  |================================================================ |  99%
  |                                                                       
  |=================================================================|  99%
  |                                                                       
  |=================================================================| 100%                Counts
Royal flush          0
Straight flush       1
Four of a kind       4
Full house          23
Flush               18
Straight            41
Three of a kind    201
Two pair           466
Pair              4233
No pair           5012
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMjIERlZmluaWNpb24gZGUgTWF6byB5IHJlcGFydG8gZGVsIG1pc21vCmBgYHtyfQptYXpvPW1hdHJpeChjKHJlcCggYygyOjEwLCJKIiwiUSIsIksiLCJBIiksNCkscmVwKGMoIkMiLCJEIiwiSCIsIlMiKSxyZXAoMTMsNCkpKSwgbmNvbD0yLGRpbW5hbWVzPWxpc3QoTlVMTCxjKCJyYW5rIiwic3VpdCIpKSkKcmVwYXJ0b19tYXpvID0gZnVuY3Rpb24oKQp7CiAgcmV0dXJuKCBtYXpvW3NhbXBsZSgxOjUyLDUscmVwbGFjZT1GKSxdKQp9CmBgYAoKIyMjIE1hbm8KYGBge3J9Cm1hbm8gPSBmdW5jdGlvbihoYW5kKQp7ICAgIAogIHJhbmtzX2FjZWhpZ2ggPSBjKDI6MTAsIkoiLCJRIiwiSyIsIkEiKQogIHJhbmtzX2FjZWxvdyA9IGMoIkEiLDI6MTAsIkoiLCJRIiwiSyIpCiAgcmFua19pX2FoID0gc29ydCggc2FwcGx5KGhhbmRbLCJyYW5rIl0sZnVuY3Rpb24oeCkgd2hpY2goeCA9PSByYW5rc19hY2VoaWdoKSkgKQogIHJhbmtfaV9hbCA9IHNvcnQoIHNhcHBseShoYW5kWywicmFuayJdLGZ1bmN0aW9uKHgpIHdoaWNoKHggPT0gcmFua3NfYWNlbG93KSkgKQogIGlzX3N0cmFpZ2h0ID0gYWxsKCByYW5rX2lfYWgtbWluKHJhbmtfaV9haCkrMSA9PSAxOjUgKSB8ICAgICAgICBhbGwocmFua19pX2FsLW1pbihyYW5rX2lfYWwpKzEgPT0gMTo1ICkKICBpc19mbHVzaCA9IGxlbmd0aCh1bmlxdWUoaGFuZFssInN1aXQiXSkpID09IDEKICBpZiAoaXNfc3RyYWlnaHQgJiYgaXNfZmx1c2gpIHsKICAgIGlmIChhbGwoYygiSyIsIkEiKSAlaW4lIGhhbmRbLCJyYW5rIl0pKQogICAgICByZXR1cm4oICJSb3lhbCBmbHVzaCIgKQogICAgZWxzZSAKICAgICAgcmV0dXJuKCAiU3RyYWlnaHQgZmx1c2giICkKICB9CiAgCiAgaWYgKGlzX3N0cmFpZ2h0KSAKICAgIHJldHVybiggIlN0cmFpZ2h0IiApCiAgaWYgKGlzX2ZsdXNoKSAKICAgIHJldHVybiggIkZsdXNoIiApCiAgdGFiID0gc29ydCggdGFibGUoaGFuZFssInJhbmsiXSkgKQogIGlmIChsZW5ndGgodGFiKT09MikgewogICAgaWYgKGFsbCh0YWIgPT0gYygxLDQpKSkKICAgICAgcmV0dXJuKCAiRm91ciBvZiBhIGtpbmQiICkKICAgIGlmIChhbGwodGFiID09IGMoMiwzKSkpCiAgICAgIHJldHVybiggIkZ1bGwgaG91c2UiKQogIH0KICBpZiAobGVuZ3RoKHRhYik9PTMpIHsKICAgIGlmIChhbGwodGFiID09IGMoMSwxLDMpKSkgCiAgICAgIHJldHVybiggIlRocmVlIG9mIGEga2luZCIpCiAgICBpZiAoYWxsKHRhYiA9PSBjKDEsMiwyKSkpCiAgICAgIHJldHVybiggIlR3byBwYWlyIiApCiAgfQogIGlmIChsZW5ndGgodGFiKT09NCkgewogICAgcmV0dXJuKCAiUGFpciIgKQogIH0KICByZXR1cm4oICJObyBwYWlyIiApCn0KYGBgCgojIyMgRnVuY2lvbiBkZSBTaW11bGFjaW9uCmBgYHtyfQpzaW11bGF0ZSA9IGZ1bmN0aW9uKE4pIAp7CiAgbWFub3MgPSBjKCJSb3lhbCBmbHVzaCIsICJTdHJhaWdodCBmbHVzaCIsICJGb3VyIG9mIGEga2luZCIsCiAgICAgICAgICAgICJGdWxsIGhvdXNlIiwgIkZsdXNoIiwgIlN0cmFpZ2h0IiwKICAgICAgICAgICAgIlRocmVlIG9mIGEga2luZCIsICJUd28gcGFpciIsICJQYWlyIiwgIk5vIHBhaXIiKQogIHJlcyA9IG1hdHJpeChyZXAoMCxsZW5ndGgobWFub3MpKSxuY29sPTEpCiAgcm93bmFtZXMocmVzKSA9IG1hbm9zCiAgY29sbmFtZXMocmVzKSA9ICJDb3VudHMiCiAgCiAgcGIgPSB0eHRQcm9ncmVzc0JhcihtaW4gPSAwLCBtYXggPSBOLCBzdHlsZSA9IDMpCiAgZm9yKGkgaW4gMTpOKSB7CiAgICBtYW5vID0gbWFubyhyZXBhcnRvX21hem8oKSkKICAgIHJlc1ttYW5vLDFdID0gcmVzW21hbm8sMV0rMQogICAgc2V0VHh0UHJvZ3Jlc3NCYXIocGIsIGkpCiAgfQogIHJldHVybihyZXMpCn0KYGBgCgojIyMgU2ltdWxhY2lvbgpgYGB7cn0Kc2ltdWxhdGUoOTk5OSkKYGBgCgo=