[Cascavel-pm] algoritmo (ou deveria dizer "EP"?)
Luís Fernando
lemon em grad.icmc.usp.br
Quarta Junho 23 10:29:08 CDT 2004
Valeu, Alex. Vou dar uma olhada.
Luis Campos: acho que o problema original é mais complicado do que o
que eu falei :P
mas vamos lá
estou fazendo um programa que pega "entradas" (samples) de 2s de som
a cada 10s
e vai salvando em arquivos separados:
sample20040623122330.raw (23/06/2004 às 12:23:30)
sample20040623122340.raw (23/06/2004 às 12:23:40)
(.raw é como se fosse um .wav, mas sem headers)
o tamanho de cada arquivo é o mesmo (porque não há nenhum tipo de
compressão... 2s são sempre o mesmo tamanho de arquivo).
O problema é que não quero que esses arquivos somem mais de 200 MBs
(lembrando que o tamanho de cada é fixo, basta saber quantos arquivos
cabem).
Se isso acontecer, quero que comece a ficar "um sample sim outro não"
de forma que hmmm... os intervalos entre todos samples seja pequeno.
Quero dessa forma pois é melhor ter uma pequena idéia de como estava o som às
entre às 12:10h e 12:20h (supondo que tenha sobrado só um sample) do
que não saber nada sobre esse horário e saber "tudo" sobre o "final do
sample".
Fui mais claro?
/*
+---------------------------------+
| Luís Fernando Estrozi |
+---------------------------------+
| Ciência da Computação - USP |
| |
| mailto:lemon em grad.icmc.usp.br |
| ICQ#: 25541891 |
| |
| http://grad.icmc.usp.br/~lemon/ |
+---------------------------------+
There are 10 types of people in the world: Those who understand binary, and those who don't
*/ EOF
|---> Original Message <---> 23/6/2004, 11:04 <---|
Luís Fernando wrote:
> Digamos que a diferença entre o que eu desejo e o que o que você citou
> é exatamente a "aleatoriedade".
>
> Para simplificar:
> Se cabe 10 elementos e eu mando inserir 10 (1..10), é para ficar:
> 1 2 3 4 5 6 7 8 9 10
>
> Se cabe 10 elementos e eu mando inserir 20 (1..20):
> 1 3 5 7 9 11 13 15 17 19
>
> Se cabe 10 elementos e eu mando inserir 40 (1..40):
> 1 5 9 13 17 21 25 29 33 37
>
> Entendeu?
>
Hum. Na verdade, você não está sendo claro o suficiente para alguém
entender.
Seu algorítmo calcula um slice de árvore binária, não-balanceada,
destrutivamente, como forma de classificar (ou priorizar) os elementos e
condensar o espaço utilizado para a amostra de uma maneira racional.
Eu acredito que seus algorítmos não poderão ter O(1), já que toda
inserção não-balanceada em árvore binária é maior que isso (D. Knuth,
"The Art of Computer Programming", v1, se eu me lembro bem).
Você poderia assumir o custo de construção, e olhar seus dados como
uma árvore binária não-balanceada, pagando o custo de alocação de
memória necessário para a construção da estrutura toda. Depois que a
coleta de informações terminar, você poderia balancear a árvore e
finalmente escolher o "slice" que mais se adequa ao espaço disponível.
IMHO, esta solução produzirá resultados mais balanceados, e a
inferência para a população será aproximadamente normal, com erro
quadrático...
Claro, se isso não violar nenhuma regra do Exercício Programa que
você está tentando resolver... ;-)
Ah! Alex Falcão, acho que isso é a "utilidade prática" que você está
procurando para o programa... :-)
Que tal você postar o problema inteiro para a gente dar uma espiada?
Pode ser que apareça alguma idéia interessante para você implementar
esta coisa mais rapidamente... :-) Sinceramente, eu recomendo que você
vá atrás dos livros do Mestre Knuth, você não vai se arrepender...
Putamplexos.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Cascavel-pm Moderator,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em mail.pm.org
http://cascavel.pm.org/mailman/listinfo/cascavel-pm
Mais detalhes sobre a lista de discussão Cascavel-pm