Binary Exponentiation

  Рет қаралды 96,028

Errichto Algorithms

Errichto Algorithms

4 жыл бұрын

Binary exponentiation (or exponentiation by squaring) is an algorithm that quickly computes a big power a^b in O(log(b)). This tutorial for beginners includes the intuition, examples, and two C++ implementations: recursive and iterative. Check out cp-algorithms.com/ for articles on more advanced algorithms.
Subscribe for more educational videos on algorithms, coding interviews and competitive programming.
- Github repository: github.com/Errichto/youtube
- Live streams on 2nd YT channel and on Twitch: / errichto2 & / errichto
- FB and Twitter: / errichto & / errichto
- Frequently Asked Questions: github.com/Errichto/youtube/w...

Пікірлер: 151
@danieldawson8018
@danieldawson8018 4 жыл бұрын
It's cool to see you get better and better at explaining as time goes on, and you were already good to begin with. Thank you, and keep it up!
@devendrasingh4776
@devendrasingh4776 4 жыл бұрын
Quite obvious as he is a fighter and he knows it.
@marvinlessknown3702
@marvinlessknown3702 Жыл бұрын
He really is very good. Is he russian?? They're the best teachers / mathematicians I've ever. kantorovich being maybe the greatest??
@justsvk1500
@justsvk1500 Жыл бұрын
​@@marvinlessknown3702 polish
@shubhamghule4606
@shubhamghule4606 4 жыл бұрын
Your videos are the reason I started competitive programming 🙌 thanks a lot!
@Errichto
@Errichto 4 жыл бұрын
that's great to hear!
@digitalgandu1511
@digitalgandu1511 3 жыл бұрын
Why ?
@fahadhos
@fahadhos Жыл бұрын
@@Errichto so your code will support this 5^(10^5)?
@hil449
@hil449 5 ай бұрын
@@fahadhosyes, its lob(b)
@rakshithdogra793
@rakshithdogra793 4 жыл бұрын
Hey Errichto i saw your video and got motivated towards CP and today only i solved my first problem on codeforces thank you bro
@Errichto
@Errichto 4 жыл бұрын
Cool, good luck!
@jdhp3696
@jdhp3696 3 жыл бұрын
Errichto, when you first released it, I didn't understand the concept of it, but decided to save it in my playlist to watch it later. Today, I was solving the daily challenge on Leetcode and suddenly remembered your video. Watching it now, things start clicking for me. Thank you so much. Please make more videos like these.
@nickheyer
@nickheyer 2 жыл бұрын
I truly appreciate the "over-explanation" of even the more simple concepts. If anything it is a reinforcement that helps drive the concept home, instead of just skimming over it without any actual absorption.
@tomtan298
@tomtan298 4 жыл бұрын
Your videos are the reason I started competitive programming ! Thanks so much for the contribution to this community,keep up the great effort and keep on pumping out more videos for the beginner series :D
@yeetholmes619
@yeetholmes619 3 жыл бұрын
I like how you smile when you explain the concept, shows your deep love for the art! A pleasure to learn from you !
@ANKITVERMA-fl1zn
@ANKITVERMA-fl1zn 4 жыл бұрын
The Overall Quality of videos are getting better great work indeed! waiting eagerly for Gaussian Elimination.
@manishsharma2211
@manishsharma2211 4 жыл бұрын
Errichto , The picasso of CP👌🔥
@TyButNowYouDie
@TyButNowYouDie 5 ай бұрын
I had already solved this problem recursively before but I didn't understand the iterative solution until watching this video. Your explanation and visualization was really helpful. Thanks!
@hardikupadhyay9837
@hardikupadhyay9837 4 жыл бұрын
Waiting for some more advanced stuff to come :) This videos are really great
@ritikbaid4318
@ritikbaid4318 4 жыл бұрын
Great content Erricto!.would be great to see some videos in the future on segment trees as well!
@tonystarc9567
@tonystarc9567 4 жыл бұрын
Errichto you are a savior.... Please keep up doing this good work ... This matters a lot specially in the countries with small per capita income...
@CarlosMartinez-ed7ey
@CarlosMartinez-ed7ey 10 ай бұрын
Thank you very much, you have a natural talent to explain clearly and make it easy.
@SebastianTysler
@SebastianTysler 3 жыл бұрын
Thanks Errichto! This is good and easy explanation for fast-power (Binary Exponentiation)
@ductran7258
@ductran7258 2 жыл бұрын
Thank you! Your explanation for this algorithm is awesome!
@LearnWithAnmolll
@LearnWithAnmolll Ай бұрын
your article is just awesome
@ashwinmadke486
@ashwinmadke486 3 жыл бұрын
Wonderful explanation ❤️! Understood every little thing. Thankyou 🙏
@Garentei
@Garentei 4 жыл бұрын
Best channel ever. This was actually my Facebook interview question.
@vikku_19
@vikku_19 3 жыл бұрын
Really? Or They asked about of digits? Generally, we're asked about digits of big powers.
@Garentei
@Garentei 3 жыл бұрын
@@vikku_19 No, it was binary exponentiation. But he didn't explicitly ask me to do so, he asked me to optimize a^b.
@johnstephen8041
@johnstephen8041 3 жыл бұрын
Thanks much... keep doing these kind of videos.. really helps!
@MojahooProducer
@MojahooProducer 4 жыл бұрын
wow another video, i thought your stream was planning a lot. thanks for your dedication, remember not to push so hard that you burn out! youre perhaps even the best educational channel i've seen, the way you explain things helps you understand how to get there too.
@Errichto
@Errichto 4 жыл бұрын
:3
@dipankarkumarsingh
@dipankarkumarsingh 3 жыл бұрын
thank you for your wonderful explanation... you are an amazing teacher .
@craigmiller9380
@craigmiller9380 3 жыл бұрын
Best videos on youtube, thank you!
@vinitsharma6630
@vinitsharma6630 9 ай бұрын
i wasted my time in another video watching it again & again trying to figure this out this made it crystal clear covering every doubt the previous video created like the shift and mod ones
@jonathanparlett1172
@jonathanparlett1172 2 жыл бұрын
This was super helpful for my cryptography class thank you!
@shameekagarwal4872
@shameekagarwal4872 4 жыл бұрын
thats very good!! please do cover diophantine equations, fft etc as well...and in such topics maybe include popular question and variations thanks!!
@vedshrutisarkar4319
@vedshrutisarkar4319 3 жыл бұрын
Thank you for a perfect and easy explanation😄
@Aman_Panchal27
@Aman_Panchal27 5 ай бұрын
This video helped a lot. Thanks Man.
@sujan_kumar_mitra
@sujan_kumar_mitra 2 жыл бұрын
Best explanation of binary exponentiation
@yatharthfrommeerut9006
@yatharthfrommeerut9006 4 жыл бұрын
I always thought why we studied this multiplication in principle of programming language. Now I know. Thanks
@siddharthpanigrahi3855
@siddharthpanigrahi3855 3 жыл бұрын
Thank You, explained really well.
@Aditya-fx2tv
@Aditya-fx2tv 4 жыл бұрын
Love your video errichto ❤
@rakeshghosh8234
@rakeshghosh8234 4 жыл бұрын
Great way. Its very nice than previous.
@sajinamin328
@sajinamin328 4 жыл бұрын
awesome video bro. take ❤️ from 🇧🇩
@hackytech7494
@hackytech7494 3 жыл бұрын
Thanks for the explanation
@souravsaha933
@souravsaha933 2 жыл бұрын
Fine answer. Thanks ❤️
@AbhishekSingh-ws5rz
@AbhishekSingh-ws5rz 4 жыл бұрын
Another great video. 😊
@yashrastogi3726
@yashrastogi3726 4 жыл бұрын
Thanks man. Keep it up
@kgCode658
@kgCode658 3 жыл бұрын
wow u also have great teaching skills ..Thanks for helping
@arushsaxena1213
@arushsaxena1213 4 жыл бұрын
great video. It would be awesome if you could make a video on Merge sort tree.
@SmartCoder89
@SmartCoder89 4 жыл бұрын
I like the new background 👍
@em_nikhil_007
@em_nikhil_007 4 жыл бұрын
Are you kidding me ERRICHTO!! How can you read my mind for what topics i need????
@parnabghosh7877
@parnabghosh7877 3 жыл бұрын
great explanation !
@adityatewary7174
@adityatewary7174 4 жыл бұрын
Hey, Errichto thanks for the video. Can you also put some questions link in your description box?
@CodeDecipher
@CodeDecipher 4 жыл бұрын
Great video you upload 👌 I myself make computer science videos . Can you tell me which mic do you use ?
@RamisaAnjum
@RamisaAnjum 2 жыл бұрын
12:10 Thanks, man :D I thought I was the only one.
@asifanwarsajid8332
@asifanwarsajid8332 3 жыл бұрын
Kamil, we need more videos from you. :D
@AbhishekKumar-ky3uc
@AbhishekKumar-ky3uc 4 жыл бұрын
Hi Errichto, I am a subscriber of your KZbin channel and admire your work alot.Wanted to ask for an advice , how to learn solution of a problem when it's solution is not present anywhere on internet. Even if I get a hint it's easier. But there are some problems like asked on an interview whose solution afterwards I get nowhere in internet. How to learns solutions of such problems?
@w4rd3nclyffe74
@w4rd3nclyffe74 4 жыл бұрын
can you make some videos about fractals in action? also, you're videos are *CRAZYYY* you're so good at explaining stuff
@vijendrasaini3050
@vijendrasaini3050 4 жыл бұрын
Just Watching A.B%N and this one pop out. Seems like whole series on NUMBER Theory coming out.😎
@Errichto
@Errichto 4 жыл бұрын
As some people might know from my recent stream, next is matrix exponentiation and gaussian elimination ;) then more advanced topics
@loneshaan8531
@loneshaan8531 4 жыл бұрын
@@Errichto looking forward
@shahbazalam3722
@shahbazalam3722 4 жыл бұрын
@@Errichto Excited to learn Matrix Exponentiation.
@Gauravverma-ed7fw
@Gauravverma-ed7fw 4 жыл бұрын
@Errichto please continue the series for mathematics in CP
@Gauravverma-ed7fw
@Gauravverma-ed7fw 4 жыл бұрын
@@Errichto please continue series for mathematics in CP
@omaraljarrah5089
@omaraljarrah5089 3 жыл бұрын
When the Matrix expo is coming? We have been waiting for a long time now, looking forward to the new video
@CarrotCakeMake
@CarrotCakeMake 4 жыл бұрын
It amazing how there exists and algorithm to create an output of size B*log(A) in time log(B).
@Errichto
@Errichto 4 жыл бұрын
The complexity O(log(B)) assumes that multiplication is done in O(1). This makes sense because we mainly compute a huge power modulo P.
@097kushagrarawat9
@097kushagrarawat9 3 жыл бұрын
really helpful content :)
@carbyte2673
@carbyte2673 8 күн бұрын
Thanks a lot man!
@riadhasan9725
@riadhasan9725 Жыл бұрын
Very helpful 👍
@Ghayth.Moustpha
@Ghayth.Moustpha 4 жыл бұрын
Thank you a lot ❤ Can you please recommend some problems to implemented as a training... Thanks again ❤❤💙💙💙
@omaraljarrah5089
@omaraljarrah5089 4 жыл бұрын
Thank U, U are awesome 🤘🌨❄
@amanrazz2091
@amanrazz2091 3 жыл бұрын
GOD level explantation .... 🖤
@preetamvarun9219
@preetamvarun9219 3 жыл бұрын
Thank you
@dadisuperman3472
@dadisuperman3472 Жыл бұрын
Did you added the tag "Easy" on the thumbnail of the video? It was not there before.
@ChandraShekhar-by3cd
@ChandraShekhar-by3cd 4 жыл бұрын
Errichto Your are the "Einstine of CP".
@ChandraShekhar-by3cd
@ChandraShekhar-by3cd 4 жыл бұрын
@@audiogear4412 Yes I do.
@rajshubhankar1725
@rajshubhankar1725 Жыл бұрын
Hey what if I remove the 0 condition instead of 1. why just if(b==1) return a is not correct ?
@enside8822
@enside8822 3 жыл бұрын
Thank you!!!
@ahsanulameensabit
@ahsanulameensabit 4 жыл бұрын
Waiting for the next one...
@user-ui2qk6jg5n
@user-ui2qk6jg5n 4 жыл бұрын
can u please make a video abot how to setup your cp setup - how to download and use yor ide? would also like to see some c++ toturials tank you very nuch!
@falseee4445
@falseee4445 4 жыл бұрын
Thanks !
@diwyanshukanthwal8669
@diwyanshukanthwal8669 3 жыл бұрын
can you tell about left to right binary exponential
@venkatkumar5220
@venkatkumar5220 4 жыл бұрын
Can you do a video on Matrix Exponentiation?
@rohanprak
@rohanprak 4 жыл бұрын
@errichto *please* make a video on Segment tree *iterative* with *lazy propagation* , everyone teaches recursive one, with memory 4*n and 5 arguments !! non recursive if okay till point updates, but range updates ( lazy propagation ) seems way too complicated. please make a video on *lazy update* on *non recursive segment* tree, we belief you will make it simpler, and also no video on you-tube exists on it.
@ankitchoudhury9678
@ankitchoudhury9678 Жыл бұрын
Damnnn.. love you
@ujjawal_
@ujjawal_ Жыл бұрын
which whiteboard website you are using
@rujixie9025
@rujixie9025 3 жыл бұрын
So neat
@hil449
@hil449 5 ай бұрын
didnt understand a single thing from the inverse part but ok, great video
@kakashisenpai99
@kakashisenpai99 4 жыл бұрын
Bro post your Hackerrank problem , 'Lisa's Workbook' approach and solution!
@II_xD_II
@II_xD_II 4 жыл бұрын
respecckt
@HelloWorld-sy4yc
@HelloWorld-sy4yc 4 жыл бұрын
Do u have a blog or channel in telegram for instance?
@shoryasinghal5241
@shoryasinghal5241 Жыл бұрын
good eric
@harshamusunuri1924
@harshamusunuri1924 Жыл бұрын
I don't understand the iterative part, is there any other simpler way to understand this?
@i.anandsingh
@i.anandsingh 4 жыл бұрын
can you please explain how to find PRIMITIVE ROOTS,? and EULER'S TOTIENT FUNCTION.
@tarsala1995
@tarsala1995 4 жыл бұрын
You can calculate 9^9 I remember that it's 387420489 But it doesn't really matter
@shubhamghule4606
@shubhamghule4606 4 жыл бұрын
Missing the teddy 🧸!
@climbnexplore1187
@climbnexplore1187 4 жыл бұрын
But instead we have alcohol left of errichtos shoulder... wait why does Oxygen have three connections ?
@shubhamghule4606
@shubhamghule4606 4 жыл бұрын
@@climbnexplore1187 Its carbon bro !
@VachaspatiMishra99
@VachaspatiMishra99 4 жыл бұрын
Dimitri finds out.
@himanshudixit490
@himanshudixit490 3 жыл бұрын
Problem: You are given a sequence of length n. Apply to it a given permutation k times. Solution: Simply raise the permutation to k-th power using binary exponentiation, and then apply it to the sequence. This will give you a time complexity of O(nlogk) Can anybody explain what its talking about ?
@i_am_wiz
@i_am_wiz 3 жыл бұрын
I didn’t understand how 0th bit contributes to a....1st bit to a^2.....2nd bit to a^4.....and so on.....can anyone please help?
@iliavasilenko4961
@iliavasilenko4961 4 жыл бұрын
Is it normal when somebody uses ints instead of long long?
@abhudyasingh9109
@abhudyasingh9109 4 жыл бұрын
How to calculate pow(a,pow(b,c)) under modulo
@amalsakkoumi1392
@amalsakkoumi1392 3 жыл бұрын
If a^-b how we can slove it please
@mdfahad2726
@mdfahad2726 4 жыл бұрын
I love your background 😍. Any specific reason why it contains High school physics, chemistry, maths equations?
@Errichto
@Errichto 4 жыл бұрын
All science is beautiful, isn't it?
@5590priyank
@5590priyank 4 жыл бұрын
geeky background :)
@baxi9227
@baxi9227 4 жыл бұрын
don't forget to flex how you came up with matrix expo yourself
@Errichto
@Errichto 4 жыл бұрын
Is it that important though? :D
@mksybr
@mksybr 4 жыл бұрын
@@Errichto What video was that?
@anmol_tomer
@anmol_tomer 4 жыл бұрын
I am a simple man, if(Errichto uploads) { make notes && like the video} # :D
@tombrady7390
@tombrady7390 3 жыл бұрын
wow 200k kamil take a bow
@debadityasutradhar7962
@debadityasutradhar7962 3 жыл бұрын
why cant we just use pow(a,b) by taking a & b as input
@joyo2122
@joyo2122 3 жыл бұрын
🙏
@node3079
@node3079 3 жыл бұрын
4:57 Can someone please explain ..thanks🙏
@MrPatrickbuit
@MrPatrickbuit 4 ай бұрын
I understand it completely but it’s another one of those things I would not have come up with
@hamzakhiar3636
@hamzakhiar3636 3 жыл бұрын
you said recurssive programs are slower than iterative programs why
@sawvikdipto3087
@sawvikdipto3087 8 ай бұрын
Only for My help. Please ignore. def p(a,b): res=1 while b>0: if b%2==1: res=res*a a=a*a b=b//2 return res
@aquibansari3941
@aquibansari3941 3 жыл бұрын
can anyone please tell which tool is he using to draw and sketch
@sakshamjain6900
@sakshamjain6900 3 жыл бұрын
software is ONE NOTE available on windows 10 and he is using graphic tablet to draw on screen (a board and a pen)!
@PankajKumarGladiator
@PankajKumarGladiator 4 жыл бұрын
10:54 😂That awkward moment 😂 !!
@vetiarvind
@vetiarvind 2 жыл бұрын
6:45 - no need to check for odd in the while loop. just do int result = b&1 ? a : 1; //in the init. This is because b can only be odd once in the loop.
Matrix Exponentiation + Fibonacci in log(N)
31:23
Errichto Algorithms
Рет қаралды 65 М.
Square & Multiply Algorithm - Computerphile
17:35
Computerphile
Рет қаралды 273 М.
Just try to use a cool gadget 😍
00:33
123 GO! SHORTS
Рет қаралды 84 МЛН
Tom & Jerry !! 😂😂
00:59
Tibo InShape
Рет қаралды 36 МЛН
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 32 МЛН
A log trig integral with a beautiful result
10:55
Maths 505
Рет қаралды 268
Binary Lifting (Kth Ancestor of a Tree Node)
18:01
Errichto Algorithms
Рет қаралды 92 М.
Binary Exponentiation
14:26
CS with Terry
Рет қаралды 3,8 М.
Binary Search Algorithm - Computerphile
18:34
Computerphile
Рет қаралды 156 М.
Binary Exponentiation | Pow(x,n) | Leetcode #50
10:09
Techdose
Рет қаралды 6 М.
Light sucking flames look like magic
18:05
Steve Mould
Рет қаралды 2,3 МЛН
How To Become Red Coder? (codeforces.com)
4:09
Errichto Algorithms
Рет қаралды 751 М.
Efficient Exponentiation
9:47
mCoding
Рет қаралды 117 М.
Fast Inverse Square Root - A Quake III Algorithm
20:08
Nemean
Рет қаралды 4,9 МЛН