Soy maestra y en unos días tengo que darles un examen a mis alumnos. Ahora, siempre me preocupa que mis alumnos más adorables se vean lastimados por los menos adorables cuando hacen trampa, así que quiero aleatorizar las pruebas para que nadie pueda engañar a nadie.
En este momento, tengo mis pruebas guardadas en este formato:
When was Java invented?
Why does this matter?
1941
War was beginning
None of the above
What is the increment operator in Java?
Stack Overflow>how 2 incrememnt
Google>how 2 incrememnt
increment
++
Es decir, las preguntas están separadas por una sola línea en blanco, y las respuestas están precedidas por dos espacios. Esta es la salida que necesito:
What is the increment operator in Java?
++
increment
Google>how 2 incrememnt
Stack Overflow>how 2 incrememnt
When was Java invented?
War was beginning
1941
Why does this matter?
None of the above
Es decir, cada respuesta a una pregunta en un orden aleatorio, y el orden de las preguntas también aleatorizado. Tenga en cuenta que si la opción de respuesta es "Ninguna de las anteriores", debe permanecer en la parte inferior. Cada pregunta siempre tiene exactamente cuatro respuestas, y "Ninguna de las anteriores" solo aparece como la última opción de respuesta, y nunca aparece como una subcadena de una opción de respuesta que no es "Ninguna de las anteriores". Desafortunadamente, no puedo reescribir todas mis pruebas, por lo que tendrá que tomarlas en ese formato. Además, mis alumnos deben poder leerlo, por lo que realmente no puedo tomar la salida de otra manera (excepto como se describe a continuación).
No necesito que sea perfectamente al azar. Mientras esté cerca.
Las lagunas estándar están prohibidas.
Prima
Ahora, mis alumnos están acostumbrados a ese formato simple, pero si puedes hacer que se vea así ...
1. What is the increment operator in Java?
A. ++
B. increment
C. Google>how 2 incrememnt
D. Stack Overflow>how 2 incrememnt
2. When was Java invented?
A. War was beginning
B. 1941
C. Why does this matter?
D. None of the above
Tomaré un 25% de descuento en tu puntaje final. Sin embargo, recibirás información de la misma manera.
Es decir, si numera las preguntas y etiqueta las respuestas. Tenga en cuenta que las preguntas deben comenzar en 1, y las respuestas son de A a D.
NB: Los ejemplos son diferentes de los de las respuestas porque los cambié después del hecho. Los ejemplos específicos no son el punto de todos modos; las respuestas tuvieron que funcionar con cualquier pregunta arbitraria.
Respuestas:
Pyth -
48424139 bytesWill empacó la cuerda.
Pruébelo en línea aquí .
fuente
JavaScript ES6, 170 bytes
Es una función anónima, asígnele un nombre. Nota: esto utiliza el método de clasificación aleatoria, que no es completamente aleatorio , pero es suficiente, siempre que no seas un profesor de probabilidad.
Con la bonificación, 180.75 bytes
¡Pruébalo!
Mostrar fragmento de código
fuente
_=>.5-Math.random()
en la variabler
, a la que hago referencia más adelante en la quinta línea. Realmente estoy realizando dos tipos aleatorios: uno en los elementos y el otro en las preguntas. Si quieres aprender más sobre ES6, te sugiero leer aquí .CJam,
54535552 bytesSe guardó 1 byte del uso de una versión posterior (disponible en TIO). Gané 2 bytes porque olvidé aleatorizar el orden de las preguntas. Guardado 2 bytes de otro error corregido en TIO.
Pruébalo en línea!
fuente
mr
operador (aleatorizar) para aleatorizar el orden de las preguntas antes de que la lógica de respuesta tenga lugar.