{"id":7901,"date":"2015-05-20T09:45:32","date_gmt":"2015-05-20T14:45:32","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=7901"},"modified":"2026-04-04T11:34:53","modified_gmt":"2026-04-04T16:34:53","slug":"numeros-aleatorios-en-python","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-u03\/numeros-aleatorios-en-python\/","title":{"rendered":"3.4 N\u00fameros Aleatorios, al Azar o random con Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#aleatorio\">aleatorio<\/a><\/p>\n\n\n\n<p><a href=\"#aleatoriodado\">aleatorio dado<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aleatorio\">1. N\u00famero aleatorio o al azar<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: Van Rossum 10.6 p85, Rodr\u00edguez 5.9 p99, Downey 12.1<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"122\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/dados.gif\" alt=\"dados para n\u00fameros aleatorios\" class=\"wp-image-16019\" \/><\/figure>\n\n\n\n<p>Para simular un n\u00famero de azar se recurre al concepto de n\u00fameros aleatorios, que por ejemplo es el valor obtenido al lanzar un dado para juegos de tablero. Si el dado es est\u00e1ndar, no se puede predecir el valor que saldr\u00e1 en el dado.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"133\" height=\"61\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/aleatorio01.png\" alt=\"aleatorio recta num\u00e9rica \" class=\"wp-image-16020\" \/><\/figure>\n\n\n\n<p>Un n\u00famero aleatorio se define como un n\u00famero&nbsp;real cualquiera en el intervalo [0,1). <\/p>\n\n\n\n<p>La forma b\u00e1sica de generar un n\u00famero aleatorio en Python es usando la librer\u00eda <code>random()<\/code>, que se puede usar con operaciones adicionales para simulaciones de dados, movimientos en juegos, etc.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; <span style=\"color: #d35400\">import<\/span> random <span style=\"color: #d35400\">as<\/span> rnd\n&gt;&gt;&gt; rnd.random()\n0.28033599517631624\n&gt;&gt;&gt; rnd.random()\n0.07239272147532794\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Lazos o Bucles y N\u00fameros Aleatorios en Python\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/8l-vssad8ak?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#aleatorio\">aleatorio<\/a><\/p>\n\n\n\n<p><a href=\"#aleatoriodado\">aleatorio dado<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aleatoriodado\">2. N\u00famero aleatorios para un dado en Python<\/h2>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/10\/dado.gif\" alt=\"numero aleatorio entero dado de seis caras\" class=\"wp-image-4398\" \/><\/figure>\n\n\n\n<p>Para simular <em><strong>un dado de seis caras<\/strong><\/em>, que es un n\u00famero aleatorio entero en el intervalo [0,6] se construye paso a paso:<\/p>\n\n\n\n<p class=\"has-text-align-center\">dado \u2190 entero(aleatorio*6)+1<\/p>\n\n\n\n<p>1. Un n\u00famero aleatorio<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"133\" height=\"61\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/aleatorio01.png\" alt=\"aleatorio recta num\u00e9rica\" class=\"wp-image-16020\" \/><\/figure>\n\n\n\n<p>Se empieza con la forma b\u00e1sica para generar un n\u00famero aleatorio entre [0,1)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; <span style=\"color: #d35400\">import<\/span> random <span style=\"color: #d35400\">as<\/span> rnd\n&gt;&gt;&gt; aleatorio = rnd.random()\n&gt;&gt;&gt; aleatorio\n0.9531257439341784<\/code><\/pre>\n\n\n\n<p>2. Se debe convertir del intervalo [0,1) al intervalo de un dado de 6 caras,<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"291\" height=\"66\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/10\/aleatorio06.png\" alt=\"numero aleatorio en intervalo[0.6)\" class=\"wp-image-4399\" \/><\/figure>\n\n\n\n<p>multiplicando el aleatorio por 6, obteniendo un real de [0,6). No se incluye el 6.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; dado = aleatorio*6\n&gt;&gt;&gt; dado\n5.7187544636050704<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"291\" height=\"74\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/10\/aleatorio06a.png\" alt=\"n\u00famero aleatorio [0,6) entero\" class=\"wp-image-4400\" \/><\/figure>\n\n\n\n<p>3. Sin embargo, el aleatorio de un dado es un n\u00famero entero<\/p>\n\n\n\n<p>Se extrae solo la parte entera para obtener un n\u00famero entero [0,5]<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; dado = <span style=\"color: #ff00ff\">int<\/span>(aleatorio*6)\n&gt;&gt;&gt; dado\n5<\/code><\/pre>\n\n\n\n<p>4. Para que el resultado sea [1,6],<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"291\" height=\"54\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/aleatorio06b.png\" alt=\"n\u00famero aleatorio [1,6] entero\" class=\"wp-image-16021\" \/><\/figure>\n\n\n\n<p>se desplaza el intervalo a la derecha sum\u00e1ndole 1, con lo que el valor m\u00ednimo es 1 y el m\u00e1ximo ser\u00e1 6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; dado = <span style=\"color: #ff00ff\">int<\/span>(aleatorio*6)+1\n&gt;&gt;&gt; dado\n6<\/code><\/pre>\n\n\n\n<p>La f\u00f3rmula final del ejemplo usada varias veces, mostrar\u00e1 que se obtiene un n\u00famero diferente semejante a lanzar un dado de seis caras.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; dado = <span style=\"color: #ff00ff\">int<\/span>(rnd.random()*6)+1\n&gt;&gt;&gt; dado\n1\n&gt;&gt;&gt; dado = <span style=\"color: #ff00ff\">int<\/span>(rnd.random()*6)+1\n&gt;&gt;&gt; dado\n3\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: Elementos esenciales para programaci\u00f3n: Algoritmos y Estructuras de Datos Latin Project. Primera Edici\u00f3n 2014. Secci\u00f3n 4.42. p.86<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#aleatorio\">aleatorio<\/a><\/p>\n\n\n\n<p><a href=\"#aleatoriodado\">aleatorio dado<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ejercicio\">3. Ejercicio<\/h2>\n\n\n\n<p class=\"entry-title\"><strong>Referencia<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-eval\/fp-1e10\/1eva2008ti_t3-simular-precio-de-petroleo\/\" data-type=\"post\" data-id=\"3174\">1Eva2008TI_T3 Simular precio de petroleo<\/a><\/p>\n\n\n\n<p>Realice un algoritmo para simular el precio del barril de petr\u00f3leo durante un mes de 30 d\u00edas, suponiendo que son valores enteros que fluct\u00faan en forma aleatoria entre $ 130 y $ 150 y se obtenga las siguientes respuestas:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"214\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/03\/prpetroleo.gif\" alt=\"promedio valores grafico\" class=\"wp-image-214\" \/><\/figure>\n\n\n\n<p>a) El promedio del precio del petr\u00f3leo.<br>b) \u00bfCu\u00e1l fue el d\u00eda en el que estuvo m\u00e1s barato el barril de petr\u00f3leo?<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#aleatorio\">aleatorio<\/a><\/p>\n\n\n\n<p><a href=\"#aleatoriodado\">aleatorio dado<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"algoritmo\">4. Desarrollo de algoritmo<\/h2>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"474\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/precioPetroleoAleatorio01Diagrama.png\" alt=\"precio petroleo aleatorio diagrama\" class=\"wp-image-16022\" \/><figcaption class=\"wp-element-caption\">Diagrama de Flujo ejercicio - n\u00fameros aleatorios<\/figcaption><\/figure>\n\n\n\n<p>Para iniciar el algoritmo, se puede considerar como variable de entrada los d\u00edas del mes, o asignarles directamente 30 d\u00edas.<\/p>\n\n\n\n<p>La primera aproximaci\u00f3n al problema para responder el literal a) consiste en generar n\u00fameros aleatorios en el rango [130, 150] y acumular sus valores para el promedio.<\/p>\n\n\n\n<p>Ser\u00e1 necesario disponer de un contador para controlar el n\u00famero de veces que se generan los precios de forma aleatoria en el lazo de repetici\u00f3n.<\/p>\n\n\n\n<p>Una de las formas de resolver el problema es con un lazo repita hasta, cuyo diagrama de flujo se muestra a continuaci\u00f3n:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instrucciones en Python<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Ejercicio 1. Precio del petroleo\nimport random as rnd\n\n# INGRESO\ndiasmes = int(input('dias que tiene el mes: '))\n\n# PROCEDIMIENTO\ntotal = 0\ndia   = 0\nrango = (150-130)+1\nwhile not(dia&gt;=diasmes):\n    precio = int(rnd.random()*rango) + 130\n    total  = total + precio\n    dia    = dia + 1\npromedio = total\/diasmes\n\n# SALIDA\nprint(promedio)\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code\"><code>dias que tiene el mes: 30\n137.56666666666666\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>Para la pregunta b) es necesario analizar la manera de encontrar el d\u00eda con el precio m\u00e1s barato.<\/p>\n\n\n\n<p>En este caso se utilizar\u00e1 el algoritmo para b\u00fasqueda del menor, que consiste en iniciar con el supuesto para el valor menor de precio y d\u00eda, probando contra el precio de cada d\u00eda y de ser necesario se cambian los valores menores.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"701\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/preciopetroleoaleatorio02diagrama.png\" alt=\"precio petroleo aleatorio 02 diagrama\" class=\"wp-image-16023\" \/><figcaption class=\"wp-element-caption\">Diagrama de Flujo ejercicio - b\u00fasqueda de menor valor<\/figcaption><\/figure>\n\n\n\n<p>Es un similar al caso de usar una hip\u00f3tesis y realizar luego las pruebas.<\/p>\n\n\n\n<p>Como supuesto, se escoger\u00e1 el valor m\u00e1ximo de precio con el objetivo que el primer precio que aparece sustituye los valores.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Ejercicio 1. Precio del petroleo\nimport random as rnd\n\n# INGRESO\ndiasmes =  int(input('dias que tiene el mes: '))\n\n# PROCEDIMIENTO\ntotal = 0\ndia = 0\nrango = (150-130)+1\ndiamenor = 0\npreciomenor = 150\nwhile not(dia&gt;=diasmes):\n    precio = int(rnd.random()*rango) + 130\n    total = total + precio\n    if (precio&lt;preciomenor):\n        diamenor = dia\n        preciomenor = precio\n    dia = dia + 1\npromedio = total\/diasmes\n\n# SALIDA\nprint(promedio)\nprint(diamenor)\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code\"><code>dias que tiene el mes: 30\n 140.06666666666666\n 22\n &gt;&gt;&gt;<\/code><\/pre>\n\n\n\n<p>Otra forma de realizar el algoritmo consiste en cambiar la perspectiva del lazo repita- hasta por un mientras repita. Para el cambio ser\u00e1 necesario solo negar la expresi\u00f3n usada en el lazo repita-hasta en d\u00edas&lt;diasmes.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"253\" height=\"701\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/preciopetroleoaleatorio03diagrama.png\" alt=\"precio petroleo aleatorio 03 diagrama\" class=\"wp-image-16024\" \/><figcaption class=\"wp-element-caption\">Diagrama de Flujo ejercicio - aleatorios y b\u00fasqueda de menor valor con mientras-repita<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#aleatorio\">aleatorio<\/a><\/p>\n\n\n\n<p><a href=\"#aleatoriodado\">aleatorio dado<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>aleatorio aleatorio dado Ejercicio algoritmo 1. N\u00famero aleatorio o al azar Referencia: Van Rossum 10.6 p85, Rodr\u00edguez 5.9 p99, Downey 12.1 Para simular un n\u00famero de azar se recurre al concepto de n\u00fameros aleatorios, que por ejemplo es el valor obtenido al lanzar un dado para juegos de tablero. Si el dado es est\u00e1ndar, no [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-unidades","format":"standard","meta":{"footnotes":""},"categories":[104],"tags":[],"class_list":["post-7901","post","type-post","status-publish","format-standard","hentry","category-fp-u03"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=7901"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7901\/revisions"}],"predecessor-version":[{"id":23006,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7901\/revisions\/23006"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}