Fora de tópico

16 views
Skip to first unread message

Everton Zanella Alvarenga

unread,
Mar 28, 2014, 8:30:19 PM3/28/14
to Marco Túlio Pires, José Casadei, programadedados2014_01
Vendo o Marco tirando dúvidas empolgado a pouco minutos do aniversário dele impulsionou esse e-mail.

Feliz aniversário*, Marco Túlio! Está sendo uma honra trabalhar com você!

Abração!

*OK, em breve pessoalmente no horário certo. :P

Tom


Em 28 de março de 2014 20:58, Marco Túlio Pires <mtrp...@gmail.com> escreveu:
Na verdade, se você executar o loop externo só uma vez fica assim:

- atribuição do valor de x (1 steps)
- executar o loop interno (3 steps)

Ou seja, pra executar o loop externo apenas uma vez, seria (3) + 1 steps.

Só que você não executa ele só uma vez no pior cenário. Você executa ele vezes. Então são n vezes o loop externo e n vezes o loop interno. Por isso:

n * (3*n + 1)

que é:

3n^2 + n


2014-03-28 20:56 GMT-03:00 Marco Túlio Pires <mtrp...@gmail.com>:

Imagine que o loop externo será executado só uma vez. Como ficaria?

- atribuição do valor de x (1 steps)
- executar o loop interno (3n steps)

Ou seja, pra executar o loop externo apenas uma vez, seria (3n + 1) steps.

Só que você não executa ele só uma vez no pior cenário. Você executa ele n vezes. Por isso:

n * (3n + 1)

que é:

3n^2 + n


2014-03-28 20:47 GMT-03:00 José Casadei <jrca...@gmail.com>:

A confusão que estou fazendo é que, no meu entendimento, esse UMA VEZ já faz parte do loop externo, ou seja, seria a mesma coisa.

Para mi, logo:
(+1) seria redundante porque já há Atribuição do valor para x (1) quando rodamos o loop externo.

Mas ok, vou adotar como regra...

Abs

Em sexta-feira, 28 de março de 2014 18h46min56s UTC-3, Marco Túlio Pires escreveu:
Zé,

Loop interno:

- Atribuição de valor para y (1)
- Multiplicação x * y (1)
- acrescentar valor à lista (1)

Logo, loop interno = 1 + 1 + 1 = 3 steps. Se a lista for grande, quer dizer que teremos esses 3 steps executados N vezes. Ou seja: 3*n.

Agora, loop externo:

- Atribuição do valor para x (1)
- Executar todo o loop interno (3*n)

Ou seja, pra executar UMA VEZ o loop externo (o que inclui o loop interno), temos 3*n + 1.

E se essa bagaça toda é executada N vezes, temos:

(3*n + 1) * n

Que é a mesma coisa que escrever:

3*n**2 + n

Ajudou?


2014-03-28 18:05 GMT-03:00 José Casadei <jrca...@gmail.com>:
Alguém pode ajudar?

Dúvida no terceiro exercício da aula 9. O exercício dá um código e pede para calcular o número de passos para rodar o código (na melhor situação, uma lista vazia. Na pior situação, uma lista longa).

Abaixo, colei o código. Depois, colei a resposta e a explicação, dadas pelo MIT. As anotações em vermelho ao lado do código com o símbolo # foram feitas por mim, para tentar resolver. As anotações em vermelho em negrito, na explicação do MIT, mostram minha dúvida.

Minha resposta seria: 3*n^2 + 2
A resposta do MIT é: 3*n^2 + n + 2


def program1(L):

    multiples = []                                                    # 1 step

    for x in L:                                                          # 1 step x n times

        for y in L:                                                      # 3 steps x n times

            multiples.append(x*y)

    return multiples                                                  # 1 step

 

In this case we go through the loop for x in L ntimes. Every time through this loop, we execute an assignment of a value to x, and then the inner loop for y in LThe assignment takes 1 step on each iteration; how many steps does the inner loop take on each iteration?

The inner loop has three operations (assignment of a value to y, x*y, and list appending). So the inner loop executes 3*n times on each iteration of the outer loop. Thus the nested loop structure is executed n * (3*n + 1) = 3*n**2 + n times! (Aqui, eu não entendo porque o MIT acrescenta +1 aos três passos existentes no loop interno, o que resultará em n*1 (ou somente n) na resposta final)

Adding in two steps (for the first assignment statement, and the return statement) we see that in the worst case, this program executes 3*n**2 + n + 2 steps.

--
Você recebeu essa mensagem porque está inscrito no grupo quot;Aprendendo a Programar com o MIT e a Escola de Dados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para programadedados2014_01+unsub...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para programaded...@googlegroups.com.



--
Marco Túlio Pires :: journogeek :: @mtrpires

--
Você recebeu essa mensagem porque está inscrito no grupo quot;Aprendendo a Programar com o MIT e a Escola de Dados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para programadedados20...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para programaded...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/programadedados2014_01.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/programadedados2014_01/d215ee2a-266e-4d2e-b498-b13101463b42%40googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
Marco Túlio Pires :: journogeek :: @mtrpires



--
Marco Túlio Pires :: journogeek :: @mtrpires

--
Você recebeu essa mensagem porque está inscrito no grupo quot;Aprendendo a Programar com o MIT e a Escola de Dados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para programadedados20...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para programaded...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/programadedados2014_01.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/programadedados2014_01/CAK9u%3Dw4nUJCMvBxeNZzqRQDra1UfFpkwgM6jZRxH9Qq8eQnaog%40mail.gmail.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
Everton Zanella Alvarenga (also Tom)
OKF Brasil - Rede pelo Conhecimento Livre
http://br.okfn.org

Marco Túlio Pires

unread,
Mar 28, 2014, 9:24:44 PM3/28/14
to Everton Zanella Alvarenga, José Casadei, programadedados2014_01
Obrigado, Tom! 

É um prazer ajudar nossa e outras comunidades, sempre!

Abração!

Nahema Nascimento Falleiros

unread,
Mar 28, 2014, 9:28:43 PM3/28/14
to Marco Túlio Pires, Everton Zanella Alvarenga, José Casadei, programadedados2014_01

Marco! Parabéns, tudo de bom e melhor!!! Vc merece :-)
Abração!

Débora Setton Fernandes

unread,
Mar 29, 2014, 9:04:07 AM3/29/14
to Nahema Nascimento Falleiros, Marco Túlio Pires, Everton Zanella Alvarenga, José Casadei, programadedados2014_01
Eeeeeee, feliz aniversário, Marco!! -- um pouquinho atrasado :)


Marco Túlio Pires

unread,
Mar 29, 2014, 9:21:42 AM3/29/14
to Débora Setton Fernandes, Everton Zanella Alvarenga, José Casadei, programadedados2014_01, Nahema Nascimento Falleiros

Não tá atrasada! É hoje, oficialmente!

Obrigado pelos votos, Nahema e Débora!

Beijão!

Débora Setton Fernandes

unread,
Mar 29, 2014, 1:25:43 PM3/29/14
to Marco Túlio Pires, Everton Zanella Alvarenga, José Casadei, programadedados2014_01, Nahema Nascimento Falleiros
Ahh, que bom -- na hora certa! :) Muitas felicidades!

Beijos
Reply all
Reply to author
Forward
0 new messages