Una primera operación de resumen unidad de OO - expresión derivado

Una primera operación de resumen unidad OO

El primer trabajo

código de análisis de la estructura sobre la base de las métricas

  • El algoritmo básico

    El primer trabajo es una función polinómica simple de resolver la guía, no es necesario que los datos de entrada al juicio la legitimidad,

La idea básica consiste en (coeff, expo)representar tuplas coeff*x**expo, y el polinomio de cada elemento puede almacenarse en forma de tuplas, los beneficios de esto es que todas las tiendas en forma de especificación polinomio, reglas de derivación será muy sencilla , además de que no hay necesidad de considerar la legalidad de los datos de entrada o no, la simplificación relativamente simple, a fin de lograr rápidamente.

Por supuesto, las desventajas también son obvias, escalabilidad pobre, sólo el apoyo polinomio simple, la siguiente iteración tiene que reconstruir.

  • UML 类 图:

 

 

  • Análisis de acoplamiento:

 

 

análisis del código de unión específica, esta asignación para escribir cuatro clases, la clase principal ; Polycomputer , para analizar la cadena para generar la expresión de objetos Poli; Poli clase, mediante el almacenamiento de ArrayList expresión, y la gestión de los distintos tipos de datos se ponen Poli en esta clase de, tales como la adición de un nuevo elemento, derivación, simplificando etc., término clase representa un elemento.

El acoplamiento análisis mostró minimizar sustancialmente la complejidad de todo el proceso, preferiblemente un grado global de la estructura del programa;

El método smpAndPrint () y PersePoly () hizo más trabajo, lo que resulta en complejidad ciclomática (v (G)) y una complejidad del diseño de módulo (iv (G)) son grandes. Esto demuestra smpAndPrint () diseño del módulo no es lo suficientemente bueno, lo que lleva a la programación frecuente entre los módulos, el módulo también tiene más características, más sentencias de control.

Ahora que lo pienso dos maneras de lograr esto es de hecho no es suficiente, porque el poli almacenamiento de clase con la expresión de lista, lo que lleva a la simplificación de las veces tenía que crear un nuevo HashMap , la expresión después de la simplificación de HashMap dijo que esta venta, menos procesamiento de las clases existentes, pueden sólo incidentalmente impresión, no sólo consumen recursos de memoria, sino que también limita en gran medida la capacidad de ampliación, por ejemplo, no podemos operar en un solo elemento, no puede simplemente ser simplificado . Si Poli clase utilizando HashMap de almacenamiento, que puede ser bien desacoplado.

beta

Cece fuerte un error, cuando se simplifica la expresión de salida puede tener un coeficiente de "0" cuando el conector sin añadir ningún elemento 0, anotado sólo 91 puntos, tan profunda comprensión de la importancia de una fuerte medida.

Donde las cuestiones de clase y enfoques para el Poli clase smpAndPrint () , ya que este método mal diseñado, lo que resulta en la impresión cuando no hay sentencia especial 0, mal.

Prueba mutua

  • Fue truco seis veces, tanto en ataque como este punto ooo;

  • Política de Pruebas mutua

En primer lugar, el uso de un conjunto de datos de configuración manual para las pruebas, las pruebas de caja negro, diseño de código no es dueño de la observación de la estructura del programa que se está probando, pero creo que este trabajo es relativamente simple, se escribe mucho lo mismo, por lo que el énfasis en las condiciones de contorno, el modo combinado, la simplificación pruebas, tales como el coeficiente o índice de 0, hackear con éxito en cinco ocasiones, la última de otro código simplemente mirar y encontró un error no homogénea debe ser de tres;

Después de eso, inspirado en la estructura de los mensajes en el foro una máquina simple evaluación, un error, pero no a la altura.

segundo trabajo

código de análisis de la estructura sobre la base de las métricas

  • El algoritmo básico

La segunda operación aumenta la función simplemente coseno, y una combinación de reglas, y la necesidad de juzgar la legitimidad de los datos;

Reconstrucción de la semana - son la actual y anterior puesto de trabajo requiere una gran cantidad de cambios de trabajo, un troquel-tupla, los datos de entrada no se han determinado, sin embargo, he descubierto que después de cada uno se puede expresar como simplificada a*x**b*sin(x)**c*cos(x)**dforma, así que usar el quad (a,b,c,d), y ha aprendido la lección anterior, clases de expresión Expressionque utilizan HashMap<(b,c,d),a>recipientes para almacenar la expresión, es una buena fusión de artículos similares, sino que también favorece a una mayor simplificación. Para la legalidad de procesamiento de la entrada de datos, entonces se juzga por Taisho, pero analizar el elemento de cadena extraída cuando es más específico pequeño regular.

