Cómo escribir algoritmo para asignaturas requeridas

0 voto negativo favorito

En un sistema de registro de cursos correctamente construido, los estudiantes no pueden registrarse para un curso si no han tomado el curso o requisitos previos. Sin embargo, si hay un ciclo de cursos de requisitos previos, los estudiantes no pueden registrar algunos de los cursos. Se le ha pedido que desarrolle un sistema para ayudar a un departamento de una universidad a identificar si existen cursos que el sistema de registro de cursos no permita que los estudiantes se registren. Además, debe crear un plan de estudio para 4 años. Puede suponer que hay dos semestres por año y en 4 años un estudiante tomará todos los cursos. Suponga que no hay cursos electivos. Idealmente, debe asignar los cursos de tal manera que en cada semestre un estudiante registre un número similar de horas de crédito. Como ejemplo, si hay un total de 120 horas de crédito, cada semestre idealmente un estudiante debería tomar 120/8 = 15 horas de crédito. Sin embargo, puede que no siempre sea posible, ya que un curso puede registrarse solo después de que se hayan tomado los requisitos previos. En esta fase, debe crear manualmente un archivo de entrada que consta de cursos ofrecidos en un departamento (por ejemplo, Ingeniería en Computación, Ingeniería Civil, etc.). Debe seleccionar un departamento y crear ese archivo de entrada consultando el catálogo de cursos de ese departamento. El archivo debe consistir en el nombre del curso, prerrequisito del curso y número de horas de crédito del curso. Tienes que leer este archivo desde tu programa. Luego debe verificar si hay ciclos de cursos de requisitos previos. Si hay un ciclo de salida “No es posible un plan de estudio”, de lo contrario, debe crear un plan de estudio durante 4 años.

la pregunta es ¿cómo puedo escribir un algoritmo para eso? ¿Y qué modelos matemáticos puedo usar para resolverlo?

Alguien me sugirió que construir un árbol de dependencia es simple, luego usar un algoritmo para detectar ciclos en el gráfico.

More Interesting

¿Por qué recibo un error de tiempo de ejecución en la conversión de un árbol binario a un árbol binario enhebrado?

¿Por qué conocer estructuras de datos y algoritmos básicos no es suficiente para descifrar la mayoría de las entrevistas técnicas?

¿Es posible verificar si un gráfico está conectado o no si sé el grado de cada vértice?

¿Cómo se soluciona el problema de Little Red-Cap (TAP2013C) en SPOJ?

¿Por qué necesitamos el algoritmo de derivación de porter en Python?

Como estudiante universitario, ¿debería centrarme más en aprender estructuras de datos y algoritmos o aprender tecnologías como aplicaciones, web, desarrollo de iOS, etc.?

Cómo demostrar que el camino más corto posible entre dos puntos es una línea recta

¿Qué algoritmos gráficos debe implementar un estudiante de segundo año de CS?

¿Qué algoritmo es mejor para datos no estructurados?

¿Qué es mejor para la programación competitiva, la introducción del MIT a los algoritmos o los tutoriales de TopCoder?

¿Cuáles son algunos de los mejores libros sobre Estructura de datos y Algoritmo en Java para principiantes?

¿Por qué prácticamente todos los algoritmos de ascensor son tan ineficientes y cuáles son las razones por las que aún no se han optimizado?

¿Cuáles son las ventajas de las pilas en la estructura de datos?

¿Cómo elige Chrome el color de las rayas en las miniaturas de la página "Más visitadas"? Está claramente basado en el favicon, pero no puedo decir exactamente cómo se deriva.

Cómo comenzar a aprender y explorar el campo de los Algoritmos de Big Data