sábado, 30 de maio de 2009

Top Blog

Hoje eu tive uma surpresa ao abrir minha caixa de e-mails. Vi que o MultiSign havia sido indicado ao Top Blog.

Então eu pensei, se os meu leitores não comentam quase nenhum post, alguns poucos entram em contato por messenger ou e-mail. Eu agradeço os que interagem, mas vocês sabem qual a realidade do MultiSign.

Eu fiquei até pensando se não seria uma boa inscrever o MultiSign, mas resolvi avisar aos leitores e ver a reação.

Se a resposta for positiva, eu faço a inscrição.


Se não tiver resposta, enfim é assim mesmo, não irei deixar de atualizar o blog.

sábado, 16 de maio de 2009

Desafio 01

Eu estava pensando umas coisas esses dias e acabei por me lembrar da época de ensino médio, em que eu participava das olimpíadas de física e matemática.

Haviam tantos problemas interessantes. Eu sei que a maioria das pessoas não valoriza os problemas clássicos da matemática, por exemplo, mas estudá-los e tentar resolver os problemas da base do conhecimento abre a mente para aprender cada vez mais, e, além do benefício pessoal, também é possível que outras pessoas usem suas idéias para resolver outros problemas.

Eu mesmo já usei conceitos de teoria dos números, algo que é da base da matemática, para resolver problemas em processamento de sinais e imagens.

Uma vez meu primeiro professor de cálculo disse: "o único conhecimento que você não usa é aquele que você não possui", e isso é verdade.

Eu vou então propor o problema que eu me lembrei enquanto almoçava na 4ª feira desta semana:

Você tem 1001 bolinhas e uma balança de pratos (que serve para comparar dois pesos e determinar o mais leve).
Uma destas bolinhas tem uma massa diferente das outras 1000 bolinhas.

Como determinar se a massa desta bolinha, que é diferente das outras, é maior ou menor que a massa das outras bolinhas usando a balança, no máximo, duas vezes?

---------------------------

Se os leitores se mostrarem interessados por esta minha iniciativa, eu pensei em recompensar as soluções. Talvez transferências para contas corrente sejam interessantes.

Quem tiver uma solução, favor compartilhá-la conosco fazendo um comentário neste post.

quarta-feira, 6 de maio de 2009

Tutorial Scilab - 7 [Operações elemento a elemento]

[English version here.]

Estão vendo como é difícil atualizar o MultiSign e escrever a dissertação? Mas assim que possível iremos regularizar a situação.

Vamos abordar as operações elemento a elemento usando o Scilab.

Este post será basicamente de exemplos.

Vamos supor que temos duas matrizes de mesmo tamanho (X e Y) e queremos multiplicar (Z1) e dividir (Z2) os elementos correspondentes:

X = [x11 x12 x13;
x21 x22 x23;
x31 x32 x33].

Y = [y11 y12 y13;
y21 y22 y23;
y31 y32 y33].

Z1 = [x11*y11 x12*y12 x13*y13;
x21*y21 x22*y22 x23*y23;
x31*y31 x32*y32 x33*y33].

Z2 = [x11/y11 x12/y12 x13/y13;
x21/y21 x22/y22 x23/y23;
x31/y31 x32/y32 x33/y33].

Não existe um operador matemático matricial para tal operação, mas o Scilab tem um recurso para fazer isso. Observem a seguir.

-->X = zeros(3,3);

-->X(:) = [1:9]'
X =

1. 4. 7.
2. 5. 8.
3. 6. 9.

-->Y = ones(3,3) + X'
Y =

2. 3. 4.
5. 6. 7.
8. 9. 10.

-->Z1 = X.*Y
Z1 =

2. 12. 28.
10. 30. 56.
24. 54. 90.

-->Z1 = X./Y
Z1 =

0.5 1.3333333 1.75
0.4 0.8333333 1.1428571
0.375 0.6666667 0.9

As operações de soma e subtração matriciais operam elemento a elemento.


Operações lógicas

Agora vamos fazer operações lógicas com matrizes.

Os operadores:

  • & - AND;
  • | - OR;
  • ~ - NOT.
E um código de exemplo:

-->X = rand(3,3) > 0.2
X =

F T T
T F T
T T T

-->Y = rand(3,3,'normal') > 0.5
Y =

T T F
T F T
F F F

-->Z1 = X & Y
Z1 =

F T F
T F T
F F F

-->Z2 = X | Y
Z2 =

T T T
T F T
T T T

-->Z3 = ~X
Z3 =

T F F
F T F
F F F

-->Z4 = (~X) | Y
Z4 =

T T F
T T T
F F F

Com isso, fechamos a parte de operações matriciais básicas.