Perl+CGI - Um script de verdade
Perl+CGI - Dicas de Programação
2769 registros
1 hoje
8 nesta semana
49 neste mês| 88,2% | | Brasil |
| 9,2% | | Portugal |
| 0,8% | | EUA |
| 0,2% | | Espanha |
| 0,1% | | Alemanha |
| Hoje: | 136 |
| Ontem: | 2001 |
| Esta semana: | 6501 |
| Semana passada: | 13257 |
| Este mês: | 36242 |
| Mês passado: | 47034 |
| Total: | 101962 |
|
Sex 13 Mai 2005 15:41 |
|
|
O Bandeiras deu um trabalhinho mais ou menos. Pode-se dizer que foi resolvido a quatro mãos pelo Ricardo e pela MsBiT. Agora só falta equacionar as soluções enviadas pelos dois e transformá-las em belíssimos algoritmos
Antes de começar a explicação, quero fazer uma observação importante que serve para qualquer tipo de enigma (ou problema): entender EXATAMENTE o enunciado. Esta é sempre a primeira coisa que devemos procurar fazer. Observe o enunciado do enigma das Bandeiras:
1. Qual é o conjunto de cores mais exclusivo? Porque?
2. Qual é a bandeira mais diferente? Porque?
Aparentemente, as duas perguntas são iguais. Mas só aparentemente... A primeira pergunta se refere apenas a um conjunto de cores (todas elas), das quais foram retirados subconjuntos (as de cada uma das bandeiras). O que é perguntado é qual destes subconjuntos tem as cores mais exclusivas. Apenas as CORES, ou seja, só precisamos nos preocupar com UMA propriedade :) A segunda pergunta pede a bandeira mais diferente (ou exclusiva), ou seja, é preciso observar em que posição se encontram as cores. Neste caso precisamos observar DUAS propriedades, as CORES e suas POSIÇÕES. ![]() As bandeiras
O conjunto de cores é composto por 5 elementos: Azul, Amarelo, Vermelho, Branco e Verde. Considerando os subconjuntos, estes elementos aparecem com uma determinada frequência, ou seja:
Bandeira Azul Amarelo Vermelho Branco Verde
========================================================
Chad 1 1 1
França 1 1 1
Guiné 1 1 1
Itália 1 1 1
Costa do Marfim 1 1 1
Mali 1 1 1
Romênia 1 1 1
========================================================
Frequência 3 3 7 4 4
Sem sombra de dúvida, o vermelho é a cor mais frequente. Mas, o que queremos saber é qual o conjunto mais exclusivo, ou seja, o que possui as cores MENOS frequentes. Daí é um pulo: é só atribuir às cores o valor da sua frequência e analisar novamente cada um dos conjuntos. Aquele que tiver a MENOR pontuação será o conjunto menos frequente (ou mais exclusivo, ou mais diferente). Observe:
Bandeira Azul Amarelo Vermelho Branco Verde TOTAL
===============================================================
Chad 3 3 7 13
França 3 7 4 14
Guiné 3 7 4 14
Itália 7 4 4 15
Costa do Marfim 7 4 4 15
Mali 3 7 4 14
Romênia 3 7 4 14
==============================================================
Taí, AS CORES MAIS EXCLUSIVAS são as do conjunto Azul, Amarelo e Vermelho. Mas isto *não* faz com que a bandeira do Chad seja a mais diferente porque as posições das cores não foram levadas em consideração.
Para associar a "exclusividade" das cores às posições que ocupam é preciso quantificar quantas vezes as cores ocorrem em cada coluna, ou seja:
Cor 1a. Coluna 2a. Coluna 3a. Coluna
====================================================
Azul 3 0 0
Amarelo 0 3 0
Vermelho 2 0 5
Branco 0 4 0
Verde 2 0 2
====================================================
Agora, cada uma das bandeiras mostra o seguinte resultado se substituirmos suas cores pela sua frequência de ocorrência:
Bandeira 1a.Coluna 2a. Coluna 3a.Coluna TOTAL
==================================================================
Chad Azul = 3 Amarelo = 3 Verm. = 5 11
França Azul = 3 Branco = 4 Verm. = 5 12
Guiné Verm. = 2 Amarelo = 3 Verde = 2 7
Itália Verde = 2 Branco = 4 Verm. = 5 11
Costa do Marfim Verm. = 2 Branco = 4 Verde = 2 8
Mali Verde = 2 Amarelo = 3 Verm. = 5 10
Romênia Azul = 3 Branco = 4 Verm. = 5 12
==================================================================
Considerando as cores e as posições das mesmas, a bandeira que acabou sendo a mais exclusiva foi a da Guiné. Não posso deixar de agradecer ao Bill Taylor que sistematizou magistralmente estes algoritmos na sua página Blind Mind. E, como sempre, abraços a todos
|
| Última atualização ( Qua, 26.03.2008 15:31 ) |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |