<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5649477812846447326</id><updated>2011-11-27T17:42:07.342-06:00</updated><title type='text'>Hercoka Net</title><subtitle type='html'>El blog de Héctor Ochoa</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hercoka-net.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5649477812846447326/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hercoka-net.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Héctor Ochoa</name><uri>http://www.blogger.com/profile/04531371194830716921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5649477812846447326.post-6354857805688634112</id><published>2008-12-15T02:58:00.006-06:00</published><updated>2008-12-20T20:25:04.309-06:00</updated><title type='text'>Generación de Combinaciones</title><content type='html'>Generación de Combinaciones&lt;br /&gt;[Generación de combinaciones en .NET]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Introducción&lt;br /&gt;El uso de combinaciones es un tema muy utilizado en la probabilidad y en los juegos de azar como la lotería, sin embargo la generación de estas combinaciones puede ser un tema difícil de entender y aplicar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Combinaciones&lt;br /&gt;&lt;br /&gt;Las combinaciones son un arreglo de objetos sin importar el orden, es decir, si un arreglo ya salio no puede volver a salir en cualquier otro orden. Las combinaciones se definen de un conjunto de N elementos tomados de r en r. Aquí la formula general.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C(N,r) = N! / (N-r)! r!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Este teorema también puede establecerse como sigue:&lt;br /&gt;&lt;br /&gt;El número de subconjuntos diferentes de r elementos cada uno, que puede formarse a partir de un conjunto de N elementos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;Tenemos 9 envases decorados diferentes y solo 6 posiciones para acomodarlos, los envases deberán ser tomados de 6 en 6. Cuantos paquetes de 6 diferentes envases podremos formar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El código:&lt;br /&gt;&lt;br /&gt;Aquí una función recursiva que genera todas las posibles combinaciones.&lt;br /&gt;&lt;br /&gt;Código en C#:&lt;br /&gt;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Funcion recursiva que genera combinaciones de números de N en r&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;/// &lt;param name="'t"&gt;Inicialmente se debe de pasar 1 y este automaticamente se va incrementando&lt;/param&gt;"&lt;br /&gt;/// &lt;param name="'N"&gt;Es el numero de elementos del Universo&lt;/param&gt;"&lt;br /&gt;/// &lt;param name="'r"&gt;Es el numero de elementos del grupo&lt;/param&gt;"&lt;br /&gt;/// &lt;param name="'x"&gt;Se utiliza para ir calculando en que numero de elemento vamos&lt;/param&gt;"&lt;br /&gt;/// &lt;param name="'Elem"&gt;Arreglo que contiene la colección de elementos de la combinación&lt;/param&gt;"&lt;br /&gt;/// &lt;param name="'strTex"&gt;Variable de texto donde se van mostrando las posibles combinaciones&lt;/param&gt;"&lt;br /&gt;void Ciclo(int t, int N, int r, int x, ref int[] Elem, ref string strTex)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;// Se repite hasta que t sea mayor que el número de formas posibles&lt;br /&gt;while (t &lt;= (N - (r - x))) { // Se generaran r ciclos recursivos if (r &gt; x)&lt;br /&gt;{&lt;br /&gt;Elem[x-1] = t;&lt;br /&gt;Ciclo((t + 1), N, r, (x + 1), ref Elem, ref strTex);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;Elem[x-1] = t;&lt;br /&gt;&lt;br /&gt;// Concatenamos la combinación&lt;br /&gt;for (int i = 0; i &lt; x; i++)&lt;br /&gt;{&lt;br /&gt;strTex += Elem[i].ToString("[#,##0]");&lt;br /&gt;}&lt;br /&gt;strTex += "\r\n";&lt;br /&gt;}&lt;br /&gt;t++;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Forma en que se manda a llamar la función.&lt;br /&gt;Código en C#:&lt;br /&gt;&lt;br /&gt;// Declaramos variables&lt;br /&gt;int N = 9; // Nueve envases&lt;br /&gt;int r = 6; // Seis espacios&lt;br /&gt;int[] Elem = new int[r]; // Vector de la Combinación&lt;br /&gt;string strTex = "";&lt;br /&gt;&lt;br /&gt;// Iniciamos llamada recursiva a la función.&lt;br /&gt;Ciclo(1, N, r, 1, ref Elem, ref strTex);&lt;br /&gt;&lt;br /&gt;// Mostrar resultado en una caja de texto&lt;br /&gt;txtCombina.Text = strTex;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5649477812846447326-6354857805688634112?l=hercoka-net.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hercoka-net.blogspot.com/feeds/6354857805688634112/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://hercoka-net.blogspot.com/2008/12/generacin-de-combinaciones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5649477812846447326/posts/default/6354857805688634112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5649477812846447326/posts/default/6354857805688634112'/><link rel='alternate' type='text/html' href='http://hercoka-net.blogspot.com/2008/12/generacin-de-combinaciones.html' title='Generación de Combinaciones'/><author><name>Héctor Ochoa</name><uri>http://www.blogger.com/profile/04531371194830716921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
