{"id":336,"date":"2023-11-10T20:14:47","date_gmt":"2023-11-10T20:14:47","guid":{"rendered":"https:\/\/agustincastro.es\/?p=336"},"modified":"2026-01-24T13:22:51","modified_gmt":"2026-01-24T13:22:51","slug":"ejercicio-con-las-estructuras-de-control-while-for-e-if-loteria-en-r","status":"publish","type":"post","link":"https:\/\/agustincastro.es\/index.php\/2023\/11\/10\/ejercicio-con-las-estructuras-de-control-while-for-e-if-loteria-en-r\/","title":{"rendered":"Ejercicio con las estructuras de control \u00abwhile\u00bb, \u00abfor\u00bb e \u00abif\u00bb &#8211; Loter\u00eda en R."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este peque\u00f1o programa en R ofrece un n\u00famero al azar mediante el uso de la funci\u00f3n sample() entre los valores 0 y 99999. El n\u00famero obtenido se compara con el que buscamos, que ser\u00eda el n\u00famero de loter\u00eda que estamos jugando (el 29570 en nuestro ejemplo). Contabilizamos el n\u00famero de intentos hasta conseguir el n\u00famero y, repetimos el proceso <em>n<\/em> veces (100 exactamente). El fin es obtener el n\u00famero medio de intentos realizados hasta conseguir nuestro n\u00famero tras probar 100 veces (que se corresponder\u00eda con 100 sorteos diferentes). La funci\u00f3n creada va generando un vector con los valores obtenidos (intentos) en cada sorteo y, posteriormente calculamos la media de estos. Tambi\u00e9n calculamos la mediana y representamos estos resultados con un histograma de frecuencias.  <\/p>\n\n\n\n<pre class=\"wp-block-verse\">library(beepr)<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">##### variables<\/h5>\n\n\n\n<pre class=\"wp-block-verse\">i &lt;- 1<br>n &lt;- 1<br>precio = 20<br>contador = 1<br>intento &lt;- c()<br>gasto &lt;- c()<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">##### funci\u00f3n<\/h5>\n\n\n\n<pre class=\"wp-block-verse\">loteria &lt;- function(numero) {\nrun = TRUE\nwhile (run == TRUE) {\nsample &lt;- sample(1:99999, 1)\ncat(\"Iter:\", i, \"intento:\", n, \"buscado:\", numero, \"loter\u00eda:\", sample, \"gasto:\", precio*n<em>, \"\\n\")<\/em>\n<em>if (numero == sample) {<\/em> \n<em>cat(\"\\nEl gasto total en loter\u00eda ha sido de:\", precio<\/em>*n, \"euros\")\nrun = FALSE\n}\nn = n + 1\n}\nintento &lt;&lt;- c(intento, n - 1) <em># va creando la lista de intentos<\/em>\ngasto &lt;&lt;- c(gasto, precio*(n - 1)) <em># va creando la lista de gastos<\/em>\n}\n<em>cat(\"\\nEl n\u00famero\", sample, \"resulta premiado. \\nIteraci\u00f3n:\", i , \"Intento:\", n) <\/em><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">##### ejecuci\u00f3n<\/p>\n\n\n\n<pre class=\"wp-block-verse\">numero = 29570 # n\u00famero a obtener<br>while (i &lt; 101) {<br>loteria(numero)<br>beep(sound = 1)<br>Sys.sleep(2)<br>if (i == 100) {<br>print(\"FIN\")<br>beep(sound = 2)<br>Sys.sleep(2)<br>}<br>i &lt;- i + 1<br>}<\/pre>\n\n\n\n<pre class=\"wp-block-verse\">mean(intento)<br>median(intento)<br>mean(gasto)<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">##### gr\u00e1fico del histograma<\/h5>\n\n\n\n<pre class=\"wp-block-verse\">options(scipen = 999) <em># eje X sin notaci\u00f3n cient\u00edfica<\/em>\nhist(intento, main = \"Distribuci\u00f3n de intentos | loter\u00eda\",\nsub = \"frecuencia de aciertos del n\u00famero en n intentos\",\nxlab = \"Intentos\", ylab = \"Frecuencia\",\ncol = \"skyblue\", border = \"black\")\nabline(v=median(intento), col=\"purple\")\nabline(v=mean(intento), col=\"blue\")\nlegend(\"topright\", legend = \"Media\", col = \"purple\",\nlty = 1, lwd = 2, bty = \"n\", cex = 0.9, inset = c(0, 0.1), xpd = TRUE)\nlegend(\"topright\", legend = \"Mediana\", col = \"blue\",\nlty = 1, lwd = 2, bty = \"n\", cex = 0.9, inset = c(0, 0.2), xpd = TRUE)<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"797\" height=\"697\" data-src=\"https:\/\/agustincastro.es\/wp-content\/uploads\/2023\/11\/intentos-frecuencia.png\" alt=\"\" class=\"wp-image-337 lazyload\" data-srcset=\"https:\/\/agustincastro.es\/wp-content\/uploads\/2023\/11\/intentos-frecuencia.png 797w, https:\/\/agustincastro.es\/wp-content\/uploads\/2023\/11\/intentos-frecuencia-300x262.png 300w, https:\/\/agustincastro.es\/wp-content\/uploads\/2023\/11\/intentos-frecuencia-768x672.png 768w\" data-sizes=\"(max-width: 797px) 100vw, 797px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 797px; --smush-placeholder-aspect-ratio: 797\/697;\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Este peque\u00f1o programa en R ofrece un n\u00famero al azar mediante el uso de la funci\u00f3n sample() entre los valores 0 y 99999. El n\u00famero obtenido se compara con el que buscamos, que ser\u00eda el n\u00famero de loter\u00eda que estamos jugando (el 29570 en nuestro ejemplo). Contabilizamos el n\u00famero de intentos hasta conseguir el n\u00famero [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":330,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,5],"tags":[],"class_list":["post-336","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-r","category-tecnica-y-practica"],"_links":{"self":[{"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/posts\/336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/comments?post=336"}],"version-history":[{"count":8,"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/posts\/336\/revisions"}],"predecessor-version":[{"id":347,"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/posts\/336\/revisions\/347"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/media\/330"}],"wp:attachment":[{"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/media?parent=336"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/categories?post=336"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agustincastro.es\/index.php\/wp-json\/wp\/v2\/tags?post=336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}