Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
prog2:maqpel [2024/03/18 16:59] – menotti | prog2:maqpel [2024/03/18 17:10] (atual) – menotti | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Máquinas de Pelúcias ====== | ||
+ | |||
+ | Você já esteve em algum '' | ||
+ | |||
+ | Para além das clássicas “'' | ||
+ | |||
+ | | {{ : | ||
+ | | **Figura 1**: Máquina de Pelúcia | ||
+ | |||
+ | |||
+ | |||
+ | Na avaliação #0, vamos simular um dia em uma loja com uma ou mais dessas máquinas. A simulação consiste no seguinte: | ||
+ | |||
+ | |||
+ | * Uma ou mais máquinas são carregadas com pelúcias no início do dia em uma determinada loja (a quantidade de máquinas é definida por uma variável chamada " | ||
+ | |||
+ | * Durante um dia, múltiplas tentativas de obtenção das pelúcias ocorrerão - essas tentativas são feitas em rodadas, e cada rodada representa uma pessoa usando uma máquina (o número de rodadas durante um dia é definido em uma variável chamada “**rounds**”); | ||
+ | |||
+ | * Uma máquina é representada por uma estrutura de dados que contém um identificador e uma probabilidade da máquina permitir que o jogador ganhe a pelúcia; | ||
+ | * O identificador é um número inteiro único, iniciado em 1 e com passo 1 (“**id**”); | ||
+ | * A probabilidade é um número inteiro que varia entre 0 e 100 (note que, na verdade, uma probabilidade é um número real entre 0 e 1, mas adotamos números inteiros entre 0 e 100 para facilitar a geração pseudo aleatória), | ||
+ | |||
+ | * O conjunto de máquinas disponíveis na loja deve ser implementado por meio de uma '' | ||
+ | | ||
+ | * A cada rodada, uma máquina aleatória que contenha uma pelúcia é selecionada (representada por uma variável chamada “**machine_place**”), | ||
+ | | ||
+ | * A variável “**machine_place**” indica o número de passos a serem dados na lista de máquinas com pelúcias disponíveis. Essa variável representa o processo decisório do jogador sobre em qual máquina jogar. O jogador sempre começa a inspeção pela primeira máquina com pelúcia (a com o menor identificador) e as analisa linearmente até tomar uma decisão (podendo analisar a mesma máquina mais de uma vez, se necessário); | ||
+ | * Exemplo 1 | ||
+ | * Total de máquinas: 4 | ||
+ | * Máquinas com pelúcias disp.: 1 → 2 → 3 → 4 | ||
+ | * machine_place: | ||
+ | * Máquina selecionada: | ||
+ | |||
+ | * Exemplo 2 | ||
+ | * Total de máquinas: 4 | ||
+ | * Máquinas com pelúcias disp.: 1 → 4 | ||
+ | * machine_place: | ||
+ | * Máquina selecionada: | ||
+ | |||
+ | * Exemplo 3 | ||
+ | * Total de máquinas: 4 | ||
+ | * Máquinas com pelúcias disp.: 2→3 | ||
+ | * machine_place: | ||
+ | * Máquina selecionada: | ||
+ | |||
+ | |||
+ | * O jogador ganha a pelúcia se o valor armazenado na variável “**machine_attempt**” for menor ou igual ao valor de probabilidade da máquina escolhida (“**probability**”); | ||
+ | * Se o jogador ''' | ||
+ | * Se o jogador ''' | ||
+ | |||
+ | * Se, em uma determinada rodada, todas as máquinas ficarem sem pelúcias, a próxima rodada não deve ser executada e o programa encerrado. | ||
+ | |||
+ | |||
+ | |||
+ | === INSTRUÇÕES GERAIS === | ||
+ | |||
+ | |||
+ | Você deve implementar a sua solução do problema a partir do arquivo **main.c** fornecido como parte do trabalho: | ||
+ | |||
+ | * As funções que devem ser implementadas e utilizadas são: **create_list**, | ||
+ | |||
+ | * Você não deve modificar o protótipo das funções citadas; | ||
+ | | ||
+ | * Você não deve modificar o nome das estruturas e variáveis já implementadas no arquivo **main.c**; | ||
+ | |||
+ | * Você pode, se julgar necessário, | ||
+ | |||
+ | Não deixe nenhuma exibição diferente daquelas já programadas nas funções “**print_attempt**” e “**print_available_machines**” no arquivo de entrega: | ||
+ | |||
+ | * As funções de exibição devem ser executadas uma, e apenas uma, vez por rodada; | ||
+ | * A função “**print_attempt**” deve ser sempre executada antes da função “**print_available_machines**”. | ||
+ | |||
+ | * A função “**print_available_machines**” já está devidamente incluída no código; | ||
+ | * A função “**print_attempt**” deve ser alocada no código por você. | ||
+ | |||
+ | O programa deve ser usado da seguinte forma: | ||
+ | < | ||
+ | |||
+ | * Exemplo 1 (10 máquinas, 10 rodadas e semente de aleatorização 303030): | ||
+ | < | ||
+ | |||
+ | |||
+ | * Exemplo 2 (4 máquinas, 100 rodadas e semente de aleatorização 1000): | ||
+ | < | ||
+ | |||
+ | |||
+ | === EXEMPLO === | ||
+ | |||
+ | Para a seguinte configuração de execução ./main 10 10 303030 (10 máquinas, 10 rodadas e semente de aleatorização 303030), o resultado (saída) esperado é: | ||
+ | |||
+ | < | ||
+ | ============================ ROUND 1 ============================ | ||
+ | O URSO DA MAQUINA 8 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 5 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 5 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 5: 5 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 5 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 2 ============================ | ||
+ | O URSO DA MAQUINA 3 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 5 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 7 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 5: 5 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 5 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 3 ============================ | ||
+ | O URSO DA MAQUINA 3 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 5 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 5: 5 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 5 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 4 ============================ | ||
+ | O URSO DA MAQUINA 10 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 5 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 5: 5 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 7 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 5 ============================ | ||
+ | O URSO DA MAQUINA 5 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 5 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 5: 7 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 7 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 6 ============================ | ||
+ | O URSO DA MAQUINA 10 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 5 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 5: 7 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 9 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 7 ============================ | ||
+ | O URSO DA MAQUINA 1 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 7 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 5: 7 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 9 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 8 ============================ | ||
+ | O URSO DA MAQUINA 5 [FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 7 | ||
+ | PROBABILIDADE DA MAQUINA 2: 5 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 9 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 9 ============================ | ||
+ | O URSO DA MAQUINA 2 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 7 | ||
+ | PROBABILIDADE DA MAQUINA 2: 7 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 9 | ||
+ | ================================================================== | ||
+ | |||
+ | ============================ ROUND 10 ============================ | ||
+ | O URSO DA MAQUINA 1 [NAO FOI] OBTIDO! | ||
+ | PROBABILIDADE DA MAQUINA 1: 9 | ||
+ | PROBABILIDADE DA MAQUINA 2: 7 | ||
+ | PROBABILIDADE DA MAQUINA 3: 9 | ||
+ | PROBABILIDADE DA MAQUINA 4: 5 | ||
+ | PROBABILIDADE DA MAQUINA 6: 5 | ||
+ | PROBABILIDADE DA MAQUINA 7: 5 | ||
+ | PROBABILIDADE DA MAQUINA 8: 7 | ||
+ | PROBABILIDADE DA MAQUINA 9: 5 | ||
+ | PROBABILIDADE DA MAQUINA 10: 9 | ||
+ | ================================================================== | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | === IMPORTANTE === | ||
+ | |||
+ | A ENTREGA DO TRABALHO DEVE CONTEMPLAR OS REQUISITOS ELENCADOS NO PLANO DA DISCIPLINA. O NÃO CUMPRIMENTO DAS INSTRUÇÕES DE ENTREGA ESTABELECIDAS RESULTARÁ EM DESCONTO DE NOTA. | ||
+ | |||
+ | '' | ||