problema con mi codigo
Publicado por luis b (1 intervención) el 28/06/2021 00:24:29
Tengo un problema con este codigo es un ejercicio en python y quisiera saber si me pueden ayudar el enunciado es el siguiente.
Uno de los profesores de programación de la Universidad está comenzando a perder su memoria. Hace algún tiempo, cuando comenzó a trabajar como docente, no únicamente conocía perfectamente todos los nombres y apellidos de sus estudiantes, sino que además contaba con una habilidad increíble para detectar copia en los exámenes.
Debido a estas circunstancias, el profesor ha decidido solicitar ayuda para construir un programa en Python que le permita comprobar si la perdida de su memoria fotográfica podría tener como consecuencia una disminución en la cantidad de copias que se detectan durante los exámenes.
Entrada La entrada estará formada por dos líneas:
La primera línea aparecerán dos números N: indican el número de exámenes a calificar y K : el número de exámenes que el profesor es capaz de recordar (1≤N≤100,1≤K≤100).
La segunda línea contiene N números (entre 1 y 10) separados por espacios que representan las respuestas de cada uno de los exámenes.
Dos exámenes se consideran copiados si están representados por el mismo número.
Salida El programa imprimirá dos números separados por un espacio.
El primero representará el número total de exámenes con similitudes.
El segundo representará la cantidad de copias detectadas por el profesor considerando que al calificar un examen solo es capaz de recordar los K exámenes anteriores.
Entrada 5 1
1 2 3 1 2
5 2
1 2 3 1 2
5 3
1 2 3 1 2
5 1
1 1 1 1 1
Salida 2 0
2 0
2 2
4 4
las salidas de el numero de copias detectadas no me da y no se porque alguien me puede dar una mano se lo agradeceria
numex=input()
respuestas=input()
def copia(numex =[], respuestas=[]):
try:
numex=numex.split()
numex=[int(s)for s in numex]
respuestas=respuestas.split()
respuestas=[int(s)for s in respuestas]
copy=[]
detected=0
numcopy=0
for i in range(0,numex[0]):
if respuestas[i]not in copy:
copy.append(respuestas[i])
else:
numcopy+=1
for j in range (1,numex[1]+1):
if i-j >=0:
if respuestas[i]== respuestas[i-j]:
detected+=1
else:
break
finally:
print(str(numcopy), str(detected),end=" ")
copia(numex, respuestas)
Uno de los profesores de programación de la Universidad está comenzando a perder su memoria. Hace algún tiempo, cuando comenzó a trabajar como docente, no únicamente conocía perfectamente todos los nombres y apellidos de sus estudiantes, sino que además contaba con una habilidad increíble para detectar copia en los exámenes.
Debido a estas circunstancias, el profesor ha decidido solicitar ayuda para construir un programa en Python que le permita comprobar si la perdida de su memoria fotográfica podría tener como consecuencia una disminución en la cantidad de copias que se detectan durante los exámenes.
Entrada La entrada estará formada por dos líneas:
La primera línea aparecerán dos números N: indican el número de exámenes a calificar y K : el número de exámenes que el profesor es capaz de recordar (1≤N≤100,1≤K≤100).
La segunda línea contiene N números (entre 1 y 10) separados por espacios que representan las respuestas de cada uno de los exámenes.
Dos exámenes se consideran copiados si están representados por el mismo número.
Salida El programa imprimirá dos números separados por un espacio.
El primero representará el número total de exámenes con similitudes.
El segundo representará la cantidad de copias detectadas por el profesor considerando que al calificar un examen solo es capaz de recordar los K exámenes anteriores.
Entrada 5 1
1 2 3 1 2
5 2
1 2 3 1 2
5 3
1 2 3 1 2
5 1
1 1 1 1 1
Salida 2 0
2 0
2 2
4 4
las salidas de el numero de copias detectadas no me da y no se porque alguien me puede dar una mano se lo agradeceria
numex=input()
respuestas=input()
def copia(numex =[], respuestas=[]):
try:
numex=numex.split()
numex=[int(s)for s in numex]
respuestas=respuestas.split()
respuestas=[int(s)for s in respuestas]
copy=[]
detected=0
numcopy=0
for i in range(0,numex[0]):
if respuestas[i]not in copy:
copy.append(respuestas[i])
else:
numcopy+=1
for j in range (1,numex[1]+1):
if i-j >=0:
if respuestas[i]== respuestas[i-j]:
detected+=1
else:
break
finally:
print(str(numcopy), str(detected),end=" ")
copia(numex, respuestas)
Valora esta pregunta


0