Ang kamahinungdanon sa oras ug pagkakomplikado sa Ethereum - nagpatin-aw sa programmer

Ang kamahinungdanon sa oras ug pagkakomplikado sa Ethereum - nagpatin-aw sa programmer

(Tradução Automática Ivan on Tech) Ei, pessoal, bem-vindos de volta ao meu canal e hoje nós’ vamos falar sobre complexidade de tempo e porque a complexidade de tempo é um conceito tão importante se você quiser se tornar qualquer desenvolvedor de teoremas ou honestamente se você quiser se tornar um desenvolvedor, acho que deveria estar familiarizado com a complexidade do tempo, você deve saber o que significa e como.

Você pode usá-lo em sua vida cotidiana como um codificador e como você deve usá-lo e então o que é nesse contexto os caras que você pode estar se perguntando bem em ciência da computação nós temos essa noção de complexidade de tempo e é basicamente uma medida de quão performant e algoritmo é basicamente quão rápido e algoritmo é e sim você deve estar se perguntando Ivan por que don’t we.

Basta usar minutos ou segundos, por exemplo, poderíamos dizer que este algoritmo a está executando a tarefa em cinco segundos e este algoritmo B executará a tarefa em segundos e d, então podemos comparar esses dois algoritmos, mas sim, a razão pela qual não usamos segundos ou minutos é porque esse algoritmo pode, é claro, ser executado em muitas máquinas diferentes.

Diferentes configurações de hardware e claro que se executarmos este algoritmo em uma máquina lenta será mais lento do que se o executarmos em uma máquina rápida e quando quisermos analisar o algoritmo queremos analisar quão bem ele está escrito quão bem ele é construído e quão bem ele é pensado nós não nos importamos com segundos e minutos nós nos importamos mais.

Sobre como o tempo que leva para concluir a tarefa, basicamente o tempo que leva para executar este algoritmo, como ele se relaciona com o problema que o algoritmo obtém e isso pode parecer confuso, mas você apenas continue assistindo, você entenderá, então vamos repetir que basicamente a complexidade do tempo é uma medida de quão eficiente é um algoritmo e ele.

Basicamente é a relação entre o tempo que leva para completar uma relação de tarefa entre o tempo que leva para completar a tarefa e o tamanho do problema o tamanho da tarefa então vamos falar sobre alguns exemplos práticos e você pode entender um pouco mais se tomarmos alguns exemplos práticos vamos dizer que nós.

Temos uma função que tem algum tipo de função e ele recebe um array como entrada então damos um array ele faz algumas operações e nos dá um resultado então vamos imaginar que damos a esta função um array de tamanho 1 então basicamente um array com um elemento dentro e vemos que leva um segundo para esta função completar a tarefa basicamente para nos dar um.

Resultado então então tentamos dar essa mesma função que está dando a ela um array com dois elementos e vemos que leva dois segundos para a mesma função completar essa tarefa e então continuamos damos três elementos e leva três segundos para completar a tarefa quatro elementos e leva quatro segundos então sim, como você pode ver, temos uma.

Relação linear entre o tamanho do problema e o tempo que leva para ser concluído, portanto, neste caso, a complexidade do tempo seria Ordo e isso pode parecer confuso sim, eu poderia entender totalmente, mas isso basicamente significa que se tivermos uma entrada de tamanho n basicamente a letra n, ela pode ser de qualquer tamanho, mas chamamos essa variável de M o tempo que leva.
580Para completar será linearmente relacionado, pode ser um múltiplo deste número, mas eles são linearmente relacionados, então esta é a ordem M e a ordem é apenas uma convenção, mas basicamente dizemos ordem porque o tempo para concluir esta tarefa nunca será maior, pode ser menor em alguns casos, mas nunca será maior e isso é muito profundo para este vídeo, deixe&é apenas.

Pule a coisa do Ordo apenas pense nisso, pois temos uma relação linear se dermos à função uma matriz de tamanho cinco, ela levará cinco segundos se dermos à função um array de tamanho cem ll vai demorar cem segundos e assim por diante, então esta é uma relação linear no entanto caras na ciência da computação quando desenvolvemos algoritmos nem todas as funções. se dermos um array de tamanho um eles podem ser feitos em um segundo mas se dermos um array de tamanho dois eles podem ser feitos em quatro segundos nós damos a eles um array de tamanho três eles’é feito em nove segundos e, portanto, neste caso, como você pode ver, temos uma relação quadrática basicamente.

