Logo Passei Direto
Buscar

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Programação dinâmica 
Qual das alternativas abaixo descreve corretamente o conceito de programacao dinamica?
a) A programacao dinamica e uma tecnica que resolve problemas dividindo-os em subproblemas
independentes e resolvendo-os em paralelo.
b) A programacao dinamica resolve problemas armazenando os resultados de subproblemas para
evitar calculos repetitivos.
c) A programacao dinamica utiliza a forca bruta para resolver problemas otimizando o tempo de
execucao.
d) A programacao dinamica divide o problema em subproblemas e resolve cada um recursivamente
sem armazenar resultados.
Resposta correta: b) A programacao dinamica resolve problemas armazenando os resultados de
subproblemas para evitar calculos repetitivos.
Explicacao: A principal caracteristica da programacao dinamica e a reutilizacao de solucoes de
subproblemas, armazenando as solucoes ja calculadas em uma estrutura de dados, como uma
tabela, para evitar o recalculo de resultados.
Em qual das situacoes abaixo a programacao dinamica e particularmente util?
a) Quando o problema pode ser resolvido por forca bruta sem grandes prejuizos de desempenho.
b) Quando o problema possui multiplos subproblemas que se sobrepoem e podem ser resolvidos
de forma eficiente.
c) Quando o problema exige que todas as solucoes possiveis sejam exploradas sem otimizacao.
d) Quando o problema envolve somente operacoes aritmeticas simples.
Resposta correta: b) Quando o problema possui multiplos subproblemas que se sobrepoem e
podem ser resolvidos de forma eficiente.
Explicacao: A programacao dinamica e eficaz quando o problema pode ser dividido em
subproblemas que se sobrepoem, ou seja, que sao resolvidos repetidamente. Nesse contexto, a
solucao de um subproblema pode ser armazenada para uso posterior, evitando calculos repetidos.
Qual e a principal diferenca entre programacao dinamica e divisao e conquista?
a) A programacao dinamica resolve subproblemas de forma independente, enquanto a divisao e
conquista resolve subproblemas interdependentes.
b) Na programacao dinamica, os subproblemas se sobrepoem e suas solucoes sao armazenadas,
enquanto na divisao e conquista os subproblemas sao independentes e nao compartilham
solucoes.
c) A programacao dinamica divide os problemas em subproblemas e resolve recursivamente,
enquanto a divisao e conquista tenta resolver problemas iterativamente.
d) A programacao dinamica resolve problemas de otimizacao, enquanto a divisao e conquista e
usada para problemas de ordenacao.
Resposta correta: b) Na programacao dinamica, os subproblemas se sobrepoem e suas solucoes
sao armazenadas, enquanto na divisao e conquista os subproblemas sao independentes e nao
compartilham solucoes.
Explicacao: A principal diferenca entre essas abordagens e que na programacao dinamica, os
subproblemas geralmente se sobrepoem e suas solucoes sao armazenadas para uso posterior. Ja
na divisao e conquista, os subproblemas sao independentes, e nao ha necessidade de reuso de
solucoes.
No problema da mochila (0/1 Knapsack Problem), qual das alternativas abaixo descreve a
aplicacao de programacao dinamica?
a) A solucao e obtida testando todas as combinacoes possiveis de itens.
b) A solucao envolve armazenar as combinacoes de peso e valor para cada item, para que cada
subproblema seja resolvido apenas uma vez.
c) O problema e resolvido sem considerar a capacidade da mochila.
d) A solucao e encontrada por meio de uma simples ordenacao dos itens por valor.
Resposta correta: b) A solucao envolve armazenar as combinacoes de peso e valor para cada item,
para que cada subproblema seja resolvido apenas uma vez.
Explicacao: No problema da mochila, a programacao dinamica utiliza uma tabela para armazenar
as solucoes de subproblemas, evitando a recomputacao e permitindo que se encontre a solucao
otima de forma eficiente.
Qual das alternativas a seguir representa um exemplo classico de problema que pode ser resolvido
com programacao dinamica?
a) Algoritmo de ordenacao por bolha (Bubble Sort).
b) Algoritmo de busca binaria.
c) Problema do caminho mais curto em um grafico ponderado (como o algoritmo de Dijkstra).
d) Sequencia de Fibonacci.
Resposta correta: d) Sequencia de Fibonacci.
Explicacao: A sequencia de Fibonacci e um exemplo classico onde a programacao dinamica pode
ser aplicada. Em vez de recalcular os termos de forma recursiva a cada chamada, podemos
armazenar os resultados intermediarios para acelerar o calculo.
Em qual cenario a utilizacao de programacao dinamica nao seria adequada?
a) Quando o problema possui subproblemas independentes que podem ser resolvidos de forma
eficiente com uma abordagem recursiva.
b) Quando os subproblemas se sobrepoem, mas a solucao precisa ser encontrada sem otimizacao
de tempo.
c) Quando o problema exige uma solucao exata e nao ha subproblemas que podem ser
reutilizados.
d) Quando o tempo de execucao nao e uma preocupacao importante.
Resposta correta: b) Quando os subproblemas se sobrepoem, mas a solucao precisa ser
encontrada sem otimizacao de tempo.
Explicacao: A programacao dinamica e mais eficaz quando se busca otimizar o tempo de execucao
ao resolver problemas que envolvem subproblemas sobrepostos. Se o tempo de execucao nao for
uma preocupacao ou a otimizacao nao for necessaria, pode nao ser a melhor escolha.
Qual das opcoes abaixo descreve melhor o conceito de "memoizacao" na programacao dinamica?
a) A memoizacao refere-se ao processo de dividir um problema em partes menores e
independentes.
b) A memoizacao e a tecnica de armazenar os resultados dos subproblemas ja resolvidos para
evitar recalcular solucoes repetidas.
c) A memoizacao envolve a ordenacao dos subproblemas antes de serem resolvidos.
d) A memoizacao refere-se a aplicacao de um algoritmo iterativo para resolver um problema
recursivamente.
Resposta correta: b) A memoizacao e a tecnica de armazenar os resultados dos subproblemas ja
resolvidos para evitar recalcular solucoes repetidas.
Explicacao: Memoizacao e uma tecnica fundamental na programacao dinamica, onde os resultados
de subproblemas sao armazenados para evitar o retrabalho e, assim, melhorar a eficiencia do
algoritmo.
No problema do numero de maneiras de fazer troco (Change Making Problem), como a
programacao dinamica pode ser aplicada?
a) Calculando todas as combinacoes possiveis de moedas e somando as solucoes.
b) Armazenando os resultados parciais para evitar recomputacoes e encontrar a solucao mais
eficiente.
c) Usando uma abordagem gulosa, sempre escolhendo a maior moeda disponivel.
d) Aplicando um algoritmo de forca bruta para testar todas as opcoes possiveis.
Resposta correta: b) Armazenando os resultados parciais para evitar recomputacoes e encontrar a
solucao mais eficiente.
Explicacao: A programacao dinamica e util nesse tipo de problema porque permite armazenar as
solucoes parciais para cada valor de troco, evitando recalcular as solucoes para valores menores
multiplas vezes.
Qual das alternativas a seguir e uma caracteristica de um problema que pode ser resolvido por
programacao dinamica?
a) O problema envolve subproblemas independentes que podem ser resolvidos de forma paralela.
b) O problema pode ser resolvido apenas com recursao simples sem necessidade de otimizacao.
c) O problema possui subproblemas que se sobrepoem, e a solucao de cada subproblema pode ser
reutilizada em outras partes do problema.
d) O problema exige apenas operacoes aritmeticas simples para chegar a solucao.
Resposta correta: c) O problema possui subproblemas que se sobrepoem, e a solucao de cada
subproblema pode ser reutilizada em outras partes do problema.
Explicacao: Para que a programacao dinamica seja aplicada, e necessario que o problema tenha
subproblemas que se sobrepoem, ou seja, que aparecam mais de uma vez durante a resolucao do
problema, permitindo a reutilizacao de solucoes.
No caso do algoritmo de programacao dinamica para o problema do maior subsequencia comum
(Longest Common Subsequence -LCS), qual e a abordagem correta?
a) Usar recursao simples sem armazenar os resultados intermediarios.
b) Armazenar os resultados dos subproblemas em uma tabela para evitar recomputacao e
encontrar a solucao otima.
c) Resolver o problema de forma iterativa, sem precisar de recursao.
d) Testar todas as combinacoes possiveis de subsequencias e escolher a mais longa.
Resposta correta: b) Armazenar os resultados dos subproblemas em uma tabela para evitar
recomputacao e encontrar a solucao otima.
Explicacao: O algoritmo de LCS usa programacao dinamica para armazenar as solucoes parciais
em uma tabela 2D, que evita a recomputacao e torna o algoritmo mais eficiente.

Mais conteúdos dessa disciplina