{"id":5153,"date":"2018-02-15T15:03:48","date_gmt":"2018-02-15T20:03:48","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=5153"},"modified":"2025-12-11T09:55:10","modified_gmt":"2025-12-11T14:55:10","slug":"2eva2017tii_t1-citas-san-valentin","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-evalua\/fp-2e20\/2eva2017tii_t1-citas-san-valentin\/","title":{"rendered":"2Eva2017TII_T1 Citas San Valent\u00edn"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">2da Evaluaci\u00f3n II T\u00e9rmino 2017-2018. Febrero 14, 2018 \/CCPG001<\/h2>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"164\" height=\"254\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2018\/02\/citasSanValentin01.png\" alt=\"citas San Valent\u00edn dibujo\" class=\"wp-image-16944\" \/><\/figure>\n\n\n\n<p><strong>Tema 1<\/strong>. (35 puntos) Para un servicios de citas \"<em>san valent\u00edn<\/em>\" , se pretende presentar parejas para el d\u00eda del \"amor y la amistad\". Los datos de las personas se almacenan en una estructura de datos tipo diccionario:&nbsp;<strong>dicPersonas<\/strong>.<\/p>\n\n\n\n<p>Para conocer la <strong>compatibilidad<\/strong> entre dos personas, se utilizan sus <strong>caracter\u00edsticas<\/strong> y el \u00edndice de <strong>Tanimoto<\/strong>&nbsp; que es un valor entre [0, 1] determinado como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Tanimoto(P_1,P_2) = \\frac{|caracteristicasP_1 \\cap caracteristicasP_2|}{|caracteristicasP_1 \\cup caracteristicasP_2|}<\/span>\n\n\n\n<p>El <strong><em>emparejamiento<\/em><\/strong> resulta <em>verdadero<\/em> cuando: el valor del \u00edndice de Tanimoto es superior o igual al nivel de <strong>aceptaci\u00f3n<\/strong> y la pareja no han tenido <strong>citas<\/strong> previas (sin importar su tipo: exitosa o fallida).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dicPersonas = {\n    'p1021': {'nombre': 'Carlos S.',\n              'caracteristicas': {'alegre',\n                                  'fumador',\n                                  'hacker',\n                                  'deportista'},\n              'citas': {'fallidas': &#091;'P1902',\n                                     'P2893',\n                                     'P2310'],\n                        'exitosas': &#091;'P4025',\n                                     'P1001']}\n              },\n    'p1001': {'nombre': 'Andrea V.',\n              'caracteristicas': {'farrero',\n                                  'programador',\n                                  'fabuloso',\n                                  'deportista'},\n              'citas': {'fallidas': &#091;'P1802'],\n                        'exitosas': &#091;'P1021',\n                                     'P1002']}\n              }\n    }\n<\/code><\/pre>\n\n\n\n<p>a) Realice una funci\u00f3n <em><strong>hayEmparejamiento<\/strong><\/em>(<strong>codigoP1<\/strong>, <strong>codigoP2<\/strong>, <strong>dicpersonas<\/strong>, <strong>aceptacion<\/strong>) para encontrar los valores del \u00edndice de Tanimoto y <em>emparejamiento<\/em>.<\/p>\n\n\n\n<p>La funci\u00f3n recibe el c\u00f3digo de dos personas, el diccionario de personas (dicpersonas) y el nivel de <strong>aceptaci\u00f3n <\/strong>m\u00ednimo [0,1]&nbsp; para entregar los resultados en una tupla.<\/p>\n\n\n\n<p>b) Desarrolle la funci\u00f3n <em><strong>imprimirResultados<\/strong><\/em>(<strong>codigoPersona<\/strong>, <strong>dicPersonas<\/strong>, <strong>aceptacionMinimo<\/strong>, <strong>aceptacionMaximo<\/strong>) que genera un un <strong>archivo<\/strong> <em>codigoPersona.txt<\/em>, con el reporte de compatibilidad de la <strong>codigoPersona<\/strong> con las de g\u00e9nero opuesto en el diccionario.<\/p>\n\n\n\n<p>Cada l\u00ednea del archivo tiene el formato siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>codigo$Nombre$Caracteristica1,caracteristica2, ... $indiceTanimoto$textoCompatibilidad\\n<\/code><\/pre>\n\n\n\n<p>Donde <em>textoCompatibilidad<\/em> es '<em>aceptar<\/em>' si el \u00edndice de Tanimoto est\u00e1 entre los niveles de aceptaci\u00f3n m\u00ednimo y m\u00e1ximo, sino tiene la palabra '<em>rechazar<\/em>'.<\/p>\n\n\n\n<p>c) Elabore la&nbsp; funci\u00f3n <em><strong>compatibles<\/strong><\/em>(<strong>codigoPersona<\/strong>, <strong>dicPersonas<\/strong>, <strong>aceptacion<\/strong>) que a partir de un <strong>codigoPersona<\/strong> y considerando el nivel de <strong>aceptaci\u00f3n<\/strong>, genera un reporte de <em>emparejamiento<\/em> en la forma del diccionario \"<strong>respuesta<\/strong>\" .<\/p>\n\n\n\n<p>El diccionario \"<strong>respuesta<\/strong>\" contiene el <em>nombre<\/em>, <em>carater\u00edsticas<\/em>, \u00edndice de <em>Tanamoto<\/em> y cantidad de <em>citas<\/em> <em>fallidas<\/em>.<br>El par\u00e1metro de <strong>aceptaci\u00f3n<\/strong> tiene valor por defecto de 0.43,<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ejemplo:\n<strong>respuesta<\/strong> = {\n    'p1001': {'nombre': 'Andrea V.',\n              'caracteristicas': {'deportista',\n                                  'programador',\n                                  'fabuloso',\n                                  'farrero'},\n              'indice': 0.14,\n              'fallidas': 1\n              }\n    }\n<\/code><\/pre>\n\n\n\n<p><em><strong>R\u00fabrica<\/strong><\/em>: literal a (10 puntos), literal b (13 puntos), literal c (12 puntos)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>2da Evaluaci\u00f3n II T\u00e9rmino 2017-2018. Febrero 14, 2018 \/CCPG001 Tema 1. (35 puntos) Para un servicios de citas \"san valent\u00edn\" , se pretende presentar parejas para el d\u00eda del \"amor y la amistad\". Los datos de las personas se almacenan en una estructura de datos tipo diccionario:&nbsp;dicPersonas. Para conocer la compatibilidad entre dos personas, se [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejercicios","format":"standard","meta":{"footnotes":""},"categories":[96],"tags":[152],"class_list":["post-5153","post","type-post","status-publish","format-standard","hentry","category-fp-2e20","tag-diccionarios"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5153","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=5153"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5153\/revisions"}],"predecessor-version":[{"id":16945,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5153\/revisions\/16945"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}