Tamanho do problema nós o elevamos ao quadrado e então obtemos o tempo que leva para completar a função então basicamente se dermos à função uma matriz de cinco elementos levaria vinte e cinco segundos para completar então como você pode ver esta função seria dimensionada assim seria apenas escale exponencialmente e seja cada vez mais lento para exponencialmente mais lento.

E mais lento para entradas maiores e desta vez a complexidade é usa ka butang que queremos evitar a todo custo quando quando você faz programação e vê que sua função é exponencial que você desenvolveu e desenvolveu um algoritmo que tem uma complexidade de tempo exponencial por exemplo N ao quadrado onde pegamos essa variável N e calculamos o tempo dela.
580Demora para completar a função que você precisa para elevá-lo ao quadrado como neste caso temos três elementos e leva nove segundos temos cinco elementos que leva 16 segundos, temos quatro elementos que leva segundos, como você pode ver, elevamos ao quadrado o número de elementos que elevamos ao quadrado o tamanho do problema para obter o tempo que levará para completar o.

Problema pessoal se você ver isso em seu código você deve pensar duas vezes e você deve tentar corrigi-lo é claro que nem todos os problemas são possíveis também corrigir e para evitar essa relação n-quadrado isso n quadrado a complexidade do tempo, mas em muitos casos é possível e caras existem muitas outras classes diferentes, por exemplo, existe n.

Fatorial que é só é ve ry muito lento como ele você poderia ter que se você tiver uma matriz de um elemento leva um segundo, mas se você tiver uma matriz de dez elementos leva dois anos ou algo assim, então essa coisa de complexidade de tempo pode ficar muito ruim e devemos realmente estar pensando em como nosso código se comporta neste assunto nesta esfera de.

Complexidade de tempo e uma das melhores complexidades de tempo é log n basicamente será assim então ele começará e ficará mais lento mais lento, mas então ele se nivelará e se você der uma entrada enorme, ele apenas nivelará e ficará nesta linha, então se você tiver um algoritmo que seja log n, é muito, muito bom, então caras nós discutimos alguns.

Diferentes casos de complexidade de tempo como diferentes algoritmos podem se comportar nós cobrimos a complexidade de tempo linear onde é apenas 5 5 elementos 5 segundos 12 elementos 10 segundos, cobrimos o exponencial onde é onde você tem, por exemplo, dois elementos quatro segundos s cinco elementos vinte e cinco segundos e pode ficar cada vez pior, mas de. ele nivelaria mesmo com entradas cada vez maiores e problemas cada vez maiores desta vez apenas aumentaria no começo, mas depois nivelaria e mesmo se você der problemas mais difíceis, ainda seria basicamente o mesmo, então por que é assim .

Caras importantes bem basicamente quando eu aprendo programação quando eu tinha tipo anos é claro que eu não pensei sobre isso eu só tive alguns problemas resolvi-os e mesmo que o código se comportasse nessa complexidade de tempo exponencial eu não fiz& realmente não me importo porque este era apenas meus projetos de brinquedo, mas na vida real quando você. sobre isso porque os problemas de hoje são enormes como se nós fossemos sete resolvendo todos esses problemas de big data estamos resolvendo problemas de inteligência artificial hoje em dia os sites têm milhões e milhões de usuários e, portanto, mesmo que o hardware fica melhor e mesmo que tenhamos computadores mais poderosos.
580Ainda temos que pensar sobre essas coisas e em uma nota mais prática quando você’ está olhando para o seu código e você vê um loop e então você tem um loop dentro desse loop e talvez caras você tenha um loop dentro desse segundo loop interno, então você realmente deveria pensar se isso’é realmente necessário porque é quando temos loops dentro de loops.

Dentro de loops que essas situações podem ocorrer é claro o mesmo é verdade para a recursão você deve realmente se você tiver algum tipo de função recursiva você realmente deve estar pensando que é realmente necessário o número um e que ele tem um cenário base razoável onde ele terminará e voltará pelo site então os loops são muito importantes.

