10 weird algorithms

Sdílet
Vložit
  • čas přidán 14. 05. 2024
  • Top 10 most interesting algorithms ever created in computer science. Learn how software engineers have innovative techniques to solve real world problems.
    #science #programming #top10
    💬 Chat with Me on Discord
    / discord
    🔗 Resources
    Wave Function Collapse demo jaxry.github.io/wave-function...
    Cryptography concepts • 7 Cryptography Concept...
    10 Sorting Algorithms Explained • Sorting Algorithms Exp...
    🔥 Get More Content - Upgrade to PRO
    Upgrade at fireship.io/pro
    Use code YT25 for 25% off PRO access
    🎨 My Editor Settings
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
    🔖 Topics Covered
    - Algorithms every programmer should know
    - How does wave function collapse work
    - Quantum computer algorithms
    - How do distributed systems stay secure?
    - Sorting algorithms explained
  • Věda a technologie

Komentáře • 1K

  • @Yhoshua_B
    @Yhoshua_B Před 4 měsíci +4196

    I don't always understand everything being talked about. I just appreciate being exposed to the knowledge.

    • @liffidmonky1216
      @liffidmonky1216 Před 4 měsíci +95

      U can get far then mate

    • @rubncarmona
      @rubncarmona Před 4 měsíci +83

      that's the mindset

    • @drtydsh
      @drtydsh Před 4 měsíci +31

      that's because you only watch it once, watch it one time on a faster speed then again on a slower. now you actually understand

    • @pajemx8569
      @pajemx8569 Před 4 měsíci +6

      Same here😅

    • @Mikolaj_Kapusta
      @Mikolaj_Kapusta Před 4 měsíci +86

      Don't worry, probably there is a parallel universe where you understand this video.

  • @wlockuz4467
    @wlockuz4467 Před 4 měsíci +950

    Fireship was helping programmers to add tech to their resumes with 100 second series, now he is helping interviewer with new questions for the interviews.

    • @abhishekpankar
      @abhishekpankar Před 4 měsíci +15

      🤣 I literally thought of asking these questions in interviews

    • @curious_banda
      @curious_banda Před 4 měsíci +4

      Better than memorizing leetcode

    • @Jubinmail
      @Jubinmail Před 4 měsíci +4

      Or maybe the programmer can do a reverse uno on the interviewer.

  • @Equalisys
    @Equalisys Před 4 měsíci +245

    *Algorithm* (noun) :
    Word that programers use when they don't want to explain what they are doing

    • @capta1nseal
      @capta1nseal Před 4 měsíci +44

      These days it's getting increasingly common that the programmer doesn't know either

    • @pedrobigboss
      @pedrobigboss Před 4 měsíci +4

      LMAO
      @@capta1nseal

    • @javabeanz8549
      @javabeanz8549 Před 4 měsíci +5

      ​@@capta1nseal"that's what they taught us to do, I don't know why it works..."

    • @user-yp4wt8yq9b
      @user-yp4wt8yq9b Před 3 měsíci

      algorithms are just a bunch of finite instructions to solve some problem, you actually know what they are and how they work since you might use them all of the time like the steps you follows to divide two numbers, the concept and use of algorithms is of a mathematical nature, when programers tells you that the reason why something works is because of algorithms it's like asking an engineer why doesn't the bridge fall and then he just tells you that it is because of math he is telling you the truth but not giving any actual insights which is the most important part for understanding algorithms since in order to create an algorithm you must first understand how to solve the problem and then give the instructions to the computer so that it follows them and solves the problem for you the reason why many programers can't explain what they are doing is because in order to use an algorithm you don't need to understand it you can divide 2 numbers whithout knowing what is division or what are numbers if you just follow the steps so there are some times when programers use other programers algorithms to make their own and they end up solving problems by just using a bunch of algorithms that they don't understand and neither the general instrctions since they can also copy them from somewhere else without getting any real insights

  • @madhououinkyoma
    @madhououinkyoma Před 4 měsíci +676

    0:00 - Intro
    0:43 - Wave Function Collapse
    1:41 - Diffusion
    2:40 - Simulated Annealing
    3:40 - Sleep Sort
    4:19 - Quantum Bogosort
    4:59 - Shor's
    6:10 - Marching Cubes
    6:48 - Byzantine Fault Tolerance
    7:46 - Boids
    8:17 - Boyer Moore

    • @yash1152
      @yash1152 Před 4 měsíci +3

      thanks a lot

    • @Suman-bd1tc
      @Suman-bd1tc Před 4 měsíci +3

      Ahh so much better with your comment thank you so much ❤❤❤

    • @tylrfilms
      @tylrfilms Před 4 měsíci +2

      Video isn't that big that you need timestamp tho

    • @limpiadora
      @limpiadora Před 4 měsíci +1

      Here is the other legend, thanks a lot

    • @studybuddy7060
      @studybuddy7060 Před 4 měsíci +1

      For the sleep sort one, what if we take the biggest element and scale all elements down by that number. Then, it would take atmost 1 second to sort. Though still it would leave the sorting to the CPU scheduler.

  • @GSBarlev
    @GSBarlev Před 4 měsíci +698

    My favorite algorithm is probably Perlin Noise. You touched on procedural generation in your wavefunction collapse portion, but the fact that the result is _deterministic_ (based on the initial seed) and independent of the order of the observations is just mind-blowning.

    • @sjoerdev
      @sjoerdev Před 4 měsíci +13

      simplex noise is far better

    • @112BALAGE112
      @112BALAGE112 Před 4 měsíci +20

      Perlin (and Simplex) Noise work by using a pseudo random generator such as Mersenne Twister.

    • @nicolasreinaldet732
      @nicolasreinaldet732 Před 4 měsíci +32

      Haaa yes here we have a minecraft enjoyer.

    • @madhououinkyoma
      @madhououinkyoma Před 4 měsíci +17

      Using a seed for procedural generation is mind blowing?

    • @paladynee
      @paladynee Před 4 měsíci +10

      @@sjoerdev Ken Perlin invented them both.

  • @awiewahh
    @awiewahh Před 4 měsíci +137

    Diffusion was not first developed at openai. Diffusion as we know it as an image generation technique started as the Denoising Diffusion Probabilistic Models (DDPM) paper that came out from UC Berkley with Ho et al in 2020. Dall-e 1 wasn't even diffusion, it wasn't until far later that openai joined the diffusion scene.

    • @en9717
      @en9717 Před 4 měsíci

      Wrong

    • @awiewahh
      @awiewahh Před 4 měsíci +19

      @@en9717 My other comment seems to have been deleted, so I wont try to link the paper again. But the original image generating diffusion model has the arxiv code of arXiv:2006.11239
      There have been previous diffusion models before that too, but not to the same extent as the DDPM paper. Regardless, none of them were through OpenAI.

    • @PrintScreen.
      @PrintScreen. Před 4 měsíci +12

      @@awiewahh yeah i don't think someone that only replied "wrong" knows what they're talking about, just a troll

    • @Audisknfj
      @Audisknfj Před 3 měsíci +1

      Pieter Abbeel, the doctoral advisor of Ho was one of the main advisors of OpenAI. While diffusion models were developed in Berkeley, it didn’t take long for openAI to join the party even though dalle took some time to release

  • @welcomespiritual
    @welcomespiritual Před 4 měsíci +135

    As a mechanical engineer that later became software developer, it's nice for once to see concepts i actually studied like thermodynamics or metallurgy being related to programming

    • @cristophermoreno2290
      @cristophermoreno2290 Před 4 měsíci +3

      same

    • @devon9374
      @devon9374 Před 4 měsíci +2

      Same here

    • @3xpl0i79
      @3xpl0i79 Před 4 měsíci +5

      Mechanical engineers work as anything but mechanics.

    • @mubx4323
      @mubx4323 Před 4 měsíci +2

      actually, every engineering problem/topic can be somehow be related to programming

    • @MarkEichin
      @MarkEichin Před 4 měsíci +2

      Videos like this show why developers really need to pay more attention to the *history* of computer science - Simulated Annealing was a cool new idea in *1983*, Boyer-Moore is from the late 70s, Marching Cubes is from 1987 - I recently coded up the Shoelace Formula for something because I learned it from an architect doing concrete-foundation estimation back in the 1980s, but it goes back to 1769 :-)

  • @andrewallbright658
    @andrewallbright658 Před 4 měsíci +220

    My favorite algorithms ATM are ones for video games. You see, video games are in the category of “real time simulation” meaning what you see is actually being computed live. That means that there really isn’t a bunch of resources to use; algorithms must be highly effective.
    The work of optimization is handled by trying to pre-compute things or fake things. My favorite example are oceans. The best water simulation (like in Sea of Thieves) is faked by pulling past data from real science buoys and essentially replaying real water (lol). Otherwise computing water in real time is terribly expensive. It’s a hack but an example of how a resource constrained environment produces creative solutions.

    • @ric6611
      @ric6611 Před 4 měsíci +35

      That's actually hilarious, so often nowadays we just forget the simplest solution.

    • @kashifahmed9821
      @kashifahmed9821 Před 4 měsíci +9

      That acerolas video on it is amazing

    • @yoloswaginator
      @yoloswaginator Před 4 měsíci +14

      I hope the field will make a huge leap once generative AI has been incorporated into NPC behavior, 3D texture generation, on-the-fly adjustments of the vibe/music/storyline/difficulty levels etc. Soon games could come out that may play out in ways totally unexpected to the developerts due to the increased degrees of freedom.

    • @LuisSierra42
      @LuisSierra42 Před 4 měsíci +4

      I used a similar hack for my mobile 2d game

    • @Vaeldarg
      @Vaeldarg Před 4 měsíci +8

      @@yoloswaginator A.I model-training combined with the algorithms behind 3D photogrammetry/light-fields has been leading to some magical results lately.

  • @AdidasDoge
    @AdidasDoge Před 4 měsíci +141

    I might have to memorise all these algorithms in case it comes up in an interview

    • @abhijeetas7886
      @abhijeetas7886 Před 4 měsíci +20

      its never a problem if you never knew, but its a problem now that you know these exist but cant remember when need comes to be

    • @BlueJDev
      @BlueJDev Před 4 měsíci +1

      @@abhijeetas7886 soo , it's better to have it and not need it, than need it and not have it?

    • @lowzyyy
      @lowzyyy Před 4 měsíci +2

      doubt you will ever understand this algos, let alone remember...

    • @alastairtheduke
      @alastairtheduke Před 4 měsíci

      I'll just use the boyer moore algorithm to searh this channel for the word 'algorithm' @@abhijeetas7886

    • @HT79
      @HT79 Před 4 měsíci

      If you get these algorithms asked in the interview, you're either secretly getting hired by the Illuminati or you're not getting hired at all

  • @kbobkpop
    @kbobkpop Před 4 měsíci +57

    Happy to see you covering algorithms! I feel like that is an area of software engineering / computerscience that deserves more love!

    • @gus473
      @gus473 Před 4 měsíci

      🍻 Thinking it's about time the Cooley-Tukey FFT algorithm had its own special commemorative day, with festivities! 😎✌️

  • @amitnakash1642
    @amitnakash1642 Před 4 měsíci +9

    Sleep-Sort made me pause, smile, and go “f*king genius” 😂😂😂

  • @GameWorldRS
    @GameWorldRS Před 4 měsíci +106

    Apprently a guy named Oded Regev just discovered a major improvement to Shor's algorithm. Shor himslef agreed that it vastly improved on his original method.

    • @muraliavarma
      @muraliavarma Před 4 měsíci +24

      Right, the CZcams channel "Quanta Magazine" just released a video about Computer Science Breakthroughs of 2023 and this improvement was one of them. But like mentioned in both videos, it is not yet practical from what I could understand.

    • @oggolbat7932
      @oggolbat7932 Před 4 měsíci +18

      Shor, Mara, Dibella, Kynareth, Akatosh. Divines, please help me.

    • @mihailovasic4623
      @mihailovasic4623 Před 4 měsíci +3

      ​@@oggolbat7932I love you 😂

    • @devon9374
      @devon9374 Před 4 měsíci

      Make sure you frequent Quanta's website. It's one of the best for tech and science​@@mihailovasic4623

    • @hedlund
      @hedlund Před 4 měsíci +5

      @@mihailovasic4623 That's gotta be the best random-ass lore snippet insertion I've seen in years.

  • @nikkehtine
    @nikkehtine Před 4 měsíci +226

    This might be my favorite Fireship video to date. The quality, the explanations, the humor, the subject, they are all near-perfect!

    • @kielbarry1789
      @kielbarry1789 Před 4 měsíci

      I agree - high quality, low bs! How CZcams should be. 11 -> fire ship info/density algo

    • @senzmaki4890
      @senzmaki4890 Před 4 měsíci +5

      Let's see Paul Allen's favourite fireship video

    • @Cristopherdreamer
      @Cristopherdreamer Před 4 měsíci

      Based ena pfp

    • @mathematicsclub961
      @mathematicsclub961 Před 4 měsíci

      same

    • @lpsinko9705
      @lpsinko9705 Před 4 měsíci +2

      because its ai ,its hard for humans .WAKE UP FROM THE MATRIX!!!!!

  • @holthuizenoemoet591
    @holthuizenoemoet591 Před 4 měsíci +286

    wave form collaps is not really related to quantum physics but is cool anyway. An algorithm that i miss is the stochastic gradient descent algorithm, what propelled us into the AI area.

    • @brucewayne2480
      @brucewayne2480 Před 4 měsíci

      Any good course about it ?

    • @isodoubIet
      @isodoubIet Před 4 měsíci +33

      Yeah it's just monte carlo sampling of a distribution defined implicitly in terms of local consistency rules. The quantum BS probably helped its marketing though.

    • @chaotickreg7024
      @chaotickreg7024 Před 4 měsíci +29

      It might be more accurate to call it something like "Random field collapse" because it's unrelated to the quantum wave function. But still cool!

    • @dukemagus
      @dukemagus Před 4 měsíci +5

      I was expecting something related to Signed Distance Fields... Graphics programming has some insanely ways of overcoming challenges

    • @carljones9640
      @carljones9640 Před 4 měsíci +33

      Pedantry warning: SGD is an amazing optimization algorithm, but it is not correct to say that SGD is what propelled us into the current AI era - that would be backpropagation. If you want to assign credit to a single algorithm, it would be more appropriate to assign it to backprop, since backprop is what allows SGD to solve the credit assignment problem in the first place. Without backpropagation, a network cannot learn. Backprop is the algorithm that SGD relies on in neural networks to actually train them. So, it's not SGD but backprop that let us do AI.
      That being said, the real winner is raw compute power. Things like SGD and backprop have been around for 40+ years (backprop over 50) and were already used in AI as far back as the 1980's. The problem is that you couldn't handle anything with any meaningful depth until the mid-to-late 2000's because the compute power and memory just weren't there. The explosive advancement of AI really is just a matter of hardware advancement, especially anything that allows for parallel computing. Thank you, video games, for getting someone to invent discrete GPUs.

  • @itsmemario1298
    @itsmemario1298 Před 4 měsíci +4

    Me scared af because some of the "Interesting" algorithms are in my Syllabus

  • @teddy_gramz
    @teddy_gramz Před 4 měsíci +3

    One of your most fascinating videos yet! The fact that you relate so many of these to other fields (quantum physics, medicine, thermodynamics, metallurgy) is really cool. I'd love to see more videos of you relating computer science/programming concepts to other fields and real-world phenomena!

  • @icitry
    @icitry Před 4 měsíci +27

    I've actually had bogosort run successfully a couple of times and even showed it to others, but for some reason nobody seems to remember that...

  • @Gaak967
    @Gaak967 Před 4 měsíci +60

    Loving the consistency of these videos. Keep up the good work.

  • @hashdankhog8578
    @hashdankhog8578 Před 4 měsíci +13

    that graphic you showed which explains the difference between scalers, vectors, matrices, and tensors is incredibly underrated.

    • @binarymystic
      @binarymystic Před 4 měsíci +1

      scalar* (even though the video itself made this typo several times!)

    • @lolatmyage
      @lolatmyage Před 2 měsíci

      @@binarymystic scales

  • @KimOyhus
    @KimOyhus Před 4 měsíci +27

    I actually did invent a simpler improved variant of the marching cubes algorithm, while sleeping.
    And the dream was so vivid I thought I had programmed it, but I could not find the code when awake.
    So I had to write the code again while awake, and it was so easy the second time.

    • @HT79
      @HT79 Před 4 měsíci +13

      r/thathappened

    • @Fran-kc2gu
      @Fran-kc2gu Před 4 měsíci +9

      Link to the repo or didn't happen

    • @KimOyhus
      @KimOyhus Před 4 měsíci

      I use it on my own 3D-printer projects. Code is secret for now@@Fran-kc2gu

    • @lgbtthefeministgamer4039
      @lgbtthefeministgamer4039 Před 4 měsíci +2

      you aren't special, Kim.

    • @KimOyhus
      @KimOyhus Před 4 měsíci

      I have several world records.@@lgbtthefeministgamer4039

  • @R2D21111W
    @R2D21111W Před 4 měsíci +13

    In the lecture 'Logic of living systems' that included Boids we also covered so called 'Core Wars'. Basically its about different assembler code fighting over memory via replication and 'killing' other code. Maybe you are also interested in this subject 😊

  • @edbrito-swdev
    @edbrito-swdev Před 4 měsíci +14

    I was listening to this on my car on my way back home. This was the kind of stuff that made me love learning computer science and made me go to masters and then PhD (which I never finished).
    Nowadays I work doing bullshit software that I hate 99% of the time. Doing enterprise software development is atrocious for the mind and soul.

    • @o0QuAdSh0t0o
      @o0QuAdSh0t0o Před 4 měsíci +1

      What made you stop the PhD? Curious as a CS major working towards Bachelor’s atm

    • @edbrito-swdev
      @edbrito-swdev Před 4 měsíci +9

      @@o0QuAdSh0t0o I was with heavy clinical depression and probably burn out, too. I was completely disillusioned with the bureaucracy of research grants, the "office politics " at the university, the way my supervisors didn't support or supervise, having to teach first year students (which I liked) while doing all else, including review papers that were supposed to be reviewed by my supervisor... Everything was just too much.

  • @linuxguy1199
    @linuxguy1199 Před 4 měsíci +58

    I think i'm gonna start using sleep sort in my production apps, wpuld work wonders to minimize the CPU usage of my apps. I currently use quantum bogosort, but it's a little too CPU intensive.

    • @HT79
      @HT79 Před 4 měsíci +9

      Hey look, it's the I Hate Myself Dev!

    • @nomadshiba
      @nomadshiba Před 4 měsíci

      sleep sort is basically counting sort

  • @TheSnero3
    @TheSnero3 Před 4 měsíci +17

    I love the fact that he continues the simulation story line through every video!

  • @sandorvasas611
    @sandorvasas611 Před 4 měsíci +11

    I DID have dreams about extracting polygonal meshes from isosurfaces when I was 15! Worked on a destructible pseudo-infinite 3D landscape first-person "game" at the time. Marching tetrahedrons was the answer.

  • @josephmalham725
    @josephmalham725 Před 4 měsíci +5

    Just a footnote for anyone who sees it, real world wavefunction collapse isn’t dependent on looking at particles. The word observation is used but that’s a catch all term for some form of physical interaction with the particle. Human vision and perception doesn’t have the ability to magically cause collapse, but if we want to look at it, it has to first collapse.

  • @monkeibusiness
    @monkeibusiness Před 4 měsíci +13

    Shors Algo has recently been improved by Oded Regev. It was basically out of nowhere!

  • @mediumrarechicken837
    @mediumrarechicken837 Před 4 měsíci +23

    Don’t forget about the algorithm that controls us all

  • @augustday9483
    @augustday9483 Před 4 měsíci +8

    Wave function collapse is awesome, procedural-generation in general is a really interesting topic of computer science to me.

  • @112BALAGE112
    @112BALAGE112 Před 4 měsíci +8

    Here's a string search algo faster that Boyer-Moore: the FM-index. For searching pattern P in text T, Boyer-Moore has runtime O(|P|+|T|) but FM-index is O(|P|). That's right, it doesn't depend on the length of the text. You can search gigabytes of text just as fast as kilobytes, provided that you've built the FM-index for it.

  • @ardavanansari
    @ardavanansari Před 4 měsíci +1

    Awesome video as always, I didn't know about Boids and its exactly what I needed in my Threejs project! I would love it if you could make a video about different kinds of noise, like Voronoi or Perlin!

  • @jsjeevasaravanan9298
    @jsjeevasaravanan9298 Před 4 měsíci +3

    Weird algorithms summary:
    Wave Function Collapse (0:43):
    Procedurally generates maps for video games by collapsing possibilities upon observation. Represents an initial map in superposition, selecting tiles based on consistent rules.
    Diffusion Algorithm (1:41):
    Derived from thermodynamics, reverses the process of spreading particles to generate coherent images. Used in image generators like DALL·E and Stable Diffusion, with potential for audio and video generation.
    Simulated Annealing (2:40):
    Optimization algorithm inspired by metallurgy, balances exploration and exploitation. Offers a metaphor for a developer's journey from exploring diverse technologies to specializing in one.
    Sleep Sort (3:40):
    Unconventional sorting algorithm that delegates sorting to the CPU scheduler through thread sleep times. Genius yet impractical, as it relies on the scheduler to execute the sorting process.
    Quantum BOGO Sort (4:19):
    Theoretical sorting algorithm leveraging quantum mechanics and multiverse theory. Hypothetically relies on observing parallel universes to find a pre-sorted array, requiring a portal gun.
    Shor's Algorithm (4:59):
    Quantum algorithm for integer factorization, potentially threatening RSA encryption. Leverages quantum concepts like qubits, superposition, and entanglement to perform parallel calculations.
    Marching Cubes Algorithm (0:00 & 6:10):
    3D mesh generation algorithm used for rendering MRI data in 3D. Processes a 3D scalar field to create a mesh by considering neighboring points and predefined polygons.
    Practical Byzantine Fault Tolerance (PBFT) (6:48):
    Distributed consensus algorithm essential for maintaining network integrity in the face of node failures. Enables nodes to reach a consensus on executing changes despite up to one-third of nodes behaving unpredictably.
    Boyd's Artificial Life Program (7:46):
    Simulates flocking behavior of birds using three simple rules: avoid crowding, align with the average heading, and move towards the center of mass. Demonstrates emergent complexity and beauty arising from simple rules, reflecting natural phenomena.
    Boyer-Moore String Search Algorithm (8:17):
    Efficient string search algorithm that becomes faster with larger search strings. Scans text from right to left, utilizing pre-processed tables for skipping characters based on bad character rules and mismatch occurrences.

  • @JoshuaGottlieb-oz4er
    @JoshuaGottlieb-oz4er Před 4 měsíci +5

    High quality content sir. That was a tasteful blend between memes and informative information

  • @brainxyz
    @brainxyz Před 4 měsíci +7

    Particle Life is another amazing algorithm. It's similar to boids but it's simpler and produces way more complex and emergent behaviors.

  • @Coudnt_think_anything
    @Coudnt_think_anything Před 3 měsíci +2

    I like the idea that there’s a universe where pogosort works every single time and nobody knows why

  • @Linkman8912
    @Linkman8912 Před 4 měsíci +4

    The speedcubing reference with CFOP is perfect

  • @DrakiniteOfficial
    @DrakiniteOfficial Před 4 měsíci +5

    I actually used Wave Function Collapse recently, helping a friend with his project. It was a machine learning class, and the project involved training a neural network to create the *rules* for wave function collapse to do its thing. It wasn't very successful 😆

    • @HT79
      @HT79 Před 4 měsíci

      Thank God it failed. Otherwise that would've been the first step to create the Generals for our AI overlords

  • @anmolsharma9539
    @anmolsharma9539 Před 4 měsíci +2

    This is overwhelming amount of information in just 10 min.
    Thanks Fireship for such quality content.

  • @latenightenjoyer
    @latenightenjoyer Před 4 měsíci +2

    when it comes to the factorization problem and other mathematical problems that most modern cryptographic systems use, there are already out there new algorithms that will replace what is currently in use and that are not breakable/exploitable by paralell/quantum computing (these new algorithms use lattice theory).

  • @0e0
    @0e0 Před 4 měsíci +3

    I believe this year someone improved Shor's algorithm by making it multi-dimensional

  • @desmond-hawkins
    @desmond-hawkins Před 4 měsíci +4

    The input to the marching cubes algorithm is a *scalar* field, not a *scaler* field. A scalar field is just a set of numbers associated to points in space. Each scalar can be a vector, like if you knew the measurements of wind speed and direction at regular intervals within a 3D area you'd be dealing with scalar fields. If it's about 3D modeling the number could be 1 or 0 to represent the presence of an object, or a quantity representing its color or texture, etc. A scaler is something that scales (resizes) something.

    • @gerardmccalloe4049
      @gerardmccalloe4049 Před 4 měsíci +1

      A field of vector isn’t a scalar field, it’s a vector field

  • @nazramirez
    @nazramirez Před 4 měsíci +1

    Soooo much content that by the end of your videos I can’t remember what you said at the beginning of the video.
    Pretty entertaining! Thanks!

  • @julians3danimations
    @julians3danimations Před 4 měsíci +2

    4:14 that's clever as hell

  • @isodoubIet
    @isodoubIet Před 4 měsíci +3

    The figure at 6:22 is incorrect. A tensor is not a 3d matrix, it's a more general concept. A scalar is a type of tensor. A vector is a type of tensor. A matrix is a type of tensor. A 3d array is a type of tensor. Tensors are, very informally, objects with n indices that satisfy certain transformation rules.

    • @Jang09
      @Jang09 Před 4 měsíci

      You're confusing the definitions for math and computer science. They are all essentially arrays of numbers in programming and are just given the names scaler, vector and tensor because they are representations of those objects.
      In math, a matrix is a linear transformation, and a tensor is a multilinear map (given a basis).
      The "informal" definition you mentioned is the one usually given in physics and it's only for the components of a tensor (which is typically all you have to worry about since physics should be background independent) but not the object itself.

    • @isodoubIet
      @isodoubIet Před 4 měsíci

      @@Jang09 No, I am not. First of all, there isn't really a "definition" of tensor specific for computer science, since the term was just lifted from math and physics without much thought and no further theory was developed, and secondly, even if there was, it would still be the case that a tensor has an arbitrary number of indices _because that is the practice where the term tensor is used_ e.g. in machine learning. If you really want to drop the transformation properties, go ahead, but it's pretty silly to come up with a synonym for array. What you cannot do is say it must be 3d, because nobody uses it that way and that's a definition used only by you.
      " it's only for the components of a tensor"
      That is incorrect. It is the definition of the object. A single component of a tensor is not a very useful object.

    • @Jang09
      @Jang09 Před 4 měsíci

      @isodoubIet The transformation law is for the components of a tensor the indices are labeling the components this is pretty standard in physics. The word tensor in computer science is used for multidimensional arrays.

    • @isodoubIet
      @isodoubIet Před 4 měsíci

      @@Jang09 "The "informal" definition you mentioned is the one usually given in physics and it's only for the components of a tensor "
      Is what you said above. You said it's _only_ for the components and not for the whole object, which is definitively incorrect. The transformation laws obviously operate on the components, but that's not what you said, nor is it something relevant or useful to bring up.
      "The word tensor in computer science is used for multidimensional arrays."
      I literally just explained this. 1. The word tensor is not used productively, its just a cute word that people who don't understand what tensors are decided to use for multidimensional arrays 2. computer science already had multidimensional arrays and 3. "multidimensional" means with an arbitrary number of indices, not just 3, precisely as I stated.
      You're trying to be absurdly pedantic, which I can appreciate, but you're also failing miserably. Just stop.

    • @Jang09
      @Jang09 Před 4 měsíci

      @isodoubIet I'm literally just stating that the same word is used in different fields to mean different things 😅 so your first comment doesn't make sense since your trying to use the physics definition on a CS video.
      And yes the transformation law only refers to the components of the tensor as the tensor itself is invariant to a change of basis.

  • @hisshame
    @hisshame Před 4 měsíci +3

    Fireship is the tinfoil-hat-wearing older brother we all need.

  • @icoudntfindaname
    @icoudntfindaname Před 4 měsíci

    Tbh best fireship video ever...
    Pls make more of such videos

  • @isbestlizard
    @isbestlizard Před 3 měsíci +1

    Nature-inspired optimisation is SO COOL i love things like ant colony and particle swarms and genetic algorithms o.o

  • @YounesWinter
    @YounesWinter Před 4 měsíci +6

    While watching this video i had a panic rithms!

  • @cip0llo
    @cip0llo Před 4 měsíci +1498

    i have a bot that likes every one of my comments

    • @umbreonben
      @umbreonben Před 4 měsíci +198

      your comment has one like - seems accurate

    • @Eddio0141
      @Eddio0141 Před 4 měsíci +104

      I'd like to imagine there's only 1 bot and it likes your comments once and nothing else

    • @pixiedev
      @pixiedev Před 4 měsíci +7

      realy ?

    • @abhijay_hm
      @abhijay_hm Před 4 měsíci +15

      no wonder the video mentions most algorithms worth going into dumpsters 🫠

    • @AdidasDoge
      @AdidasDoge Před 4 měsíci +4

      Lol

  • @marshallcapps3084
    @marshallcapps3084 Před 4 měsíci +1

    Crazy to see Boyer-Moore mentioned. I fondly remember their CS class at UT.

  • @CameraShounen
    @CameraShounen Před 4 měsíci

    This video is great! More weird algorithms videos in the future?

  • @perpetu
    @perpetu Před 4 měsíci +3

    Ive realised Algorithm designing first easens coding step instead of directly going to code

  • @phoneix24886
    @phoneix24886 Před 4 měsíci +4

    My favourite is fast inverse square root. Never seen a more weird algorithm than that in my life. Its just so random but also so useful.

    • @desmond-hawkins
      @desmond-hawkins Před 4 měsíci +3

      The one used in Quake III Arena? It's dark magic, the original code even has a line in this function that's commented out with a note that says // 2nd iteration, this can be removed.

  • @stockandoptionstrading
    @stockandoptionstrading Před 4 měsíci +1

    @stephanenouafo
    1 day ago
    0:00 - Intro
    0:43 - Wave Function Collapse
    1:41 - Diffusion
    2:40 - Simulated Annealing
    3:40 - Sleep Sort
    4:19 - Quantum Bogosort
    4:59 - Shor's
    6:10 - Marching Cubes
    6:48 - Byzantine Fault Tolerance
    7:46 - Boids
    8:17 - Boyer Moore

  • @filiformis
    @filiformis Před 4 měsíci +1

    I've actually been looking for something like simulated annealing to help me solve a problem I've been working on. Thanks.

  • @jafrex
    @jafrex Před 4 měsíci +6

    Am I trippin or does Fireship's voice sound AI generated?

  • @draido-dev
    @draido-dev Před 4 měsíci +3

    there is no way jeff is using algorithms, it's all AI, right?

  • @user-gk8jm7tg8j
    @user-gk8jm7tg8j Před 3 měsíci

    Loving the consistency of these videos. Keep up the good work.. Loving the consistency of these videos. Keep up the good work..

  • @Adomas_B
    @Adomas_B Před 4 měsíci +3

    Hey Jeff, since you mentioned weird algorhitms any ideas about extraciting readings in a base-plate of prefabulated aluminite surmounted by a malleable logarithmic casing?

  • @MrAbrazildo
    @MrAbrazildo Před 4 měsíci

    Wow. 6:50, I didn't know about the Byzantine stuff, but I reached a similar conclusion when talking about plain crashes, and how I would code its sensors.

  • @AyanAlam
    @AyanAlam Před měsícem

    Hey I used the BOIDS algorithm to design a student-faculty management system for our uni glad to see it mentioned here

  • @urban8499
    @urban8499 Před 2 měsíci

    Dude I absolutely love your humor and you need to do programmer stand up , such a unique humor I love it !

  • @sirflimflam
    @sirflimflam Před 4 měsíci

    Wave function collapse has been my favorite algorithm for a while now. It's really neat, and it has a badass name.

  • @faithcyril513
    @faithcyril513 Před 2 měsíci

    i love this channel so much!!! True definition of edutainment

  • @trevorsg
    @trevorsg Před 4 měsíci

    Moore was one of my college professors. Loved seeing him pop up at the end!

  • @eatfruitsalad345
    @eatfruitsalad345 Před 4 měsíci +1

    I remember reading a comment on some other CS related vid that said that back in the old days of coding, programs were like masterful works of art kind of like Baroque music - meant to fulfill a certain task as efficiently and basically not be touched after creation. Probably this led to some really great algorithms being created during that time (though I’m not saying we should revert back to unmaintainable obscure “art” code)

    • @conradmbugua9098
      @conradmbugua9098 Před 4 měsíci +1

      so this is where the saying "if it works don't fix it" originates from

  • @lancemarchetti8673
    @lancemarchetti8673 Před 4 měsíci +1

    Cool upload!
    I've been working on a new digital image Steganography idea that doesn't rely on an algorithm, but leaves the target image untouched and applies a given co-ordinate reference to the target bytes for extraction in the correct sequence. So technically, I could extract a 300KB GIF image of a fishing boat from a 124KB Jpeg image of a wedding dress. So basically you could never extract the boat bytes without the coordinate sequence.
    Because the boat has not been algoritmically 'worked into' the target image (wedding dress).
    I'm pretty excited about my findings...

  • @d7ffab979
    @d7ffab979 Před 4 měsíci +2

    Oh yeah, Boyer Moore Horspool, had that one in first semester in Informatics. We also programmed Haskell lol.

  • @roelwestrik2956
    @roelwestrik2956 Před 4 měsíci

    For my major at uni I studied the WFC, Simulated Annealing, Marching Cubes and boids. I never thought I would hear about those ever again but here we are.

  • @morijin6903
    @morijin6903 Před 4 měsíci

    Yo, these algorithm videos are dope dude

  • @realchrishawkes
    @realchrishawkes Před 4 měsíci

    Fireship, you're killing it.

  •  Před 4 měsíci

    Wow thank you man, that double slit aws finally makes sense.

  • @alexdev5734
    @alexdev5734 Před 4 měsíci

    Man I really love that sense of humor in your videos

  • @abhilashbandi3866
    @abhilashbandi3866 Před 4 měsíci

    One of your best yet

  • @Pepso8P
    @Pepso8P Před 4 měsíci

    I was really struggling with trying to understand marching cubes a week ago, what a timing.

  • @plusplus940
    @plusplus940 Před 4 měsíci

    this was great, more vids like this please!

  • @lupirite6373
    @lupirite6373 Před 4 měsíci

    Immediately my favorite 2 algorithms of all time, I'm definitely watching through this video.

  • @Ceelvain
    @Ceelvain Před 4 měsíci +1

    AFAIK, grep was originally written by Ken Thompson. Yes, the one that was involved in Unix and C and make a significant contribution to running regular expressions.

  • @Daniil-gs2wt
    @Daniil-gs2wt Před 4 měsíci +1

    Love this video, very educational

  • @HelloKittyFanMan
    @HelloKittyFanMan Před 4 měsíci

    Cool video. Happy Christmas!

  • @Ulissescars
    @Ulissescars Před 4 měsíci +1

    Wow, what a coincidence, I was reading about Boyer-Moore algorithm yesterday.

  • @corster8221
    @corster8221 Před 4 měsíci +2

    I was hoping you would cover bloom filters

  • @ArcanePath360
    @ArcanePath360 Před 2 měsíci

    That bird flocking 3 rules system, I heard it was 3 different rules:
    1. Flock together
    2. Keep equidistant apart
    3. Avoid predators.
    This last one is what creates the spectacular patterns we see when a large crowd looks almost like smoke from a distance.

  • @hfa7927
    @hfa7927 Před 4 měsíci

    Cutting down on AWS bill is highly compelling explanation for the collapse of the wave function; it makes perfect sense.👏

  • @TheInvestmentCircle
    @TheInvestmentCircle Před 4 měsíci

    Boyer Moore is quite interesting, nice find Sir Ship of Fire.

  • @zaytham760
    @zaytham760 Před 4 měsíci +2

    Could you apply that last one to the library of babel algorithm and find anything? Seems like an interesting project.

  • @b3rgundy
    @b3rgundy Před 4 měsíci

    That was some spicy interesting content, bravo!

  • @EdwinBaranov
    @EdwinBaranov Před 4 měsíci

    I remember making a Boids project, I even uploaded a video. It consisted of rendering a bunch of mouse cursors to the screen where they would fly around your monitor and avoid the "real" mouse
    Made for a good background

  • @chillydoog
    @chillydoog Před 4 měsíci

    Brilliantly done sir.

  • @thesleepykoala
    @thesleepykoala Před 4 měsíci +1

    Sweet Roguelike Tutorial my dude

  • @mcmoneyleswag
    @mcmoneyleswag Před 4 měsíci

    A fireship video that doesn't fill me with existential dread? I'm still full of it, but liking the change of mood.

  • @aaishikdutta290
    @aaishikdutta290 Před 4 měsíci

    one of the best fireship video.

  • @nightfantasygirl
    @nightfantasygirl Před 4 měsíci +1

    Came to watch as soon as I got the notification!

  • @Hakermaker
    @Hakermaker Před 4 měsíci

    I remember how Wave Function Collapse was theme of my first course work i ever made. It's so much easier to understend then other generative algorithms

  • @thegreensphere
    @thegreensphere Před 4 měsíci

    Dude, your humor is amazing

  • @-uz
    @-uz Před 4 měsíci

    Id love another video like this !😊

  • @sachindraragul1094
    @sachindraragul1094 Před 4 měsíci +2

    MRI scan is crazy. It's one of the highest form of engineering the world has ever seen.

  • @vorpal22
    @vorpal22 Před 4 měsíci +1

    I'm surprised you listed simulated annealing instead of a comparable algorithm that doesn't require nearly as much parametric tuning, like the Great Deluge Algorithm or any of its variants. My PhD is in combinatorial design theory, so we have enormous search spaces where we want to find the smallest structures that satisfy a property (so your objective function is the negation of a hill climbing function) and Great Deluge was much easier and of comparable quality for us than simulated annealing.
    Another fascinating algorithm is the dispersive fly algorithm, which is a particle swarm algorihm which is literally based on swatting flies away at a picnic. The visualization of it is very neat to see.
    I had never heard of sleep sort before, but that is definitely a novel algorithm. I suspect the correctness is questionable, especially if you have floating point numbers that are very close together, and on the basis of how accurate your sleep function is.
    I thought ECC (elliptic code cryptography) was largely replacing RSA, given the many advantages ECC has over RSA.
    Marching cubes is a really nice algorithm (i think you meant scalar field, though), as is wave front collapse.
    Another interesting one is a Bloom filter, which is a probabilistic representation of a set: if asked if an element is part of the set, it replies with either:
    1. The element might be in the set.
    2. The element is definitely not in the set.
    Thus, it can generate false positives, but never false negatives, which can be quite useful for certain problems (e.g. checking if a URL is malicious... asking a Bloom filter can tell you that a URL is definitely not malicious, in which case, you're safe, but it might tell you that a URL is not safe).
    Some other data structures and algorithms worth exploring:
    * Bloomier filter (like a Bloom filter but a dictionary with the set being a set of keys)
    * Skip lists
    * Cuckoo hashing (based on the behavior of cuckoos)
    * Rope (for large strings)
    * Trie (a tree very valuable for holding a physical dictionary, such as the words in a Scrabble / Boggle game in an efficient manner)
    * HyperLogLog
    * Zipper (more related to functional programming, where you have a list and want to traverse the list and work with a highlighted position, rather like a zipper is open to a certain clasp)
    * fold and unfold (or catamorphisms and anamorphisms)
    * Perlin noise / other types of noise
    Daniel (The Coding Train) has really good explanations on Perlin noise, marching cubes, and wave front collapse, all with amazing visualizations and completely accessible to relative beginners.
    Of course, there are so many fascinating things in computer science, like Conway's Game of Life with certain rulesets that can generate incredible patterns, such as seeds for mazes.

  • @thygrrr
    @thygrrr Před 4 měsíci +1

    I wonder if sleep sort actually doesn't have an amazing premise. With the right sort of scheduler, it could be an o(n) algorithm.
    However, it's basically a radix sort.

  • @lordew9476
    @lordew9476 Před 4 měsíci +2

    One day, after watching a video from the Veritasium channel, I was inspired to create the same formula they demonstrated in the video. The next day, I woke up in a cold sweat from a nightmare. In the dream, I was writing the same line repeatedly, unable to stop, as if my hands were glued to the keyboard. It was a creepy experience.