• Anúncio Global
    Respostas
    Exibições
    Última mensagem

[Sequencial] Distribuição

[Sequencial] Distribuição

Mensagempor scifie » Sex Jun 01, 2012 15:30

Olá pessoal,

alguém poderia me indicar o que estudar para resolver um problema - particularmente chamo de distribuição - que manualmente é de fácil resolução mas não sei como fazê-lo matematicamente.

Eis o problema:

Tendo X bolinha, distribuir as bolinhas em N caixas de forma sequencial, tal que os valores presentes nas caixas fiquem uniformemente e sequencialmente distribuídos.

Um exemplo p/ descrever melhor o enunciado confuso:

Quantidade de bolinhas: 7 Quantidade de caixas: 4
Assim sendo, a caixas terão as seguintes qtde de bolinhas: [2][2][2][1]


Outro exemplo:

Quantidade de bolinhas: 13 Quantidade de caixas: 3
Assim sendo, a caixas terão as seguintes qtde de bolinhas: [5][4][4]


A idéia básica é ir colocando as bolinhas uma por uma nas caixas, qndo chegar na última caixa, volta p/ primeira e continua o processo até que as bolinhas acabem.


Alguém poderia me ajudar?
scifie
Novo Usuário
Novo Usuário
 
Mensagens: 2
Registrado em: Sex Jun 01, 2012 15:22
Formação Escolar: GRADUAÇÃO
Área/Curso: Ciência da Computação
Andamento: formado

Re: [Sequencial] Distribuição

Mensagempor LuizAquino » Sex Jun 01, 2012 19:08

scifie escreveu:Olá pessoal,

alguém poderia me indicar o que estudar para resolver um problema - particularmente chamo de distribuição - que manualmente é de fácil resolução mas não sei como fazê-lo matematicamente.

Eis o problema:

Tendo X bolinha, distribuir as bolinhas em N caixas de forma sequencial, tal que os valores presentes nas caixas fiquem uniformemente e sequencialmente distribuídos.

Um exemplo p/ descrever melhor o enunciado confuso:

Quantidade de bolinhas: 7 Quantidade de caixas: 4
Assim sendo, a caixas terão as seguintes qtde de bolinhas: [2][2][2][1]


Outro exemplo:

Quantidade de bolinhas: 13 Quantidade de caixas: 3
Assim sendo, a caixas terão as seguintes qtde de bolinhas: [5][4][4]


A idéia básica é ir colocando as bolinhas uma por uma nas caixas, qndo chegar na última caixa, volta p/ primeira e continua o processo até que as bolinhas acabem.

Alguém poderia me ajudar?


Basta aplicar o princípio de divisão.

Exemplo 1) Quantidade de bolinhas: 7. Quantidade de caixas: 4.

Dividindo 7 por 4 obtemos quociente 1 e resto 3. Ou seja, 7 = 4*1 + 3. Isso significa que primeiro vamos colocar 1 bolinha em cada uma das 4 caixas, mas sobrarão 3 bolinhas. Cada bolinha que sobrou colocaremos em uma das 3 primeiras caixas. Ficamos então com: [2][2][2][1].

Exemplo 2) Quantidade de bolinhas: 13. Quantidade de caixas: 3.

Dividindo 13 por 3 obtemos quociente 4 e resto 1. Ou seja, 13 = 3*4 + 1. Isso significa que primeiro vamos colocar 4 bolinhas em cada uma das 3 caixas, mas sobrará 1. A bolinha que sobrou colocaremos na primeira caixa. Ficamos então com: [5][4][4].
professoraquino.com.br | youtube.com/LCMAquino | @lcmaquino

"Sem esforço, não há ganho."
Dito popular.
Avatar do usuário
LuizAquino
Colaborador Moderador - Professor
Colaborador Moderador - Professor
 