Esta asignación de tiempo de escritura aún no se considera buena debe simplificar cómo, después de la realización de las funciones básicas, por consideración para lograr un compromiso entre la precisión y el rendimiento de dificultad y decidí única base sin(x)**2+cos(x)**2=1simplificarse.

Las ideas son como sigue: lograr en Expresión clase de implementación de simplificar el método para volver a crear una hashmap<(a,b,c+d),List<c>>, que (a,b,c+d)es recién agregado clase de vectores SmpVector , (a,b,c+d)completamente igualdad de condiciones, los medios que hay esperanza para la simplificación de combinación, por lo que habrá esperanza de elementos en un recipiente, Lista de procesamiento de cada uno, de tal manera que c1 y c2 diferencia de 2 se puede combinar, de manera que es posible lograr la simplificación.

  • UML 类 图:

  • Análisis de acoplamiento:

 

 

Desde el punto de vista de medición y análisis, Homework2 aunque para lograr mucha clase, pero el diseño de la estructura es bastante claro, en general, cada clase es bastante llevar a cabo sus funciones, la expresión único inconveniente es la reescritura de toString métodos y DealString de StringParse método usted puede escribir demasiado complicado? Cada uno debe darse cuenta de toString entonces Expresión llamada. DealString también.

beta

Con la última vez que un fuerte error de medición de intensidad puntos mide hasta 90, SALA B hasta la casa de las dolorosas lecciones antes de la prueba que tenía una buena prueba para presentar la prueba de la sintaxis de Python no es lo suficientemente hábil, menos propensos a utilizar la biblioteca Exger y sympy , esto no tuvo tiempo de máquina de evaluación de construcción.

Manos medida completa, construir sus propios datos de prueba, la estrategia de configuración es a primera construcción de los datos básicos para garantizar que la función básica implementar adecuadamente; consideradas las condiciones de contorno, la legitimidad de los datos, como muchas reglas de combinación, y así algún tipo de estructura de datos compleja, especialmente para los datos legitimidad y condiciones de contorno, casi cada vez que la estructura de datos implicará casos límite, después de que el índice se calcula como el coeficiente simplificado a 0, después de la cancelación de la fusión y similares. Dicha construcción medir una gran cantidad de errores, específicamente pasó una noche, pero afortunadamente, mide y medición de la intensidad de CA, en conjunto, pero aún así un corte por sus compañeros. Puesto que sólo la optimización basada en la comparación, los puntos de rendimiento obtenidos 14.00021 / 20.

Creo que es muy importante ritmo, pero me olvidé de la pitón.

Prueba mutua

  • Por Hack: la sala de ensayo a todos mutua muy educado, acaba de salir, no envíe deliberadamente datos homogéneos. Hack o de un error, es toString al imprimir, un juez especial debe tener símbolos especiales en cada frase, pero era sólo una expresión de la primera juez especial. de hecho, un error en el ring donde ORZ la complejidad del diseño modular y alta complejidad.

  • CORTAR A TAJOS:

revisión manual, siento que este es la casa grande hermano, estilo de código son buenos, nada una tarde de pruebas manuales, amargura a la licencia.

Domingo por la noche y luego se prueba y se encontró que echaba de menos Sabre, construidos manualmente los datos extraños medido dos horas para encontrar incluso cinco fallo (más tarde encontraron al menos tres no homogénea). De hecho, el sentimiento ventajas repente construidos manualmente son evidentes, si se trata de la evaluación automática no se puede medir a cabo necesariamente, después de todo, algunos de los datos que yo soy también un paso a paso construido de acuerdo con los resultados de su retroalimentación, un poco difícil.

La tercera operación

código de análisis de la estructura sobre la base de las métricas

Esta operación agrega 表达式因子datos, una variedad de combinaciones, el apoyo a anidadas, reglas de derivación aumenta, comprobar la legitimidad de los datos requisitos son altos, siento mucha dificultad, casi me pareció ser la tarea ineficaz.

Es la reconstrucción de la semana - la última vez decidido quads uso dado cuenta de que el tercer trabajo tendrá inevitablemente a la reconstrucción, a pesar de los intentos de la arquitectura un nivel más alto de abstracción, pero no saben cómo lograr, por lo que sólo a regañadientes quad usar. La lección simplemente habló de la herencia e interfaces, de repente di cuenta de que me había hecho trastornos pensamiento puede lograr con una interfaz de resolver.

La idea del trabajo de la siguiente manera: siguió el consejo de la guía, serán estos factores básicos , y estas operaciones básicas como diferentes clases, y entonces usted puede construir una implementación árbol de expresión. Han logrado una interfaz común , el apoyo y . Aquí he utilizado el árbol binario, que es la base para el cálculo sólo el apoyo de dos operaciones.sin(x) cos(x) 幂函数因子 常数因子加法``乘法 嵌套Function求导takeDerivativetoString

