[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[obm-l] triângulos



Pessoal, ontem mandei uma dúvida sobre contar o total
de triângulos de todos os tamanhos de uma figura como
a que enviei abaixo novamente. Pensei muito sobre esse
problema e cheguei a uma fórmula não muito amigável,
mas até que não é ruim. Já dá até pra escrever um
algoritmo pra rodar no computador se quiser.

Primeiro, eu chamei de x o número de lados de
triângulos que temos na base. Por exemplo, se tivermos
um triângulo só x = 1.
/_\

Se tivermos uma figura com quatro triângulos de menor
tamanho, temos:
  /_\
/_\ /_\

x = 2

Na figura que mandei, temos x = 4.

Com isso, já que você tem triângulos de diferentes
tamanhos, você deve contar separadamente os triângulos
que têm como lado 1 traço, 2 traços, 3 traços...E
depois tem que contar os triângulos que estão de
cabeça pra baixo com esses mesmos tamanhos.

Se você fizer isso em função dos traços da base não
fica muito ruim. Todas as linhas vou escrever a soma
de várias parcelas de x menos alguma coisa. Quando
você for calcular para algum x, você vai fazer as
subtrações até encontrar o valor zero, aí você para.
Por exemplo, na primeira linha temos:
x + (x - 1) + (x - 2) + (x - 3) + ...

Se você tiver x = 2, você irá somar até x + (x - 1),
porque o próximo dará zero e aí você deve parar.

Bom, no final você encontra isso:
triângulos de lado 1:
cabeça pra cima = x + (x - 1) + (x - 2) + (x - 3) +
...
cabeça pra baixo = (x - 1) + (x - 2) + (x - 3) + ...
total = x + 2.[(x - 1) + (x - 2) + (x - 3) + ...]
É como se o triângulo maior de todos fosse dividido em
várias linhas, aí você vai contando de cada linha.

triângulos de lado 2:
cabeça pra cima = (x - 1) + (x - 2) + (x - 3) + (x -
4) + ...
cabeça pra baixo = (x - 3) + (x - 4) + (x - 5) + ...
total = (x - 1) + (x - 2) + 2.[(x - 3) + (x - 4) +
...]

Por que aqui começamos a ter de cabeça pra baixo só
com (x - 3)? Porque para termos um triângulo de cabeça
pra baixo, o triângulo maior tem que ter o dobro de
traços na base do que o tamanho do triângulo. Como
esse tem lado 2, precisamos ter x = 4, que se fizermos
(x - 3) dará 1. Enquanto x for menor que 4 esse número
será negativo ou zero e aí não vamos contar.

triângulos de lado 3:
cabeça pra cima = (x - 2) + (x - 3) + (x - 4) + (x -
5) + ...
cabeça pra baixo = (x - 5) + (x - 6) + (x - 7) + ...
total = (x - 2) + (x - 3) + (x - 4) + 2.[(x - 5) +
...]

E assim teremos sempre esse padrão. Os triângulos de
cabeça pra cima começam sempre com (x - a), onde "a" é
o número anterior ao tamanho do triângulo. E os
triângulos de cabeça pra baixo começam sempre com x -
(2a - 1). Depois os outros termos você vai tirando
sempre 1.

No final das contas você pode somar tudo isso. Soma os
triângulo de cabeça pra cima com os de cabeça pra
baixo de todos os tamanhos. O problema é que não pode
desenvolver muita coisa, porque não pode misturar x -
3 com x - 4, porque se você tiver x = 4, você não terá
o termo x - 4. Mas somando apenas x - 1 com x - 1 e x
- 2 com x  -2, você terá:
total = x + 3.(x - 1) + 4.(x - 2) + 6.(x - 3) + 7.(x -
4) + 9.(x - 5) + 10.(x - 6) + 12.(x - 7) + 13.(x - 8)
+ ...

No final você tem então todos os fatores x, x - 1, x -
2, x - 3, ... e os coeficientes de cada um têm uma
ordem até boazinha:
1, (pula o 2), 3, 4, (pula o 5), 6, 7, (pula o 8), 9,
10, (pula o 11), 12, 13, (pula o 14), ...

E você vai usar a fórmula até o termo em que quando
fizer a diferença de x com alguma coisa dê zero. Ou
você pode até fazer a seguinte regra: considere que
desse valor total você vai pegar apenas os x primeiros
termos.

Por exemplo, vamos pegar o triângulo da figura que tem
4 traços na base, ou seja x = 4. Então vamos pegar até
o quarto termo dessa fórmula e fazer x = 4:
total = x + 3.(x - 1) + 4.(x - 2) + 6.(x - 3)
total = 4 + 3.(4 - 1) + 4.(4 - 2) + 6.(4 - 3)
total = 4 + 3.3 + 4.2 + 6.1
total = 4 + 9 + 8 + 6
total = 27

E aí você pode fazer pra qualquer x. Aquele menor que
tinha x = 2, só pegamos os 2 primeiros termos:
total = x + 3.(x - 1)
total = 2 + 3.(2 - 1)
total = 2 + 3.1
total = 2 + 3
total = 5

De qualquer jeito você não precisa ficar contando um
por um e correr o risco de se perder mais facilmente.

Mas o meu problema agora é o seguinte. Suspeito que
ainda dê para simplificar a fórmula, considerando duas
fórmulas, uma para quando x é par e outra para quando
x é ímpar. Talvez simplifique, mas aí você tem duas
fórmulas, não sei. Ainda não consegui.

Será que alguém consegue melhorar daqui pra frente. O
pior acho que já passou.

Um abraço,

Rafael.

=====
Rafael Werneck Cinoto
       ICQ# 107011599
     rwcinoto@yahoo.com
   rafael.caixa@gov.com.br
   matduvidas@yahoo.com.br
http://www.rwcinoto.hpg.com.br/

__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com

contatriang.gif

GIF image