Mensagens: 2654
Registrado em: Sex Jan 21, 2011 09:11
Localização: Teófilo Otoni - MG
Formação Escolar: PÓS-GRADUAÇÃO
Área/Curso: Mestrado - Modelagem Computacional
Andamento: formado

Re: [Sequencial] Distribuição

Mensagempor scifie » Seg Jun 04, 2012 19:47

Valeu :y:

Com isso é possível criar um algoritmo que distribua as bolinhas em apenas O(n) - sendo n a qtde de caixas. Claro que a aplicação para o meu caso não tem nada a ver com bolinhas, hehehe. A questão é determinar quantos espaços deverão ser acrescentados ao espaços já existentes em uma linha de texto de forma que a linha seja apresentada de forma justificada.

Sei que não é um fórum de programação, mas eis aqui o algoritmo utilizando para o problema das bolinhas:

Código: Selecionar todos
#include "stdafx.h"
#include <process.h>

int main(int argc, char* argv[])
{
    int bolinhas, caixas;

    printf("Informe a qtde de bolinhas e caixas!\n");
    int n = scanf("%d %d", &bolinhas, &caixas);
    if (n != 2)
        return 0;

    int qtdePorCaixa = bolinhas / caixas;
    int qtdeRestante = bolinhas - (caixas * qtdePorCaixa);
   
    for (int c = 0; c < caixas; c++)
        printf("Caixa %d contém %d bolinhas\n", c + 1, qtdePorCaixa + (c < qtdeRestante ? 1 : 0));

    system("pause");
    return 0;
}
scifie
Novo Usuário
Novo Usuário
 
Mensagens: 2
Registrado em: Sex Jun 01, 2012 15:22
Formação Escolar: GRADUAÇÃO
Área/Curso: Ciência da Computação
Andamento: formado


Voltar para Sequências

 



  • Tópicos relacionados
    Respostas
    Exibições
    Última mensagem

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes

 



Assunto: Taxa de variação
Autor: felipe_ad - Ter Jun 29, 2010 19:44

Como resolvo uma questao desse tipo:

Uma usina de britagem produz pó de pedra, que ao ser depositado no solo, forma uma pilha cônica onde a altura é aproximadamente igual a 4/3 do raio da base.
(a) Determinar a razão de variação do volume em relação ao raio da base.
(b) Se o raio da base varia a uma taxa de 20 cm/s, qual a razão de variação do volume quando o raio mede 2 m?

A letra (a) consegui resolver e cheguei no resultado correto de \frac{4\pi{r}^{2}}{3}
Porem, nao consegui chegar a um resultado correto na letra (b). A resposta certa é 1,066\pi

Alguem me ajuda? Agradeço desde já.


Assunto: Taxa de variação
Autor: Elcioschin - Qua Jun 30, 2010 20:47

V = (1/3)*pi*r²*h ----> h = 4r/3

V = (1/3)*pi*r²*(4r/3) ----> V = (4*pi/9)*r³

Derivando:

dV/dr = (4*pi/9)*(3r²) -----> dV/dr = 4pi*r²/3

Para dr = 20 cm/s = 0,2 m/s e R = 2 m ----> dV/0,2 = (4*pi*2²)/3 ----> dV = (3,2/3)*pi ----> dV ~= 1,066*pi m³/s


Assunto: Taxa de variação
Autor: Guill - Ter Fev 21, 2012 21:17

Temos que o volume é dado por:

V = \frac{4\pi}{3}r^2


Temos, portanto, o volume em função do raio. Podemos diferenciar implicitamente ambos os lados da equação em função do tempo, para encontrar as derivadas em função do tempo:

\frac{dV}{dt} = \frac{8\pi.r}{3}.\frac{dr}{dt}


Sabendo que a taxa de variação do raio é 0,2 m/s e que queremos ataxa de variação do volume quando o raio for 2 m:

\frac{dV}{dt} = \frac{8\pi.2}{3}.\frac{2}{10}

\frac{dV}{dt} = \frac{16\pi}{15}