No puedo entender una pregunta de ACM.
Esta pregunta está relacionada con la teoría musical. La idea general de la pregunta es ingresar una o más secuencias de seminotas (cada cuerda está representada por una línea y cada seminota está separada por una línea). un espacio), y luego el programa tiene que juzgar cada secuencia qué armaduras se pueden usar para notas cruzadas y luego generar (separe cada armadura con un espacio).
Primero comprenda: p>
1) La secuencia de blancas es: C C# D D # E F F# G G# A A# B C ....(La diferencia entre cada dos códigos es un semitono)
2) La Definición de escala mayor: puede comenzar con cualquier media nota (esta media nota La nota es una secuencia ordenada arbitrariamente de 8 seminotas (llamada armadura de esta cadena de notas), pero estas 8 seminotas se basan en la regla de "tono entero-tono entero-medio tono-tono entero-tono entero-tono entero-medio tono" Seleccionada Es decir, la diferencia entre la primera blanca y la segunda blanca es un tono entero (es decir, dos. semitonos), la diferencia entre el segundo tono y el tercer tono también es un tono completo, y la diferencia entre el tercer tono y el cuarto tono es un medio tono, así que por analogía...
Entonces , el programa debe definir primero todas las escalas mayores posibles basándose en lo anterior, como por ejemplo:
Do mayor (la escala mayor en la tonalidad de C) consta de las siguientes 8 seminotas:
C D E F G A B C
C# mayor: C# D# F F# G# A# C C#
D Tonalidad mayor: D E F# G A B C# D
..... .
Explicación del ejemplo dado en la pregunta:
Primera línea: C C D F E G A A F G B, eliminar repeticiones Después de las blancas, queda C D E F G A B Luego el programa lo compara con todas las notas principales. y descubre que la única armadura que puede incluir todas estas siete medias notas es C, por lo que genera "C"
La segunda línea: A B C D E F G C#, el programa compara con todas las claves principales y descubre que no La tonalidad mayor de una armadura puede incluir todas estas 8 seminotas, por lo que la salida está vacía
La tercera línea: C C D F E G A A F G, después de eliminar las seminotas repetidas, el resto Presione C D E F G A, y luego el programa lo compara con todas las tonalidades principales y descubre que las armaduras que pueden incluir estas 6 seminotas son C y F, por lo que genera "C F"
La cuarta línea: C C C C C, eliminar duplicados C queda después de media nota, y luego el programa la compara con todas las tonalidades principales y descubre que las armaduras que pueden incluir esta media nota son C, C#, D#, F, G, G# y A#, por lo que genera "C C# D# F G G# Un#"