{"id":379,"date":"2018-12-20T22:30:34","date_gmt":"2018-12-21T04:30:34","guid":{"rendered":"http:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=379"},"modified":"2021-07-11T16:17:20","modified_gmt":"2021-07-11T21:17:20","slug":"numeros-aleatorios","status":"publish","type":"page","link":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=379","title":{"rendered":"N\u00fameros aleatorios"},"content":{"rendered":"<h1><strong>N\u00fameros aleatorios<\/strong><\/h1>\n<p>Un <em>n\u00famero\u00a0<strong>aleatorio<\/strong><\/em> es aquel n\u00famero que se obtiene netamente al azar, es decir, es todo n\u00famero que pertenezca a un rango de valores\u00a0 o a un conjunto infinito de valores y que tenga la misma probabilidad de ser elegido y que la elecci\u00f3n de uno no dependa de la elecci\u00f3n del otro. Muchos lenguajes de programaci\u00f3n tienen dentro de sus estructura b\u00e1sica la funci\u00f3n para realizar n\u00fameros aleatorios, o dicho de una forma m\u00e1s concisa, pseudo aleatorios. PROLOG tiene su propio generador de n\u00fameros aleatorios, y tiene forma de poder utilizar una semilla para la generaci\u00f3n y c\u00e1lculo de un valor aleatorio.<\/p>\n<p>La palabra reservada para la semilla es <em>seed<\/em>, y es utilizada en la siguiente manera:<\/p>\n<pre class=\"lang:default decode:true \">set_random(seed(X)), A is random(Y).<\/pre>\n<p>D\u00f3nde el valor $X$\u00a0 es el valor desde el cual inicia el c\u00e1lculo del valor aleatorio, es decir, la semilla; y $Y$ es el l\u00edmite m\u00e1ximo sobre el cual el n\u00famero aleatorio debe caer, es decir, se generan n\u00fameros aleatorios desde 0 hasta $Y$.<\/p>\n<p>Se pueden generar n\u00fameros aleatorios por medio de la siguiente regla:<\/p>\n<pre class=\"lang:default decode:true \">main(X):- random(-1000.0, 1000.0, X).<\/pre>\n<p>En este caso, $random(A, B,X)$, genera un n\u00famero aleatorio con un l\u00edmite inferior $A$ y un l\u00edmite superior $B$, asignando el valor aleatorio en $X$. En este esquema, como estamos utilizando una regla, es conveniente que esta se guarde en un archivo .pl, y solo se realice la consulta <em>main(X).<\/em> a trav\u00e9s del int\u00e9rprete.<\/p>\n<p>Tambi\u00e9n es posible generar una secuencia de n\u00fameros aleatorios por medio de la consulta:<\/p>\n<pre class=\"lang:default decode:true \">?- randseq(Valores, Limite, Secuencia).<\/pre>\n<p>En este caso, tenemos que se van a generar una cantidad igual a $Valores$ de n\u00fameros aleatorios que ir\u00e1n desde 0 hasta $Limite$, regresando dichos valores en la lista $Secuencia$, valores organizados de manera desordenada.<\/p>\n<p><strong>Ejemplo.<\/strong> Obtener una secuencia de 6 n\u00fameros aleatorios que est\u00e9n en los l\u00edmites de 0 a 50.<\/p>\n<pre class=\"lang:default decode:true\">?- randseq(6, 50, Secuencia).<\/pre>\n<p>Bajo esta consulta, PROLOG regresar\u00e1:<\/p>\n<pre class=\"lang:default decode:true \">Secuencia = [ 6, 39, 43, 11, 23].<\/pre>\n<p>Una instrucci\u00f3n muy parecida a la anterior es la dada por $randset(Valores, Limite, Secuencia).$, esta funci\u00f3n realiza la misma acci\u00f3n que <em>randseq<\/em>, solo que la lista de valores aleatorios que regresa la funci\u00f3n, est\u00e1 colocada de forma ordenada, por ejemplo si realizamos la siguiente consulta:<\/p>\n<pre class=\"lang:default decode:true \">?- randset(6, 50, Secuencia).<\/pre>\n<p>PROLOG regresar\u00e1:<\/p>\n<pre class=\"lang:default decode:true \">Secuencia = [ 6, 11, 23, 39, 43].<\/pre>\n<p>Es importante mencionar que aunque de forma est\u00e1ndar estas funciones trabajaran en PROLOG, en ocasiones es necesario incluir una librer\u00eda en la siguiente forma:<\/p>\n<pre class=\"lang:default decode:true \">?- use_module(library(random)).<\/pre>\n<p>Con esta consulta, garantizaremos que los comandos mencionados funcionaran correctamente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u00fameros aleatorios Un n\u00famero\u00a0aleatorio es aquel n\u00famero que se obtiene netamente al azar, es decir, es todo n\u00famero que pertenezca a un rango de valores\u00a0 o a un conjunto infinito de valores y que tenga la misma probabilidad de ser elegido y que la elecci\u00f3n de uno no dependa de la elecci\u00f3n del otro. Muchos &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=379\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> &#8220;N\u00fameros aleatorios&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-379","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/379"}],"collection":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=379"}],"version-history":[{"count":7,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/379\/revisions"}],"predecessor-version":[{"id":946,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/379\/revisions\/946"}],"wp:attachment":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}