{"id":4109,"date":"2014-10-02T16:25:03","date_gmt":"2014-10-02T21:25:03","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=4109"},"modified":"2026-04-05T18:22:57","modified_gmt":"2026-04-05T23:22:57","slug":"s3eva2007tii_t2-verificar-matriz-sudoku","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva10\/s3eva2007tii_t2-verificar-matriz-sudoku\/","title":{"rendered":"s3Eva2007TII_T2 Verificar matriz Sudoku"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva10\/3eva2007tii_t2-verificar-matriz-sudoku\/\" data-type=\"post\" data-id=\"2565\">3Eva2007TII_T2 Verificar matriz Sudoku<\/a><\/p>\n\n\n\n<p>Propuesta de soluci\u00f3n en <strong>Python<\/strong>:<\/p>\n\n\n\n<p>En el enunciado puede obtener una matriz para usar en el programa ejemplo.<\/p>\n\n\n\n<p>Simplifique el problema, por ejemplo inicie con el algoritmo para verificar los n\u00fameros sea \u00fanicos en un vector, el resultado lo convierte una funci\u00f3n <strong><em>\u00fanicos<\/em><\/strong>(vector). La funci\u00f3n \u00fanicos() la usa para cada fila, luego para cada columna y finalmente para cada recuadro de 3x3.<\/p>\n\n\n\n<p>Al finalizar, convierta la parte del programa ejemplo en una funci\u00f3n <strong><em>verificasudoku<\/em><\/strong>(matriz).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\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_IIT2007_T2 Verificar matriz Sudoku\n# Propuesta: edelros@espol.edu.ec\n# Tarea por completar: tercera regla recuadros\n\nimport numpy as np\n\n# verificar unicos en vector, intervalo &#x5B;1,9]\ndef unicos(vector):\n    m = len(vector)\n    contadores = np.zeros(9+1, dtype = int)\n\n    i = 0\n    while not(i&gt;=m):\n        numero = vector&#x5B;i]\n        contadores&#x5B;numero] = contadores&#x5B;numero] +1\n        i = i+1\n\n    # revisa que el contador sea siempre 1\n    cumple = 1\n    numero = 1\n    while not(numero&gt;9 or cumple==0):\n        if (contadores&#x5B;numero] != 1):\n            cumple = 0\n        numero = numero+1\n    return(cumple)\n\n# PROGRAMA -------------------------\n# INGRESO\nmatriz=np.array(&#x5B;&#x5B;1, 3, 5, 4, 6, 2, 9, 8, 7],\n                 &#x5B;7, 6, 2, 1, 9, 8, 5, 4, 3],\n                 &#x5B;8, 9, 4, 5, 3, 7, 6, 2, 1],\n                 &#x5B;9, 7, 8, 6, 1, 3, 2, 5, 4],\n                 &#x5B;4, 1, 6, 9, 2, 5, 3, 7, 8],\n                 &#x5B;2, 5, 3, 7, 8, 4, 1, 6, 9],\n                 &#x5B;5, 2, 7, 3, 4, 1, 8, 9, 6],\n                 &#x5B;3, 8, 9, 2, 7, 6, 4, 1, 5],\n                 &#x5B;6, 4, 1, 8, 5, 9, 7, 3, 2]])\n\n# PROCEDIMIENTO\nessudoku = 1\n\n# verifica por filas\nfila = 0\nwhile not(fila&gt;=9 or essudoku==0):\n\n    # Selecciona vector\n    vector = matriz&#x5B;fila,:]\n\n    verifica = unicos(vector)\n    if (verifica==0):\n        essudoku = 0\n    fila = fila+1\n\n# Verifica por columnas\ncolumna = 0\nwhile not(columna&gt;=9 or essudoku==0):\n\n    # Selecciona vector\n    vector = matriz&#x5B;:,columna]\n\n    verifica = unicos(vector)\n    if (verifica==0):\n        essudoku = 0\n    columna = columna+1\n\n# Verifica en cada submatriz de 3x3\nfila = 0\ncolumna = 0\nsubmatriz = matriz&#x5B;fila:fila+3,columna:columna+3]\n# convertir submatriz a vector\n# aplicar funcion unicos, para verificar essudoku\n\n# SALIDA\nprint('\u00bfes la matriz sudoku? &#x5B;0,1]: ')\nprint(essudoku)\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2007TII_T2 Verificar matriz Sudoku Propuesta de soluci\u00f3n en Python: En el enunciado puede obtener una matriz para usar en el programa ejemplo. Simplifique el problema, por ejemplo inicie con el algoritmo para verificar los n\u00fameros sea \u00fanicos en un vector, el resultado lo convierte una funci\u00f3n \u00fanicos(vector). La funci\u00f3n \u00fanicos() la usa para cada [&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-4109","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\/4109","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=4109"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4109\/revisions"}],"predecessor-version":[{"id":23726,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4109\/revisions\/23726"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}