Embaralhar opções de quiz com semente
Embaralhe as alternativas de uma questão com um número semente e receba sempre a mesma ordem: Paris, Londres, Berlim e Madri com a semente 7 viram Berlim, Londres, Madri e Paris, e você fica sabendo que a certa passou para o fim. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Alternativas
- Paris, London, Berlin, Madrid
- Índice correto
- 0
- Semente
- 7
- Alternativas
- Berlin, London, Madrid, Paris
- Índice correto
- 3
- Índice correto original
- 0
- Número de alternativas
- 4
Questionários de múltipla escolha precisam de uma ordem justa das opções sem perder a chave. Se cada aluno sempre vê a resposta correta em primeiro lugar, as notas inflacionam; se o embaralhamento usa aleatoriedade não reprodutível, não é possível reavaliar, fazer testes A/B nem depurar um item específico. Este embaralhamento de múltipla escolha com semente recebe as opções de resposta, o índice da correta e uma semente inteira, e devolve uma lista reordenada de forma determinística junto com o novo índice correto. O mesmo triplo de entradas produz sempre a mesma ordem, de modo que formulários de prova, exportações de LMS e pacotes móveis offline permanecem estáveis bit a bit.
Por que o embaralhamento com semente importa em quizzes e avaliações
Quizzes de sala de aula e de produto costumam redigir as opções em ordem canônica —resposta correta primeiro, ou na sequência do currículo— e depois precisam de uma ordem de apresentação que não vaze a chave. Um embaralhamento puramente aleatório no momento do render quebra a reprodutibilidade: dois corretores que abrem a mesma tentativa veem posições diferentes, capturas de tela deixam de bater com os logs e impressões em papel não podem ser regeneradas após reinício do servidor.
Semear o embaralhamento com um inteiro estável —hash do id do aluno, número da variante do formulário, contador de tentativas ou uma semente fixa de turma— oferece variedade controlada e um mapeamento fixo que você pode recomputar depois. Use uma semente por variante de formulário ou por aluno se quiser ordens independentes; reutilize a mesma semente quando precisar de cadernos idênticos em dispositivos diferentes.
Onde um embaralhamento de opções com semente se paga
Sistemas de gestão de aprendizagem chamam um embaralhamento de respostas de quiz com semente ao exportar formulários para que cada seção receba uma ordem de opções diferente sem reescrever o banco de itens. Ferramentas de integridade de provas rotacionam a ordem dos distratores por assento e mantêm trilha de auditoria: dada a semente e a chave original, qualquer auditor pode recomputar a ordem apresentada. Validação falha não consome saldo.
Mantenha listas de opções curtas, fixe goldens para as sementes críticas e obtenha apresentação de múltipla escolha reproduzível para plugins de LMS, geradores de lição de casa e edge workers sem montar um serviço de embaralhamento próprio.
Casos de uso
Variantes de formulário no LMS
Exporte o mesmo banco de itens para vários formulários de prova semeando cada id de formulário para que a ordem das opções difira e o índice correto continue rastreado para autoavaliação.
Ordem de apresentação por aluno
Transforme o id do aluno em semente e embaralhe as opções para que cada aprendiz veja uma ordem diferente sem alterar a chave subjacente da pergunta.
Perguntas frequentes
Quantas opções posso enviar?
Entre 2 e 50 inclusive. Menos de duas não é um conjunto de múltipla escolha; mais de cinquenta é rejeitado para manter o contrato limitado.
Por que embaralhar as alternativas com semente e não ao acaso?
Porque uma ordem com semente pode ser refeita depois. Dois corretores que abrem a mesma tentativa veem as alternativas nas mesmas posições, os cadernos impressos podem ser gerados de novo e qualquer questão é revisada sem adivinhar o que o aluno viu.
Como dou uma ordem diferente para cada aluno?
Use uma semente diferente para cada aluno ou para cada versão da prova, e cada um recebe a própria ordem. Repita a mesma semente quando precisar de cadernos idênticos no papel e em todos os aparelhos.
Como sei onde a resposta certa foi parar?
O resultado traz a lista embaralhada junto com a nova posição da resposta certa, então a correção automática continua funcionando. No exemplo, Paris começa em primeiro e termina na última das quatro posições.
Ela acrescenta as letras A, B, C e D?
Não. Ela só muda a ordem dos textos das alternativas e acompanha qual é a certa. Se a sua prova mostra letras ao lado das alternativas, acrescente-as no seu próprio layout depois de embaralhar.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"choices":["Paris","London","Berlin","Madrid"],"correct_index":0,"seed":42}'const res = await fetch("https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"choices": [
"Paris",
"London",
"Berlin",
"Madrid"
],
"correct_index": 0,
"seed": 42
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"choices": [
"Paris",
"London",
"Berlin",
"Madrid"
],
"correct_index": 0,
"seed": 42
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"choices":["Paris","London","Berlin","Madrid"],"correct_index":0,"seed":42}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"choices":["Paris","London","Berlin","Madrid"],"correct_index":0,"seed":42}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"choices": [
"Paris",
"London",
"Berlin",
"Madrid"
],
"correct_index": 0,
"seed": 42
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.multiple_choice_shuffle_seeded",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Índices corretos fora do intervalo falham com invalid_input em vez de apontar em silêncio para a opção errada.
Por que o embaralhamento com semente importa em quizzes e avaliações
Este endpoint implementa Fisher–Yates acionado por um gerador mulberry32 inicializado com a sua semente, de modo que a permutação fica totalmente determinada pelo comprimento das opções, pela ordem do conteúdo, pela semente e pelo índice correto original. Você não precisa rederivar a chave por correspondência de texto depois: a resposta inclui o novo correct_index junto com as opções embaralhadas, que é o contrato de que autoavaliadores e UIs do player precisam. Quando o índice original está fora dos limites do array, a tarefa falha com invalid_input indicando o intervalo, porque um índice de chave errado é pior do que não embaralhar. Listas vazias ou com uma única opção também são rejeitadas para que a API seja honesta sobre o que é um item de múltipla escolha.
Contrato de entrada, formato da resposta e comportamento de erro
Elementos de opção numéricos ou booleanos são convertidos em string; objetos e nulls são rejeitados. Combine a resposta com rótulos A–D se a interface precisar de letras; esta capacidade só reordena strings e rastreia a chave. Mantenha as sementes no intervalo de trinta e dois bits com sinal que lhe interessa; o PRNG usa a semente como estado de trinta e dois bits sem sinal enquanto a resposta ainda ecoa o inteiro que você forneceu. Envie por POST um corpo JSON com três campos obrigatórios. choices é um array de pelo menos duas e no máximo cinquenta strings (os aliases options e answers são aceitos). correct_index é um inteiro com base zero que indica qual entrada é correta nessa ordem de autoria (alias answer_index). seed é um inteiro finito que inicializa o PRNG (alias shuffle_seed). Em caso de sucesso o corpo devolve choices como o array embaralhado, correct_index como a nova posição do mesmo texto de resposta, original_correct_index ecoando o índice de entrada, seed ecoando o inteiro que você enviou e choice_count igual ao comprimento do array. Exemplo: choices Paris, London, Berlin, Madrid com correct_index zero e seed quarenta e dois produzem sempre a mesma ordem e o mesmo índice novo para Paris.
Onde um embaralhamento de opções com semente se paga
Pacotes móveis offline pré-computam permutações no momento da publicação e embutem seed mais correct_index para que os dispositivos nunca precisem de uma API aleatória ao vivo. Como a implementação é parse pura de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída.
Casos de integração
Pacotes de quiz offline
Pré-compute embaralhamentos com semente na publicação e envie choices mais correct_index para que apps móveis corrijam offline com plena auditabilidade.
Perguntas técnicas
Como embaralho respostas de múltipla escolha com uma semente?
Envie choices (array de strings), correct_index (base zero) e seed (inteiro). A API devolve as opções embaralhadas e o novo correct_index da mesma resposta.
E se correct_index estiver fora do intervalo?
A tarefa falha com invalid_input. O índice deve satisfazer 0 ≤ correct_index < choices.length; chaves ruins nunca são remapeadas em silêncio.
O embaralhamento é determinístico?
Sim. As mesmas choices, correct_index e seed produzem sempre a mesma ordem e o mesmo índice novo. Não se usa Math.random nem relógio.
Quanto custa o embaralhamento de opções com semente?
A ferramenta no navegador é gratuita. Pedidos API usam saldo pré-pago do KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é faturada.