Escreva em Python uma função que recebe uma lista de números representando uma amostra e retorna duas listas…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar conceitos iniciais de uma linguagem de programação na implementação de algoritmos escritos em linguagem corrente e/ou matemática.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Escreva em Python uma função que recebe uma lista de números representando uma amostra e retorna duas listas: valores únicos ordenados por frequência decrescente e suas respectivas frequências. Explique o algoritmo e indique sua complexidade. Exemplo de entrada: [3,1,3,2,3,1].
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Resposta modelo (Python): def freq_table(lst): d={} for x in lst: d[x]=d.get(x,0)+1 items=sorted(d.items(), key=lambda t:(-t[1], t[0])) values=[k for k,v in items] freqs=[v for k,v in items] return values,freqs Exemplo: [3,1,3,2,3,1] -> values=[3,1,2], freqs=[3,2,1]. Complexidade: construir d é O(n); ordenar m itens é O(m log m). No pior caso m˜n, total O(n log n).
Explicação
A função utiliza um dicionário para contar a frequência de cada número na lista, o que permite uma contagem eficiente em O(n). Em seguida, os itens do dicionário são ordenados com base na frequência e no valor, o que leva a um tempo de execução de O(m log m), onde m é o número de valores únicos. Assim, a complexidade total do algoritmo é O(n log n) no pior caso, garantindo que a solução seja eficiente mesmo para listas maiores.
Raio-X da questão
função em Python
avaliacao
funções em Python · listas e dicionários
Revisar como manipular listas e dicionários em Python.
O aluno pode confundir a contagem de elementos com a ordenação, retornando listas desordenadas ou com frequências incorretas.
ciencia_tecnologia
criatividade
cotidiano
Questões parecidas com resolução
- Elabore um algoritmo (pseudocódigo ou código em Python) que, dada uma amostra de números inteiros, construa uma tabela…
- Elabore um pseudocódigo que receba uma lista de n números inteiros e construa uma tabela de frequências (pares valor…
- Escreva um pseudocódigo usando um único laço de repetição para construir a tabela de frequências absolutas e relativas…
- Descreva um algoritmo em pseudocódigo que, dada uma lista de valores numéricos de uma amostra, construa a tabela de…
- Projete um algoritmo em linguagem de alto nível que, a partir de uma lista de números inteiros obtida por amostragem…
- Projete e descreva uma função em Python que, dada uma lista de modos de deslocamento coletados em pesquisa por amostra…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
