Sou professora e em alguns dias tenho que fazer uma prova para meus alunos. Agora, eu sempre estou preocupado com meus alunos mais adoráveis serem feridos pelos menos adoráveis quando trapaceiam, então eu quero aleatoriamente os testes para que ninguém possa enganar ninguém.
No momento, tenho meus testes salvos neste 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
++
Ou seja, as perguntas são separadas por uma única linha em branco e as respostas são precedidas por dois espaços. Esta é a saída que eu preciso:
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
Ou seja, cada resposta de uma pergunta em uma ordem aleatória e a ordem das perguntas também aleatoriamente. Lembre-se de que, se a opção de resposta for "Nenhuma das opções acima", ela deverá permanecer na parte inferior. Todas as perguntas sempre têm exatamente quatro respostas e "Nenhuma das opções acima" aparece apenas como a última opção de resposta - e nunca aparece como uma subcadeia de uma opção de resposta que não é "Nenhuma das opções acima". Infelizmente, não consigo reescrever todos os meus testes; portanto, você precisará realizá-los nesse formato. Além disso, meus alunos precisam ser capazes de lê-lo, para que eu não possa entender a saída de nenhuma outra maneira (exceto como descrito abaixo).
Não preciso que seja perfeitamente aleatório. Contanto que esteja perto.
As brechas padrão são proibidas.
Bônus
Agora, meus alunos estão acostumados a esse formato simples, mas se você puder fazer isso parecer assim ...
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
Vou tirar 25% da sua pontuação final. Você receberá informações da mesma maneira.
Ou seja, se você numerar as perguntas e rotular as respostas. Lembre-se de que as perguntas devem começar em 1 e as respostas são de A a D.
NB: Os exemplos são diferentes dos das respostas, porque eu os mudei após o fato. Os exemplos específicos não são o ponto de qualquer maneira; as respostas tinham que funcionar com qualquer pergunta arbitrária.
Respostas:
Pitão -
48424139 bytesWill corda embalada.
Experimente online aqui .
fonte
JavaScript ES6, 170 bytes
É uma função anônima, nomeie-a. Nota: isso usa o método de classificação aleatória, que não é inteiramente aleatório , mas é suficiente, desde que você não seja um professor de probabilidade.
Com o bônus, 180,75 bytes
Teste!
Mostrar snippet de código
fonte
_=>.5-Math.random()
na variávelr
, à qual me refiro posteriormente na quinta linha. Na verdade, estou realizando dois tipos aleatórios: um nos itens e outro nas perguntas. Se você quiser saber mais sobre o ES6, sugiro ler aqui .CJam,
54535552 bytesEconomizou 1 byte ao usar uma versão posterior (disponível no TIO). Ganhei 2 bytes porque esqueci de aleatoriamente a ordem das perguntas. Salva 2 bytes de outro bug corrigido no TIO.
Experimente online!
fonte
mr
operador (randomize) para randomizar a ordem das perguntas antes que a lógica da resposta ocorra.