{"id":9732,"date":"2014-11-09T15:55:36","date_gmt":"2014-11-09T20:55:36","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=9732"},"modified":"2026-09-25T19:56:08","modified_gmt":"2026-09-26T00:56:08","slug":"s3eva2010tii_t1-matriz-con-aleatorios-no-repetidos-desordena","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva10\/s3eva2010tii_t1-matriz-con-aleatorios-no-repetidos-desordena\/","title":{"rendered":"s3Eva2010TII_T1 Matriz con aleatorios no repetidos (desordena)"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva10\/3eva2010tii_t1-matriz-con-aleatorios-no-repetidos-desordena\/\" data-type=\"post\" data-id=\"2607\">3Eva2010TII_T1 Matriz con aleatorios no repetidos (desordena)<\/a><\/p>\n\n\n\n<p>N\u00fameros naturales aleatorios entre 0 y <strong>n<\/strong><sup>2<\/sup>-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<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# entero aleatorio &#x5B;0,n**2), no incluye n**2\nintervalo = n**2\nnumero = int(rnd.random()*intervalo)+0\n<\/pre><\/div>\n\n\n<p>Para llevar el control de n\u00fameros aleatorios <strong>no repetidos<\/strong> se usa una lista. El sorteo se repite si el n\u00famero se encuentra ya en la lista.<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n    usados = &#x5B;]\n\n    # numero no repetido\n    while numero in usados:\n        numero = int(rnd.random()*intervalo)+0\n<\/pre><\/div>\n\n\n<p>Validado que no es repetido se puede almacenar en la lista de usados y en la posici\u00f3n de una matriz.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n    matriz = -1*np.ones(shape=(n,n), dtype=int)\n\n    matriz&#x5B;fila,columna] = numero\n    usados.append(numero)\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"437\" height=\"335\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2014\/11\/rompecabezaDesliza01.jpg\" alt=\"rompecabezas fichas num\u00e9ricas deslizante\" class=\"wp-image-21934\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n\n<p>Integrando las partes en un algoritmo, usando contadores para fila y columna de la matriz, se obtiene:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ICM00794-Fundamentos de Computaci\u00f3n - FCNM-ESPOL\n# 3Eva_IIT2010_T1 Matriz con aleatorios no repetidos (desordena)\n# Propuesta: edelros@espol.edu.ec\n# Tarea: integrar con tema 3\n\nimport numpy as np\nimport random as rnd\n\ndef desordena(n): \n    matriz = -1*np.ones(shape=(n,n), dtype=int)\n    usados = &#x5B;]\n    \n    # entero aleatorio &#x5B;0,n**2), no incluye n**2\n    intervalo = n**2\n    \n    fila = 0\n    while not(fila&gt;=n):\n        \n        columna = 0\n        while not(columna&gt;=n):\n\n            # numero no repetido\n            numero = int(rnd.random()*intervalo)+0\n            while numero in usados:\n                numero = int(rnd.random()*intervalo)+0\n            \n            matriz&#x5B;fila,columna] = numero\n            usados.append(numero)\n            \n            columna = columna + 1\n            \n        fila = fila + 1\n    return(matriz)\n<\/pre><\/div>\n\n\n<p>resultado del algoritmo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; desordena(3)\narray(&#091;&#091;0, 7, 2],\n       &#091;6, 5, 8],\n       &#091;4, 1, 3]])\n&gt;&gt;&gt; desordena(3)\narray(&#091;&#091;7, 3, 6],\n       &#091;8, 1, 0],\n       &#091;5, 2, 4]])\n&gt;&gt;&gt; <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2010TII_T1 Matriz con aleatorios no repetidos (desordena) N\u00fameros naturales aleatorios entre 0 y n2-1 Para llevar el control de n\u00fameros aleatorios no repetidos se usa una lista. El sorteo se repite si el n\u00famero se encuentra ya en la lista. Validado que no es repetido se puede almacenar en la lista de usados y [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[138],"tags":[58,157],"class_list":["post-9732","post","type-post","status-publish","format-standard","hentry","category-fp-s3eva10","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9732","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=9732"}],"version-history":[{"count":6,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9732\/revisions"}],"predecessor-version":[{"id":26039,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9732\/revisions\/26039"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=9732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=9732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=9732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}