La idea general de tales relativamente clara, construir un árbol binario al analizar una cadena de construir de abajo hacia arriba inicio; árboles de expresión de salida sólo tienen que llamar a una expresión toStringmétodo puede ser implementado de forma recursiva.

Creo que cuando se trata de cadenas que tener cuidado aquí, porque 表达式因子no podemos seguir utilizando el Taisho se determina para extraer una cadena. Aquí voy a reemplazar los paréntesis más externos [], []que sustituyeron a todos los contenidos E, por lo que puede utilizar expresiones regulares para la cadena de extracción, se puede determinar inicialmente la legalidad de expresión; con el fin de otras sub-expresiones pueden ser resueltos antes de que el contenido Alternativamente de nuevo, se puede determinar de forma recursiva. A fin de comprobar la legalidad de la construcción de los datos de entrada binaria y se encuentran en un paso a paso recursivo.

  • UML 类 图:

 

 

  • Análisis de acoplamiento:

 

 

El trabajo es buscado principalmente la estabilidad, pero para trabajar con eficacia, todos ellos capaces de fuerte corriente alterna. Debido a que todavía hay tiempo por lo que no pudo resistir una breve optimizado. . Simplificación principalmente para el operador, por ejemplo, * Si dos operandos son constantes a, b, es un retorno constante * B; Hay otras aproximadamente 0 o 1 o -1 juicio Laid ..... y así en esta forma de lograr sencilla, y porque es recursivo, de hecho, la simplificación de forma recursiva seguir, no sólo para reducir la carga de la recursividad, prevenir TLE, y la simplificación del efecto también es muy bueno.

Por supuesto, después de pensar un poco, si el árbol es más que un árbol de expresión que la adición y multiplicación puede tener varios operandos, las ideas anteriores para simplificar el efecto puede ser aún mejor. Es lamentable que el marco básico ha sido escrito, es difícil grandes cambios, sólo para darse por vencido.

beta

Manos medida completa cuando depuración debido más el tiempo suficiente para que la sintaxis de Python es familiar, no hay máquina de evaluación, medición de la mano es molesto. Los procedimientos complejos para tomar una muy buena elección, porque son demasiados los soportes introducir un poco más complicado que obtener una gran cantidad de soportes de salida, a simple vista es difícil juzgar bien o mal, estructura de datos manual es muy arriesgado. Afortunadamente, este algoritmo puede ser relativamente simple, muchos se entregan a la recursivo auto-completar, no aparece la versión beta insecto, el rendimiento del Nivel 17,0578 / 20.

Prueba mutua

  • Es Hack: El trabajo no es válido el truco;

  • Hack: . Puesto que no hay máquina de evaluación, sólo puede ser medido lado, una estructura de datos simple ese fin, se centrará en la legalidad de la prueba de nivel, algunos de los datos que se construye de manera que la salida debe ser una expresión legal, pero WF salida o expresión ilegal. de esta manera hackear con éxito tres veces.

Y la comparación de experiencias

  • Tenga en cuenta las excelentes cuatro jefes del código, he encontrado que los estudiantes Lin Yujing lograr mis programas de mejora, a saber, la de varios árboles. Estoy muy impresionado con su organización es la estructura del código muy claro, cada método no es más de cincuenta líneas, llamadas recursivas de diferentes maneras a la misma clase; además de su enfoque simplificado también me impresionó, él después de la simplificación es construir, construyo un borde lateral de la simplificación, no se puede decir que uno es mejor, me permite acercarse en el consumo de recursos dominante, dominante en su camino a la organización del código, así desacoplar. En resumen, por el contrario, mi organización, el diseño arquitectónico puede tener mucho que aprender.

  • Este módulo permite orientado a objetos pensar que tengo una profunda comprensión y experiencia, en general se puede decir a mis tres puestos de trabajo están constantemente tratando de utilizar el pensamiento orientado a objetos, la medición de intensidad media también es constante esta unidad aprendido mucho de conocimiento útil, sino para aprender la lección por sí sola no es suficiente, hay muchas ideas de diseño necesitan aprender a digerir. Además, este trabajo también tiene algunos remordimientos, aunque dicha tercera vez que intento utilizar el trabajo modo de fábrica, pero no parece jugar el efecto deseado, y medidas de la mano son importantes para disparar, debería tener una buena comprensión de cómo lograr el tiro .....

Pero en general es buena, reabastecimiento de combustible ~

 

Supongo que te gusta

Origin www.cnblogs.com/yzmcoding/p/12537441.html
Recomendado
Clasificación