O teste padronizado geralmente vem com um scan-tron ou algum tipo de documento de resposta que registra sua resposta. Um computador ou humanos verificariam suas respostas e determinariam sua nota. Portanto, aqui, com um scan-tron e a chave de resposta, determine a pontuação e as perguntas perdidas, se houver. Um scan-tron é apenas um documento com várias linhas com respostas nas quais o usuário preenche (nesse caso, circulado). Exemplo:
---
1. |a| b c d
---
Como você pode ver, esta é a pergunta 1 com a opção de resposta a
selecionada, pois tem uma caixa ao redor. Para o desafio, você será dada uma varredura-tron com n
perguntas ( 1 <= n <= 10
) com apenas quatro respostas denotado como a
, b
, c
, ou d
. A chave de resposta será fornecida como uma sequência sem espaços e com todas as letras minúsculas. Exemplo de scan-tron com chave de resposta:
Scan-tron
---
1. |a| b c d
---
---
2. a |b| c d
---
---
3. a b |c| d
---
Answer Key
abb
Você pode inserir a tecla de resposta e o scan-tron como entradas separadas ou em uma ordem escolhida, desde que possam ser identificadas (ou seja, a tecla de resposta está separada do scan-tron). As pontuações serão arredondadas para o décimo mais próximo de um ponto. Exemplo de saída para o acima:
Score: 66.7
Missed #: 3
Outra resposta aceitável seria:
66.7
3
ou se várias perguntas forem perdidas
66.7
3 4 5
desde que os números das perguntas perdidas sejam separados dos espaços por e não na mesma linha da pontuação.
Regras e especificações
- O scan-tron pode ser inserido como uma sequência de linhas múltiplas ou uma pergunta por vez (como uma sequência de linhas novas é aceitável)
- Dada uma chave de digitalização e resposta, você deve gerar a pontuação em uma linha e as perguntas perdidas em outra, com os números separados por espaços. Se nenhuma pergunta for perdida, nenhum número de pergunta deve ser emitido
- As pontuações são arredondadas para o décimo mais próximo
As respostas selecionadas estão cercadas por esta caixa:
--- | | ---
- No scan-tron, cada pergunta ocupa três espaços (a parte superior e inferior da caixa ocupa duas linhas extras)
- Deve funcionar para o exemplo acima
- Suponha que sempre haverá apenas uma resposta em caixa
Critérios Vencedores
O menor código vence!
50
aceitável ou precisa ser50.0
?Respostas:
05AB1E , 43 bytes
Experimente online!
Explicação
fonte
Empilhados , 68 + 1 = 69 bytes
Experimente online! +1 para
-p
sinalizador (este script pode ser executado comostacked -pe "..."
)Toma duas entradas do topo da pilha.
Algumas características interessantes:
Isso produz todas as letras cercadas por canos.
Isso nos fornece todos os números de perguntas incorretos.
fonte
Python 2 ,
9493 bytes-1 byte graças a L3viathan
Experimente online!
fonte
100.
por1e2
Pip ,
4946444845 bytesUgh, esse arredondamento leva tantos bytes ... 44 bytes de código, +1 para
-s
sinalizador.Recebe entrada como argumentos da linha de comando (a página scan-tron precisará de aspas e escape de novas linhas se você a executar a partir de uma linha de comando real). Emite primeiro as perguntas perdidas, depois a pontuação. Experimente online!
Explicação
Farei isso em duas partes: a lista de perguntas incorretas e a pontuação.
fonte
JavaScript (ES6), 88 bytes
Eu poderia salvar 5 bytes usando vírgulas e retornando tudo uma linha:
fonte
Lote, 242 bytes
Lê a chave de resposta em STDIN primeiro e depois
n*3
questiona as linhas. Nota: A pontuação é impressa sem um zero à esquerda se for menor que1.0
. As respostas perdidas são impressas com um espaço à esquerda.fonte
CJam ,
4745 bytesExperimente online!
Explicação
O programa está dividido em três partes principais:
Após esta seção, temos uma matriz de
0
s e1
s, onde0
indica uma resposta errada e1
uma resposta correta.Após esta seção, a pilha contém apenas a lista certa / incorreta e a pontuação percentual foi emitida.
fonte
Jolf, 46 bytes
Não consigo quebrar 46 bytes. Eu tenho duas soluções desse tamanho. Experimente um aqui!
(Substitua
□
por0x7f
no próximo)Em ambos os casos, de 15 bytes para o arredondamento:
mX*~1/-lζlγlζ_1
. Eles são, na maioria das vezes, os mesmos, exceto que um usa uma correspondência de regex para obter os resultados e o outro se divide nos tubos.fonte