🎁 CÓDIGO DE DESCUENTO "BETTATECH" 👉🏼 7% EN TODOS LOS SERVICIOS DE HOSTINGER Entra a HOSTINGER con el siguiente link y usa el cupón "BETTATECH" para obtener un 7% de descuento en todos los productos. www.hostg.xyz/aff_c?offer_id=357&aff_id=56221
@miguel9000304 жыл бұрын
PAGARÍA por un curso tuyo sobre estructuras de datos y algoritmos
@VulturARG4 жыл бұрын
Hola, el código de slack no funciona
@LuisRuizHalo4 жыл бұрын
A mi, lo de memoization se me quedó porque antes de aprenderlo creía que se llamaba memorization. Muy buena serie de videos!
@BettaTech4 жыл бұрын
Ya somos dos ajjaja
@armandomendivil11173 жыл бұрын
Excelente, este un ejemplo de entrevista, si solo usas recursividad para fibonacci tendrás una complejidad de tiempo y espacio de O(2^n), si usas memoization puedes bajar el tiempo de complejidad a O(n) pero el espacio también es O(n), la mejor forma para este caso es la iterativa ya sea usando una variable temporal para manejar el estado previo o un array como lo muestra en el ultimo ejemplo y da tiempo de complejidad O(n) y espacio constante de O(1). Muy buen video 👍
@framm7033 жыл бұрын
Yo usaría la fórmula cerrada con el número áureo con coste O(1)
@armandomendivil11173 жыл бұрын
@@framm703 me faltó poner lo del número áureo para hacerlo en o(1) 👍
@salvadorcano5532 жыл бұрын
Para este ejemplo concreto, ¿no sería mejor almacenar únicamente 2 valores en el array, que fueran machacandose hasta obtener el resultado?, la complejidad sería la misma, pero el espacio en memoria sería mucho menor, ganaríamos más espacio cuanto más grande fuera el número a calcular, también es un factor a tener en cuenta.
@ProEFP4 жыл бұрын
Muchas gracias Soy un participante de muchas competencias de programación y estos vídeos me ayudan bastante .
@dang92254 жыл бұрын
Gracias por todos estos vídeos, ayer mismo tuve una entrevista y me pidieron las típicas Katas, hace una semana no sabía ni lo que era, pero no las había estudiado como resolverlas, y eso que era una empresa pequeña, ahora se más pero me falta recorrido en todo esto de los patrones de diseño y los principios SOLID, como utilizarlos en el día a día cuando nos encontramos con estas cosas, no ya en empresas enormes, si no para el día a dia.
@soldadopreciso4 жыл бұрын
Este es un tema de la materia Analisis de algoritmos, para quienes desean profundizar un poco mas, temas como notacion asimptotica , etc.
@balfaz4 жыл бұрын
Estas haciendo un grandioso trabajo, y estoy contento por tu logro, te sigo desde cuando eramos 5k
@tho2073 жыл бұрын
felicidades por el vídeo, calidad altísima, todo claro y sin redundancias
@ElCalvazo4 жыл бұрын
La madre que me parió, justo tenemos programación dinámica para esta semana en la UNED. No me podías haber venido mejor.
@Juan-yj2nn4 жыл бұрын
*Hey, Vsauce, Michael here*
@danhelimunizsanchez8973 жыл бұрын
Jajajajaja
@TheZoren1013 жыл бұрын
xD
@gabrielperezcarballo77984 жыл бұрын
Hola @BettaTech, podrias hacer un video para explicar en mas detalles bfs y dfs?
@aleeherasimiuk4 жыл бұрын
Te conocí hace poco y me encantan tus videos. Veo que sos una persona muy capacitada y que sabe de lo que habla. Me encanta. Felicitaciones!. Me gustaría verte hablando de cómo funciona Lazy Evaluation vs Eager Evaluation. Sería muy interesante
@rupardo6894 жыл бұрын
gran explicacion!!!! ¿podrías explicar como aplicar eso a problemas de optimización?
@MikeWasteland3 жыл бұрын
Mal ejemplo para explicar la programación dinámica, en mi opinión. Al final terminas con una versión (linearFibo) que es menos eficiente que tener simplemente 3 variables que se van sobrescribiendo. De la manera que tú planteas estás malgastando muchísima memoria (en cuanto calculas el elemento n, los elementos desde la posición n - 1 hasta la 0 ya no te sirven de nada).
@new_artiko4 жыл бұрын
esta genial!! ahora falta un video de la programación basada en eventos con ejemplos T_T y puedo morir feliz! un abrazo a la distancia!
@AyO184 жыл бұрын
bueno, literalmente me estuve agarrando a madrazos con recursividad hace 24hs, ese video me viene de perlas >:3
@juanjocg18704 жыл бұрын
Lo estaba esperando jeje
@eugeniocar763 жыл бұрын
Excelente video, creo que esta "programacion dinamina" es un termino romantico para las tecnicas que usamos los que aprendimos a programar old schooll
@ShinigamiRyto3 жыл бұрын
Así cuando te enteras que esa llamada programación dinamica es algo ya se hacia desde hacia poco después que enseñaran recursividad en la escuela.... siendo que da miedo el nombre porque suena a lo que hace el machine learning de adaptarse y mejorar el algoritmo a medida que se ejecuta
@miguelalbertocalderon59024 жыл бұрын
Hay un ejercicio que me salió en una entrevista que se llama "subarrays divisible by k" si lo puedes explicar te agradecería un monton ya que llevo un buen rato tratando de entenderlo y no he podido. Grande por este tipo de videos y muy bien explicados.
@santiagogo31613 жыл бұрын
Muchas gracias por compartir tus conocimientos, se me ha abierto un mundo por descubrir. Muy bueno el vídeo. Un saludo.
@javierquirozgalindo6644 жыл бұрын
Hola sr. Betta como se llama el programa que le permir mostrar código en un formago amigable para grabarlo? 🤔
@nulld0t4 жыл бұрын
Al final, puedo reemplazar cualquier algoritmo de recursividad por uno iterativo con programacion dinamica? o sirve en este ejemplo en especifico
@hernanrodriguez14354 жыл бұрын
Todo algoritmo recursivo puede ser traducido a un algoritmo iterativo, pero no necesariamemte con programacion dinamica. No todos los algoritmos recursivos cumplen la intrinseca estructura de un problema de programacion dinamica (ej. Backtracking) Si queres saber mas te recomiendo el libro Algorithm Design Manual de Skiena :)
@nulld0t4 жыл бұрын
@@hernanrodriguez1435 muchas gracias por la respuesta! ♥
@fabriciorivarola93523 жыл бұрын
Hay algo que no termino de entender, en 6:45 el primer return de la primera ejecución no deberia parar la ejecución y por ende la recursividad porque el resto del codigo no se ejecuta?
@juanmanueltejedatorres15413 жыл бұрын
Aunque para el caso de encontrarse con el primer return tienes que considerar que las llamadas que hay en cola aún se están ejecutando y a su vez están agregando más llamadas, viendo las llamadas como un árbol, es difícil explicarlo en texto espero me entiendas
@jamavocorp3 жыл бұрын
Me fue muy útil, sabia que la solución a algo que buscaba lo había visto en tu video.
@fedeeoliva83714 жыл бұрын
Wooow! Buenisimo estuvo esto. Cuestiones simples que optimizan una barbaridad.
@wiltonvp29044 жыл бұрын
Hola Martin... Como ves el Futuro Programacion vs Maching Learning.. No haran falta los programadores a futuro? El desarrollo Web , escritorio y movil se iran?
@juanmanueltejedatorres15413 жыл бұрын
Veelo de está manera, la programación no es lo mismo que la algoritmia, y los humanos tienen la capacidad de relacionar, "pensar" y descubrir cosas nuevas, mientras las computadoras se limitan a ejecutar tareas repetitivas sin embargo existen cosas que por el momento están limitadas a los humanos, en otras palabras a la experimentación, la programación de puede de cierta forma automatizar pero para lograr esto se necesita un algoritmo el cual requiere "pensar" y las computadoras no lo hacen al menos
@JorgeRamos-sh7ve3 жыл бұрын
Buen día. Me encanta tu canal. Podrías indicar algún enlace donde profundizar este tema? La verdad me gusta mucho como explicas pero en este ejemplo no me quedo claro la programación dinámica porque cuando aprendí a crear la serie Fibonacci lo hice con variables o arreglos sin recursividad, de hecho lo hice con turbo Basic hace casi 30 años. Te felicito por la calidad pedagógica que tienes. Sigue enseñándonos. Gracias
@nikse20282 жыл бұрын
Parece simple... Pero sus variantes son de las cosas mas complejas que eh visto en toda la carrera, dios mio
@analisamelojete19663 жыл бұрын
Que buen video! Muchas gracias por el contenido!
@Jorge150CL4 жыл бұрын
Asocio dynamically programming a crear objetos en tiempo de ejecución, en java le llaman at runtime. Podrías explicar la diferencia de estos conceptos? Buen video
@aureliojosetriguerosmirava1624 Жыл бұрын
Explicas increíble, muchas gracias
@edgar19064 жыл бұрын
Excelente video! Y felicidades por los 100K :D Podrías hacer un día de estos videos sobre autómatas finitos? ☺️
@djtiner14 жыл бұрын
qué recuerdos de las clases de Algoritmica en la FIB con Conrado enseñandonos DP xD
@juniorrafaeldelorbemorillo3185 ай бұрын
que lenguaje de programacion usate
@doragaming24702 жыл бұрын
Que programa está utilizando?
3 жыл бұрын
Gran video, me hubiera servido mucho hace 15 años para las Olimpiadas de Informática xD
@JulsGeekPI3 жыл бұрын
Para aprovechar el gran mercado latinoamericano. Sería fácil y con un cambio de una sola letra, de betatec a petatec.
@ustongs4 жыл бұрын
Tu vídeo llega en el mejor momento muchas gracias
@galomax4 жыл бұрын
Muchas gracias por el vídeo. Claro y conciso, sigue así!
@joserubio30364 жыл бұрын
Hey betta gran video, tenia una duda que preguntarte, veras estoy buscando un portatil con buena autonomía, portabilidad y que sea potente dentro de esas características. Mi uso de trabajo es programación en jupyter nootebook, RStudio, análisis de datos, gestión de redes sociales y trabajos ofimáticos. Me podrias recomendar algo?
@noecruzrodriguez77444 жыл бұрын
Genial!, muchas gracias por la lección.
@Padrino-kp1rf4 жыл бұрын
Muy buen video, supongo que esto es algo ya avanzado de ciencias de la computación Pd: podrías hacer un video donde nos expliques cómo harías un sistema tipo zoom o cualquiera de videoconferencias xfa
@dang92254 жыл бұрын
Hola, busca Simple-peer es javascript pero hace toda esa magia con Webrtc
@danielbarrientos7223 жыл бұрын
Muy buen video! Con tema de problema de memoria de la recursividad tambien se puede solucionar con trampolines
@JaviArte3 жыл бұрын
Una pregunta tonta sobre el IDE que me deja todo loco XD Cuando haces scroll, las líneas de código se quedan fijas, ¿pero el número de línea se mueve? Y además, unos van en orden descendente, otros ascendentes... Un poco lioso, no?
@samuelgallardo67603 жыл бұрын
Los programadores de ahora no conocen la verdadera programación dinámica, gramáticas formales, autómatas que se auto reproducen, el problema, cuando yo lo hacía es que jamás nunca nadie podía entender mi código, el más eficiente, pero ininterpretble, ahora los lenguajes incluyen muchas estructuras que facilitan esto, pero nadie las usa
@josecarlosbarrigaarnez88434 жыл бұрын
Cual es el enlace para unirse al canal de slack( el de la descripción ya no esta funcionando)
@LV-cn9bx3 жыл бұрын
El video está bien, pero es corta pega de la curso de freebootcamp, dices exactamente la mismo hasta en secuencia. La programación dinámica si es difícil, decir que no es compleja es un absurdo.
@cristiancocanavarro49193 жыл бұрын
Este canal es de calidad
@ianvega22532 ай бұрын
Que programa usaa?
@simonalvarado25134 жыл бұрын
Que buen video!. Seria interesante ver tu explicación sobre algoritmos evolutivos.
@johanvelandia13283 жыл бұрын
Se que no viene al tema pero alguien me podría decir que tema de vs code esta usando? me encantaron las llaves verdes
@nbensa4 жыл бұрын
Por "programación dinámica" pensé encontrar algo como el código que John Carmack escribió para ajustar el escalado de sprites y texturas luego de cambiar la resolución de pantalla en el juego Wolfenstein 3D (1990/91).
@Linuxmusica4 жыл бұрын
Duda, ¿en C++ no se puede hacer con punteros? Gracias.
@carlosalvarez20694 жыл бұрын
Qué lenguaje estás usando?
@emmanuelarriaga96743 жыл бұрын
Congrats bro!!
@sergiorodriguez79454 жыл бұрын
Literalmente tengo mañana un examen de programación dinámica y has subido el vídeo ayer, osea que me viene super bien el vídeo :)
@oscarfernandezdev4 жыл бұрын
¿Cómo te fue?
@sergiorodriguez79454 жыл бұрын
@@oscarfernandezdev nos preguntaban un algoritmo que recorriese un grafo, y lo que tenía que devolver el algoritmo no lo saqué pero el concepto que pedían lo conseguí sacar más o menos, así que bien
@denuxs4 жыл бұрын
Como puedo unirme al canal de Slack? el link no esta activo
@elkatedratico4 жыл бұрын
yo entendía por programacion dinámica al código que genera más código y lo ejecuta.
@samuelgallardo67603 жыл бұрын
¿Alguno de ustedes ha programado con la Maquina de Turing?, la más eficiente pero nadie podrá modificar el código por no entenderlo, por eso la mayoría no programa dinámicamente, estructuras básicas tradicionales
@LuisACanales2 жыл бұрын
Muy interesante, gracias por la clase.
@BettaTech2 жыл бұрын
Gracias a ti!!
@juliocesarmamanivillena89434 жыл бұрын
Excelente video se entendió la idea del método lineal, pero no sé lo esperaba el infinity por su reacción😂 En Java con un BigInteger lo solucionamos los números grandes Saludos BettaTech
@carlosdanielcastellanosgar81534 жыл бұрын
Wow, me resolviste esa duda, gracias
@yesidev41314 жыл бұрын
Beta te quiero preguntar algo, en vim cuando quieres importar algo, tienes que escribir toda la ruta? O existe algún autoimport similar a los que tienen los ides, y cuando quieres buscar una palabra en todo el proyecto (ej. Dónde de llaman una clase HTML en varios archivos)
@WillCastruita2 жыл бұрын
Tu solución a lo segundo se llama telescope
@yesidev41312 жыл бұрын
@@WillCastruita ya ni me acordaba de esta pregunta, pero si, me autorespondo y para los autoimports se usa COC, con su comando aw en el caso de typescrit ya cuento con un repositorio personal de neovim donde he pasado muchas funcionalidades de VSCode a Neovim
@Navegonauta3 жыл бұрын
Estan geniales los demos. Solo que es una pena que se use a TS o JS que es tan carente y no un lenguaje mas potente...
@tortugadio29404 жыл бұрын
Genial! no lo conocía
@dub_cl4 жыл бұрын
Hola, alguien me puede pasar invitacion al slack? el de la descripción no funciona, saludos y gracias!
@EVA63834 жыл бұрын
Excelente explicación 👏🏼👏🏼👏🏼
@maximilianojimenez5254 Жыл бұрын
dude, desde hoy soy fan de tus videos
@BettaTech Жыл бұрын
Mil gracias!!!!
@tadeogonzalezalvarez64884 жыл бұрын
Gracias por el video!!, muy interesante, me suena a que en programación dinámica se pueden utilizar los patrones de diseño Flyweight y Memento.
@arthur-gm5oe4 жыл бұрын
Muy bien vídeo!!! :)
@rreyes20273 жыл бұрын
Cual es la notacion big O del segundo algoritmo?
@juuamjskn24203 жыл бұрын
Creo que O(n)
@vteran933 жыл бұрын
Hace unas semanas hice este para una entrevista de trabajo en Python. ``` def fibonnaci(n): fibonnaci=[] aux = True for i in range(n): if i == 0: fibonnaci.append(i) elif i == 1: fibonnaci.append(1) elif i == 2: fibonnaci.append(1) else: if aux: fibonnaci.append(fibonnaci[i-2] + fibonnaci[i-1]) del(fibonnaci[0:len(fibonnaci)-2]) aux=False else: fibonnaci.append(fibonnaci[0] + fibonnaci[1]) del(fibonnaci[0:len(fibonnaci)-2]) return fibonnaci[-1] print(fibonnaci(500000)) ``` ¿Me explicas porque no me dieron el trabajo?
@hazlosipuedes4 жыл бұрын
Un saludo... Entendí con tu video la programación dinámica, el objetivo es optimizar los recursos de memoria, solo una duda... Porque los lenguajes funcionales y en espacial haskell solo usa recursion?.. Si es tan costoza... Un día platicando con un maestro me dijo que depende del lenguaje, que la programación iterativa al final es más costosa pero es más fácil de hacer el proceso mental para programar, pero una vez entendida la programación funcional estos lenguajes son más eficientes y me hizo el ejemplo de recursion en JS y en racket y en racket no se trababa el proceso usaba menos memoria y era más rápido, pero obvio en la web se usa JS... Entonces conclusión, la pregramacion dinámica es hacer programación iterativa lo programado en funcional? Como sería lo contrario?... Hacer un algoritmo iterativo volverlo funcional?. (claro cambiarlo de lenguaje) y con esto nos ahorraría código y seria mas veloz, esto también es programación dinámica?. Saludos ..
@aniballecter60543 жыл бұрын
El traje nuevo del emperador... Sin ánimo de ofender... acabo de darme cuenta de que llevo haciendo programación dinámica desde que hice mi primer programa hace 35 años... (Esto pasaba mucho en mi facultad había profesores que incluso decían que tal o cual libro estaba completamente equivocado y que teníamos que hacer las cosas como ellos nos explicaban) Yo también puedo jugar a reinventar la rueda : Memorización? => Memoizacion Recursividad? ==> Recuividad Inteligencia Artificial? ==> Inteliencia atificiá Para mí que el que se inventó el primer término mientras daba clase había desayunado algo más que agua con misterio... Me gusta el canal pero debería haber una Real Academia de la lengua informática para evitar que la gente se marcase faroles a cuenta de inventar términos para lucirse.
@ramonsorto51073 жыл бұрын
Martin tienes un video de como hacer configuraciones de Vim
@angelbarboza32544 жыл бұрын
Excelentes vídeos!
@cristiands80844 жыл бұрын
Muy claro !!! gracias
@jeycode91804 жыл бұрын
No pude cumplir mi sueño dinámico de llegar a los 100 subs antes que betta tech a los 100.000 x(. Enhorabuena, los calvos dominaremos el mundo!
@abl76924 жыл бұрын
Excelente video!
@BettaTech4 жыл бұрын
Gracias!!!
@nicolasa.bermellferrer80254 жыл бұрын
Y yo aquí haciendo programación dinámica sin saberlo!!
@jerome092master3 жыл бұрын
Rt
@eliasgill24533 жыл бұрын
Sale mil veces mas natural que la recursividad 😂
@getseneko70043 жыл бұрын
Es que al usar JS es más común usar funciones que recursivo, pero no lo aprovechamos como tal.
@renemini10353 жыл бұрын
Excelente todos tus videos
@pepeluis7664 жыл бұрын
Muy buen vídeo, gracias.
@DuniC04 жыл бұрын
Creo que para calcular fib(10000) para la demostración de DP sería adecuado usar python
@DuniC04 жыл бұрын
@@danielmbcn Lo digo por que es capaz de calcular números enormes con toda la precisión
@ludskywalker4 жыл бұрын
Super buen video, excelente explicación de la programación dinámica
@ustongs4 жыл бұрын
Parte dooooos. Hay una propuesta de un ejercicio para entrar a Google. Se llama min diferencia en un arreglo. Varios lo resuelven con programación dinámica.
@rubenpalma64974 жыл бұрын
Gracias tío betatech
@gerardosuarez90514 жыл бұрын
Excelente video.
@luisasanchez92673 жыл бұрын
Buenísimo video!!!
@BettaTech3 жыл бұрын
Me alegro que te haya gustado! 😊
@adrianrobertoaguilarsandic69994 жыл бұрын
Excelente video!!!
@tempusmagia4863 жыл бұрын
ahhh es typescript, con razón los parámetros no me cuadraban por mucho que lo pensaba
@rubencristobalgarcia1853 жыл бұрын
Muy buen vídeo gracias!
@BettaTech3 жыл бұрын
Gracias a ti por comentar! :)
@wes54573 жыл бұрын
SI tengo la oportunidad lo implemento.
@sprksmr72082 жыл бұрын
Por qué dice "memoizar"? Cuál es la diferencia con "memoRizar"? No la he entendido
@arsrivaszaredan82174 жыл бұрын
muy bonito y todo, pero enseñaste el ejemplo más simple de todos los que hay de DP >:v subirle un poquito el nivel no hará daño. Psdt: de todas formas muy buena explicación :D
@kodama14004 жыл бұрын
Para que sirve que ponga el ": number" luego del parametro"(n : number)" En la documentacion de ts no encuentro que hablen de eso solo del param
@kodama14004 жыл бұрын
Entiendo que hace referencia a que el dato sera de tipo numero, pero pa que lo pone luego del parametro?
@techOGR4 жыл бұрын
Podrias 🙋🏻♂️hablar mas a profundidad de estructuras de datos pero utilizando java en vez de Typescript ✨, eres un crack maestrooo, saludos desde Mexico 🇲🇽😊
@salvacarsimoreno52284 жыл бұрын
Igual el problema del stack podrias solucionarlo con tail recursion
@bandall22224 жыл бұрын
De hecho tail recursion es una forma de momizacion porque lo que se pasa en el stack es un valor ya calculado y no una llamada a una funcion
@datapick3r4 жыл бұрын
genial, cada ves mejoro el coste algoritmico de mis dev
@MaximoPower20244 жыл бұрын
Pero esto es básicamente usar la iteración, es decir lo que ya conocíamos la mayoría antes de la recursividad. ¿Qué tiene de especial usar un bucle _for_ ? No lo entiendo. Edito: He mirado la entrada de Wikipedia, y en ella las dos últimas soluciones serían consideradas Programación Dinámica, tanto la que usa recursividad como la que usa iteración. es.wikipedia.org/wiki/Programaci%C3%B3n_din%C3%A1mica Al final, la duda que me ha quedado tras ver este vídeo es ¿qué es la programación dinámica? Espero descubrirlo algún día XD