Se você vir loop dentro de loop dentro de loop dentro de loop um mau sinal, cara, tente resolver de forma diferente e às vezes será possível&é só que sempre que você tem um novo problema você pensa na solução mais fácil e isso foi quando eu era criança eu tinha um problema e pensei em como Eu resolvo isso e então eu acho que tudo bem, eu preciso do loop e.

Então, para cada elemento nesse loop, eu preciso fazer um loop novamente e, em seguida, através de cada elemento lá Eu preciso fazer um loop novamente, então eu apenas pensaria e construiria isso ingenuamente, é claro que existem outras maneiras de fazer isso, por exemplo, você pode usar programação dinâmica para reutilizar um resultado calculado anteriormente e existem truques diferentes de como você pode.

Pode aprender e você sempre que vê um problema reconhece esse problema e você e reconhece uma solução para essa classe de problemas como a chamamos e sim se você estudou ciência da computação se você tiver um masters em com informática eu tenho certeza que você tem esse conhecimento e eu acho que se você é autodidata se você está ensinando .

Você mesmo como programar você realmente, muito, muito, pessoal, tem que pensar nisso, você tem que assumir a responsabilidade e aprender isso sozinho, porque esse conhecimento pode não ser o mais emocionante coisa para aprender como na universidade quando eles nos ensinaram essa pequena complexidade de tempo, é claro que era muito chato comparado ao aprendizado angular. coisas divertidas para aprender e agora temos que aprender complexidade de tempo e fazer todos esses exercícios de complexidade de tempo, mas acho que isso realmente faz de você um programador melhor quando você está pensando em um problema você reconhece diferentes classes de complexidade você sempre que vê um loop dentro do loop você pensa que não, não. tente algo diferente vamos tentar resolvê-lo de forma diferente e se você nunca viu o tempo complexidade antes de você não perceber isso, então eu acho que é muito importante e pessoal se você’ está muito interessado nisso, deixe seus comentários abaixo e deixe-me saber que você está interessado na complexidade do tempo, podemos fazer mais vídeos sobre isso, então sim agora nós ;re.
580Finalmente cheguei a um teorema por que a complexidade do tempo é tão importante para os desenvolvedores de um teorema, bem, acho que a maior razão é, obviamente, o gás de cada etapa computacional em seu maalamon nga kontrata vai custar-lhe gasolina e, portanto, é melhor ter certeza de que seu código está tão otimizado quanto possível desculpe, sim, você usou todos esses truques para.

Minimizar o tempo complexidade, mas você pensou em seus loops e seus loops dentro de seus loops e realmente questiona se isso é necessário ou posso resolvê-lo de maneira diferente porque em muitos casos existem maneiras de resolvê-lo com um loop sem o loop interno, no entanto, o loop interno pode ser o máximo.

Solução óbvia b mas existem outras soluções para o mesmo, elas podem ser outras soluções para o mesmo problema e é por isso que eu acho que se você é um desenvolvedor de sonhos bacana, a complexidade do tempo é absolutamente necessário, você deve ser profissional na complexidade do tempo, se quiser para codificar em um teorema porque como eu disse sim cada um.

A etapa computacional vai te custar caro e como correntes eu acho que é gás
;é muito caro e isso’ de certa forma também’ uma pena porque como eu gostaria de apenas enlouqueça e tente coisas diferentes na rede real, um tédio, é claro que causaria spam e entupiria a rede e tudo isso, obviamente, precisamos ter gás, mas lá.580
Existe essa barreira de gás e precisamos ser super cuidadosos quando construímos programas então pessoal é isso’ é isso por hoje que falamos sobre complexidade de tempo vocês têm sido muito muito observador e acordado esta manhã você nos EUA não estava acordado, mas eu basicamente fiz esse vídeo de manhã, mas meu microfone estava estragado como se eu tivesse isso horrível. hoje falamos sobre complexidade de tempo e se você é um novo espectador e gosta de programação de tecnologia blockchain Bitcoin aetherium você definitivamente deveria se inscrever neste canal pessoal porque você vai achar interessante eu mesmo sou desenvolvedor de software e posto vídeos todos os dias.
580Dia, exceto domingos, então hoje falamos sobre complexidade de tempo e euvejo vocês amanhã

Gradohi niini nga post

May Kalabutan nga mga Post

Leave a Comment

sayop: