{"id":4476,"date":"2016-02-04T05:00:23","date_gmt":"2016-02-04T10:00:23","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=4476"},"modified":"2026-04-05T18:09:37","modified_gmt":"2026-04-05T23:09:37","slug":"s2eva2015ti_t4-movilidad-de-tortugas-en-region","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s2eva20\/s2eva2015ti_t4-movilidad-de-tortugas-en-region\/","title":{"rendered":"s2Eva2015TI_T4 Movilidad de tortugas en regi\u00f3n"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-2eva20\/2eva2015ti_t4-movilidad-de-tortugas-en-region\/\" data-type=\"post\" data-id=\"3038\">2Eva2015TI_T4 Movilidad de tortugas en regi\u00f3n<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n\n<p>Propuesta de soluci\u00f3n en <strong>Python<\/strong>, contin\u00faa desde el tema 3:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ICM00794-Fundamentos de Computaci\u00f3n - FCNM-ESPOL\n# 2Eva_IT2015_T3 Distribuye tortugas en regi\u00f3n\nimport numpy as np\nimport random as rnd\n\ndef distribuye(n,m,q,total):\n    isla = np.zeros(shape=(n,m),dtype = int)\n    unatortuga = 1\n    while not(unatortuga &gt; total):\n        fila = int(rnd.random()*n)+0\n        columna = int(rnd.random()*m)+0\n        if (isla&#x5B;fila,columna]&lt;q):\n            isla&#x5B;fila,columna] = isla&#x5B;fila,columna] + 1\n            unatortuga = unatortuga+1\n    return(isla)\n\n# 2Eva_IT2015_T4 Movilidad de tortugas en regi\u00f3n\n# usar funciones para operaciones intermedias\ndef cuentaceros(isla):\n    tamano = np.shape(isla)\n    n = tamano&#x5B;0]\n    m = tamano&#x5B;1]\n    cuenta = 0\n    for f in range(0,n,1):\n        for c in range(0,m,1):\n            if (isla&#x5B;f,c] ==0):\n                cuenta = cuenta +1\n    return(cuenta)\n\ndef muevetortuga(isla):\n    tamano = np.shape(isla)\n    n = tamano&#x5B;0]\n    m = tamano&#x5B;1]\n    # crear una situacion posterior,\n    # donde se mueve cada tortuga\n    posterior = np.zeros(shape=(n,m),dtype = int)\n    for f in range(0,n,1):\n        for c in range(0,m,1):\n            cuantas = isla&#x5B;f,c]\n            if (cuantas&gt;=1):\n                tortugas = 1\n                while not(tortugas&gt;cuantas):\n                    # mueve una tortuga\n                    mueve = int(rnd.random()*5)+0\n                    if (mueve ==1):\n                        # verifica limites, sino se pierde la tortuga\n                        if ((f-1)&gt;=0 and (c-1)&gt;=0):\n                            posterior&#x5B;f-1,c-1] = posterior&#x5B;f-1,c-1] +1\n                    if (mueve ==2):\n                        if ((f-1)&gt;=0 and (c+1)&lt;m):\n                            posterior&#x5B;f-1,c+1] = posterior&#x5B;f-1,c+1] +1\n                    if (mueve ==3):\n                        if ((f+1)=0):\n                            posterior&#x5B;f+1,c-1] = posterior&#x5B;f+1,c-1] +1\n                    if (mueve ==4):\n                        if ((f+1)&lt;n and (c+1)&lt;m):\n                            posterior&#x5B;f+1,c+1] = posterior&#x5B;f+1,c+1] +1\n                    tortugas = tortugas +1\n    return(posterior)\n\n\n# INGRESO\nn = int(input('filas : '))\nm = int(input('columnas : '))\nq = int(input('maximo por casilla : '))\ntotal = int(input('tortugas en cautiverio : '))\n# Tarea: validar que total no exceda capacidad de isla\n\n# PROCEDIMIENTO\ninicial = distribuye(n,m,q,total)\ninicialceros = cuentaceros(inicial)\nposterior = muevetortuga(inicial)\nperdidas = np.sum(inicial)- np.sum(posterior)\n\n# SALIDA\nprint('isla al inicio: ')\nprint(inicial)\nprint('casillas vacias en inicial: ', inicialceros)\nprint('isla despues de un periodo: ')\nprint(posterior)\nprint('tortugas perdidas: ', perdidas)\n\n<\/pre><\/div>\n\n\n<p><strong>Nota<\/strong>: considera que si la tortuga sale de la matriz, ya no se la cuenta, desaparece, muere.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>filas : 4\ncolumnas : 6\nmaximo por casilla : 5\ntortugas en cautiverio : 20\nisla al inicio:\n&#091;&#091;1 1 1 0 0 3]\n &#091;0 2 1 2 0 1]\n &#091;0 0 0 0 1 0]\n &#091;2 2 3 0 0 0]]\ncasillas vacias en inicial:  12\nisla despues de un periodo:\n&#091;&#091;0 0 2 1 1 0]\n &#091;0 0 0 0 0 0]\n &#091;2 1 0 0 1 0]\n &#091;0 0 0 1 0 0]]\ntortugas perdidas:  11<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2015TI_T4 Movilidad de tortugas en regi\u00f3n Algoritmo en Python Propuesta de soluci\u00f3n en Python, contin\u00faa desde el tema 3: Nota: considera que si la tortuga sale de la matriz, ya no se la cuenta, desaparece, muere.<\/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":[136],"tags":[58,157],"class_list":["post-4476","post","type-post","status-publish","format-standard","hentry","category-fp-s2eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4476","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=4476"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4476\/revisions"}],"predecessor-version":[{"id":23696,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4476\/revisions\/23696"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}