Je suis professeur et dans quelques jours je dois faire passer un test à mes élèves. Maintenant, je suis toujours inquiet que mes plus beaux élèves soient blessés par les moins beaux quand ils trichent, donc je veux randomiser les tests afin que personne ne puisse tromper personne.
En ce moment, j'ai mes tests enregistrés dans ce format:
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
++
Autrement dit, les questions sont séparées par une seule ligne vierge et les réponses sont toutes précédées de deux espaces. Voici la sortie dont j'ai besoin:
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
Autrement dit, chaque réponse à une question dans un ordre aléatoire, et l'ordre des questions est également aléatoire. Gardez à l'esprit que si la réponse est "Aucune des réponses ci-dessus", elle doit rester en bas. Chaque question a toujours exactement quatre réponses, et «Aucune des réponses ci-dessus» n'apparaît que comme le dernier choix de réponse - et n'apparaît jamais comme une sous-chaîne d'un choix de réponse qui n'est pas «Aucune des réponses ci-dessus». Malheureusement, je ne peux pas réécrire tous mes tests, vous devrez donc les prendre dans ce format. De plus, mes élèves doivent pouvoir le lire, donc je ne peux pas vraiment prendre la sortie autrement (sauf comme décrit ci-dessous).
Je n'ai pas besoin que ce soit parfaitement aléatoire. Tant qu'il est proche.
Les failles standard sont interdites.
Prime
Maintenant, mes élèves sont habitués à ce format simple, mais si vous pouvez le faire ressembler à ceci ...
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
Je prendrai 25% de votre score final. Vous obtiendrez la même manière, cependant.
Autrement dit, si vous numérotez les questions et étiquetez les réponses. N'oubliez pas que les questions doivent commencer à 1 et que les réponses vont de A à D.
NB: Les exemples sont différents de ceux des réponses car je les ai modifiés après coup. Les exemples spécifiques ne sont de toute façon pas pertinents; les réponses devaient fonctionner avec toute question arbitraire.
Réponses:
Pyth -
48424139 octetsSera emballé la chaîne.
Essayez-le en ligne ici .
la source
JavaScript ES6, 170 octets
Est une fonction anonyme, nommez-la. Remarque: cela utilise la méthode de tri aléatoire, qui n'est pas entièrement aléatoire , mais suffisante, à condition que vous ne soyez pas un enseignant de probabilité.
Avec le bonus, 180,75 octets
Testez-le!
Afficher l'extrait de code
la source
_=>.5-Math.random()
dans la variabler
, à laquelle je fais référence plus loin sur la cinquième ligne. J'effectue en fait deux sortes aléatoires: l'une sur les éléments et l'autre sur les questions. Si vous voulez en savoir plus sur ES6, je vous suggère de lire ici .CJam,
54535552 octetsEnregistrement d'un octet lors de l'utilisation d'une version ultérieure (disponible sur TIO). J'ai gagné 2 octets car j'ai oublié de randomiser l'ordre des questions. Enregistré 2 octets d'un autre bug corrigé sur TIO.
Essayez-le en ligne!
la source
mr
opérateur (randomiser) pour randomiser l'ordre des questions avant que la logique de réponse n'ait lieu.