{"id":292,"date":"2015-11-20T14:05:48","date_gmt":"2015-11-20T20:05:48","guid":{"rendered":"http:\/\/naps.com.mx\/blog\/?p=292"},"modified":"2017-11-16T12:15:51","modified_gmt":"2017-11-16T18:15:51","slug":"simulacion-en-java-distribucion-poisson","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/simulacion-en-java-distribucion-poisson\/","title":{"rendered":"Simulaci\u00f3n en Java: Distribuci\u00f3n Poisson"},"content":{"rendered":"<p><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/poisson_java1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-296\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/poisson_java1.jpg\" alt=\"poisson_java\" width=\"822\" height=\"550\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/poisson_java1.jpg 822w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/poisson_java1-300x201.jpg 300w\" sizes=\"auto, (max-width: 822px) 100vw, 822px\" \/><\/a><\/p>\n<h4>El siguiente es un programa en Java que de forma sencilla simula una variable aleatoria de Poisson.<\/h4>\n<p><!--more--><\/p>\n<h3>\u00bfQu\u00e9 es Poisson?<\/h3>\n<p>Existe una distribuci\u00f3n de probabilidad llamada Poisson, que nos permite realizar experimentos aleatorios para observar la frecuencia con que ocurre algo durante un espacio de tiempo.<\/p>\n<p>Por ejemplo, si dese\u00e1ramos analizar el n\u00famero de llamadas que recibe un tel\u00e9fono durante una hora,\u00a0o la cantidad de clientes que llegan a la caja durante un minuto, etc. Poisson nos permite analizar un evento que ocurre en cierta cantidad de tiempo.<\/p>\n<p>Podemos simular experimentos de Poisson en la computadora. Para esto utilizaremos el siguiente algoritmo:<\/p>\n<h3>El algoritmo<\/h3>\n<ol>\n<li>Sean k = 1, p=1<\/li>\n<li>Se genera <em>ui<\/em> = U(0,1) y se hace k = k(ui);<\/li>\n<li>Si k\u2264 exp(-lambda), entonces x-1 es el valor buscado. En caso contrario se hace x=x+1 y se va al paso 2.<\/li>\n<\/ol>\n<h3>El programa<\/h3>\n<p>Este algoritmo llevado a una funci\u00f3n en Java quedar\u00eda de la siguiente manera:<\/p>\n<pre class=\"theme:1c-kod font-size:14 lang:java decode:true \">public static int getPoisson (double lambda){\r\n\u00a0 double L = Math.exp(-lambda);\r\n\u00a0 double p = 1.0;\r\n\u00a0 int k = 0;\r\n\u00a0 do{\r\n\u00a0\u00a0\u00a0\u00a0 k++;\r\n\u00a0\u00a0\u00a0\u00a0 p *= Math.random();\r\n\u00a0 } while (p &gt; L);\r\n\u00a0 return k-1;\r\n}<\/pre>\n<p>El programa principal ser\u00eda:<\/p>\n<pre class=\"theme:1c-kod font-size:14 lang:java decode:true \">\u00a0\u00a0\u00a0 public static void main(String[] args) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int n=0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for (int i=0; i&lt;=10; i++){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 n = getPoisson(4);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"\u00a0 \" + n);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0 }\r\n\r\n\r\n<\/pre>\n<p>Esto nos entrega 10 n\u00fameros que siguen una distribuci\u00f3n Poisson con media de 4.<\/p>\n<h3>Caso de aplicaci\u00f3n<\/h3>\n<p>Un caso de aplicaci\u00f3n ser\u00eda el siguiente:<\/p>\n<p>Una empresa tiene un promedio de 4 accidentes al mes en sus instalaciones. Si cada accidente le representa un gasto de 800 pesos, \u00bfcu\u00e1l ser\u00eda la cantidad probable que gastar\u00e1 en un a\u00f1o por concepto de Pago de Accidentes?<\/p>\n<p>Modificamos el programa principal para que resuelva el problema planteado y quedar\u00eda asi:<\/p>\n<pre class=\"theme:1c-kod font-size:14 lang:java decode:true \">\u00a0\u00a0 public static void main(String[] args) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int n=0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 double pago, total = 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String[] meses = {\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Julio\", \"Agosto\", \"Septiembre\",\"Oct\", \"Nov\", \"Dic\"};\r\n\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0for (int i=0; i&lt;=11; i++){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 n = getPoisson(4);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pago = n * 800;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 total = total + pago;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"Accidentes en \" + meses[i] + \": \" + n);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"Gasto Probable: \" + total);\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\r\n<\/pre>\n<p>Un ejemplo de una salida de este programa ser\u00eda la siguiente:<\/p>\n<p><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/salida_accidentes_poisson.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-293\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/salida_accidentes_poisson.png\" alt=\" salida_accidentes_poisson\" width=\"335\" height=\"278\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/salida_accidentes_poisson.png 335w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/11\/salida_accidentes_poisson-300x249.png 300w\" sizes=\"auto, (max-width: 335px) 100vw, 335px\" \/><\/a><\/p>\n<p>No olvides dejar tus comentarios y dudas sobre este ejercicio.<\/p>\n<h3><strong>Referencias<\/strong><\/h3>\n<ol>\n<li>Mendenhall W., Beaver R., Beaver B. (2008). <strong>Introducci\u00f3n a la probabilidad y estad\u00edstica<\/strong>. 12\u00aa Edici\u00f3n. Ed. Cengage Learning. M\u00e9xico.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>El siguiente es un programa en Java que de forma sencilla simula una variable aleatoria de Poisson.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[216],"tags":[97,98,96,83],"class_list":["post-292","post","type-post","status-publish","format-standard","hentry","category-simulacion-ciencias","tag-ejercicios-java","tag-poisson","tag-simulacion-en-java","tag-variable-aleatoria"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=292"}],"version-history":[{"count":5,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/292\/revisions"}],"predecessor-version":[{"id":299,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/292\/revisions\/299"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}