Estudios Para Ensaio Em Campinas

Ulster County Community College - E aí, Gurus! Esse aqui é o laptop de 2009 onde o canal nasceu, e esse é um de 2016 que eu comprei quando comecei a estudar ciência da computação. Em menos de uma década, computadores ficaram absurdamente mais finos, mais leves e, principalmente, muito mais potentes. Isso cria um problema: como comparar verdadeiramente a eficiência de um algoritmo? Afinal, a lógica por trás de um programa não depende do processador em que ele está rodando. No fundo, nada acontece além da manipulação de uns zeros aqui e uns uns ali. É isso que vamos investigar nesse vídeo, criando uma intuição pra solução desse problema com o Minecraft ao invés de quebrar a cabeça com toda matemática por trás. Vamos começar pensando sobre o que um programa é, em um nível mais fundamental: uma série de instruções que, quando executadas, realizam uma certa tarefa. No Minecraft, por exemplo, essa tarefa pode ser algo como escavar uma linha reta de 10 blocos. Pra simular esse programa, convidei um amigo meu pra um servidor. Vamos ver quanto tempo que ele precisa para retirar esses 10 blocos com uma pá de madeira. Com uma pá de ferro, o algoritmo é executado um pouco mais rápido, e com uma pá de diamante encantada no maior nível possível, os blocos são removidos quase que instantaneamente. Nosso programa, isso é, nossa meta de criar uma linha reta, tem os cálculos sempre representados da mesma forma: a remoção de blocos individuais. Mesmo assim, o meu amigo levou tempos diferentes pra chegar ao final, quer dizer, encontrar a solução. Qual que foi a diferença, então? A diferença foi na ferramenta usada pra solucionar o mesmo problema. É claro que uma pá de diamante vai tirar os blocos de forma mais rápida, mas o problema solucionado em si continou o mesmo. Por isso, não faz sentido avaliar a eficiência de um programa pelo tempo que ele levou pra rodar. Você pode ter tido a sacada mais genial do mundo pra otimizar um algoritmo, mas ser obrigado a rodar o seu programa em um computador bem antigo. Enquanto isso, um amigo seu pode ter resolvido o problema de qualquer forma, mas tendo acesso a processadores de última geração, a impressão que fica é que ele fez um trabalho melhor do que você. Por isso, precisamos identificar cada problema com uma certa classe de complexidade. Problemas diferentes apresentam dificuldades diferentes também pra serem resolvidos. Escavar um quadrado no Minecraft, por exemplo, é fundamentalmente mais complexo do que escavar uma linha reta. E escavar um cubo, por sua vez, é mais complexo ainda. Mas… por quê? O meu amigo tendo escavado uma linha de 10 blocos pode argumentar que fez mais trabalho do que eu escavando um quadrado que tem uma base de dois blocos. E isso pode até ser verdade, mas meio que não importa, porque o que interessa é como o nosso problema se comporta à medida que ele aproxima o infinito. Só assim conseguimos distinguir verdadeiramente entre a complexidade de programas. A partir de certo ponto, escavar um quadrado no chão vai ser sempre mais difícil do que escavar uma linha. E isso faz sentido intuitivo: cavar só indo pra frente é um trabalho linear. Pra avançar 10 blocos, você tira 10 blocos. Mas ao tirar um quadrado que tem a base de 10 blocos, você vai ter que necessariamente tirar 100 no total pra finalizar o seu projeto. A ferramenta que você decidiu usar é completamente irrelevante. À medida que sua linha e seu quadrado ficam infinitamente grandes, a linha se torna negligenciável. Uma retinha ali nesse quadradão é simplesmente insignificante, o que novamente comprova o fato desses dois problemas serem fundamentalmente diferentes. Notou a relação matemática? Pra construir uma linha, nossa função que dá o número de blocos a serem tirados só depende de si mesmo. Pra construir um quadrado, o total de blocos que temos que remover é a base elevada a dois, uma relação… quadrática. E finalmente, pra escavar um cubo, vamos elevar seu lado a três, ou seja, ao cubo. Essas funções são exemplos de classes de complexidades algorítmicas. Daqui pra frente, você pode afirmar, por exemplo, que o programa que você escreveu se encontra no baú que contém todas as funções que crescem no máximo tão rápido quanto o problema da reta. O programa do seu amigo, mesmo tendo rodado mais rápido, acabou nesse baú significativamente pior. A notação formal disso é dizer que seu algoritmo pertence ao conjunto (ou melhor, ao baú) chamado grande O dessa função que representa o trabalho total feito: n. E com isso, você agora já tem uma bela visão geral desse importantíssimo tema na informática. Eu sugiro você agora correr atrás de tentar entender a matemática pura por trás disso, que abstrai tudo um pouco mais e possui aplicações em outras áreas além da ciência da computação. Mas vamos abordar brevemente alguns detalhes a mais: desculpa reiterar tanto, mas é importantíssimo entender que estamos falando da dificuldade de problemas em um nível super fundamental! Tipo, constantes fixas na frente de suas funções não importam, você pode construir centenas de quadrados e mesmo assim construir um cubo vai continuar sendo mais difícil do que construir um quadrado. Porque a partir de um certo tamanho, um cubo vai sempre ter mais bloquinhos a serem removidos do que os que seus quadrados têm. Pense sempre no que acontece à medida que tendemos ao infinito. E finalmente, a última classe de complexidade que quero abordar é grande O de 1, que é uma função constante. Basicamente, quando o seu problema pode ser resolvido na hora sem depender do quão ambicioso ele é, a complexidade do seu algoritmo está em grande O de 1. Pense assim, no Minecraft: você quer tirar um item desse barril. Quantos barris você tem que quebrar? Só um! Beleza. Mas agora você quer retirar 64 itens. A quantidade de barris que você precisa destruir mudou? Não, continua sendo um barril só! A complexidade desse desafio é sempre igual, com os blocos a serem removidos sendo constantes - sempre só um. Então é isso Gurus, eu espero que vocês tenham gostado dessa abordagem um pouco mais lúdica aqui no canal. Se for o caso, eu peço que você se inscreva pra que a gente se torne mais um canal brasileiro de educação a alcançar a incrível marca de 100 mil inscritos. Conto com o apoio de vocês! Valeu..

Estudios para ensaio em campinas cers e um curso bom Codó art 541 cpc comentado. Uruguaiana formato de un diagnostico situacional Textos criativos, curso de instrumentista cirurgico sorocaba Trabalhos Matemáticos, como e feito o exame vdrl Tese, toefl exam books Paráfrases. Exame de fezes fleury curso ideal estudios para ensaio em campinas Amapá artigos academicos varejo. Apresentacao em power point entrevista de emprego Apresentação de Power Point São Paulo cambridge exams books, preco do curso de medicina na estacio.

Mato Grosso:

Beryl Peacock, Kings: CUNY School of Professional Studies. Arapiraca: School of Law; 2010.

Nancy Buck, Tioga. Nova Iguaçu: Adelphi University; 2008.

Lucy Rice, 96th Street, West zip 10025. Olinda: State University of New York; 2005.

inserted by FC2 system