If a non-deterministic Turing machine runs in f(n) space, then why does it run in 2^O(f(n)) time? [closed]












0















Assuming that f(n) >= n.



If possible, I'd like a proof in terms of Turing machines. I understand the reason why with machines that run on binary, because each "tape cell" is a bit with either 0 or 1, but in Turing machines a tape cell could hold any number of symbols. I'm having trouble why the base is '2' and not something like 'b' where 'b' is the number of types of symbols of the Turing machine tape.










share|improve this question















closed as off-topic by Raymond Chen, meowgoesthedog, SergGr, James K Polk, OmG Jan 2 at 9:14



  • This question does not appear to be about programming within the scope defined in the help center.

If this question can be reworded to fit the rules in the help center, please edit the question.












  • 7





    I'm voting to close this question as off-topic because it is a theoretical question not a programming question.

    – Raymond Chen
    Jan 1 at 20:57






  • 1





    You should ask this on the computer science stack exchange.

    – Yakov Dan
    Jan 1 at 20:59






  • 1





    Also posted at Computer Science Stack Exchange. Please do not post the same question on multiple sites. Each community should have an honest shot at answering without anybody's time being wasted. If you don't get a satisfying answer after a week or so, you may flag to request migration. Or you can delete the question on one site and then post to another site.

    – burnabyRails
    Jan 2 at 5:56
















0















Assuming that f(n) >= n.



If possible, I'd like a proof in terms of Turing machines. I understand the reason why with machines that run on binary, because each "tape cell" is a bit with either 0 or 1, but in Turing machines a tape cell could hold any number of symbols. I'm having trouble why the base is '2' and not something like 'b' where 'b' is the number of types of symbols of the Turing machine tape.










share|improve this question















closed as off-topic by Raymond Chen, meowgoesthedog, SergGr, James K Polk, OmG Jan 2 at 9:14



  • This question does not appear to be about programming within the scope defined in the help center.

If this question can be reworded to fit the rules in the help center, please edit the question.












  • 7





    I'm voting to close this question as off-topic because it is a theoretical question not a programming question.

    – Raymond Chen
    Jan 1 at 20:57






  • 1





    You should ask this on the computer science stack exchange.

    – Yakov Dan
    Jan 1 at 20:59






  • 1





    Also posted at Computer Science Stack Exchange. Please do not post the same question on multiple sites. Each community should have an honest shot at answering without anybody's time being wasted. If you don't get a satisfying answer after a week or so, you may flag to request migration. Or you can delete the question on one site and then post to another site.

    – burnabyRails
    Jan 2 at 5:56














0












0








0








Assuming that f(n) >= n.



If possible, I'd like a proof in terms of Turing machines. I understand the reason why with machines that run on binary, because each "tape cell" is a bit with either 0 or 1, but in Turing machines a tape cell could hold any number of symbols. I'm having trouble why the base is '2' and not something like 'b' where 'b' is the number of types of symbols of the Turing machine tape.










share|improve this question
















Assuming that f(n) >= n.



If possible, I'd like a proof in terms of Turing machines. I understand the reason why with machines that run on binary, because each "tape cell" is a bit with either 0 or 1, but in Turing machines a tape cell could hold any number of symbols. I'm having trouble why the base is '2' and not something like 'b' where 'b' is the number of types of symbols of the Turing machine tape.







math big-o complexity-theory turing-machines






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 1 at 22:28









templatetypedef

266k69676896




266k69676896










asked Jan 1 at 20:55









Taking1n1Taking1n1

5015




5015




closed as off-topic by Raymond Chen, meowgoesthedog, SergGr, James K Polk, OmG Jan 2 at 9:14



  • This question does not appear to be about programming within the scope defined in the help center.

If this question can be reworded to fit the rules in the help center, please edit the question.







closed as off-topic by Raymond Chen, meowgoesthedog, SergGr, James K Polk, OmG Jan 2 at 9:14



  • This question does not appear to be about programming within the scope defined in the help center.

If this question can be reworded to fit the rules in the help center, please edit the question.








  • 7





    I'm voting to close this question as off-topic because it is a theoretical question not a programming question.

    – Raymond Chen
    Jan 1 at 20:57






  • 1





    You should ask this on the computer science stack exchange.

    – Yakov Dan
    Jan 1 at 20:59






  • 1





    Also posted at Computer Science Stack Exchange. Please do not post the same question on multiple sites. Each community should have an honest shot at answering without anybody's time being wasted. If you don't get a satisfying answer after a week or so, you may flag to request migration. Or you can delete the question on one site and then post to another site.

    – burnabyRails
    Jan 2 at 5:56














  • 7





    I'm voting to close this question as off-topic because it is a theoretical question not a programming question.

    – Raymond Chen
    Jan 1 at 20:57






  • 1





    You should ask this on the computer science stack exchange.

    – Yakov Dan
    Jan 1 at 20:59






  • 1





    Also posted at Computer Science Stack Exchange. Please do not post the same question on multiple sites. Each community should have an honest shot at answering without anybody's time being wasted. If you don't get a satisfying answer after a week or so, you may flag to request migration. Or you can delete the question on one site and then post to another site.

    – burnabyRails
    Jan 2 at 5:56








7




7





I'm voting to close this question as off-topic because it is a theoretical question not a programming question.

– Raymond Chen
Jan 1 at 20:57





I'm voting to close this question as off-topic because it is a theoretical question not a programming question.

– Raymond Chen
Jan 1 at 20:57




1




1





You should ask this on the computer science stack exchange.

– Yakov Dan
Jan 1 at 20:59





You should ask this on the computer science stack exchange.

– Yakov Dan
Jan 1 at 20:59




1




1





Also posted at Computer Science Stack Exchange. Please do not post the same question on multiple sites. Each community should have an honest shot at answering without anybody's time being wasted. If you don't get a satisfying answer after a week or so, you may flag to request migration. Or you can delete the question on one site and then post to another site.

– burnabyRails
Jan 2 at 5:56





Also posted at Computer Science Stack Exchange. Please do not post the same question on multiple sites. Each community should have an honest shot at answering without anybody's time being wasted. If you don't get a satisfying answer after a week or so, you may flag to request migration. Or you can delete the question on one site and then post to another site.

– burnabyRails
Jan 2 at 5:56












1 Answer
1






active

oldest

votes


















4














The important detail here is that the runtime is 2O(n) rather than O(2n). In other words, the runtime is "two raised to the power of something that's O(n)," rather than "something that's on the order of 2n." That's a subtle distinction, so let's dissect it a bit.



Let's consider the function 4n. This function is not O(2n), because 4n outgrows 2n in the long run. However, notice that 4n = 22n, and since 2n = O(n) we can say that 4n = 2O(n).



Similarly, take bn for any base b. If b > 2, then bn is not O(2n). However, we do have that




bn = 2(lg b) n = 2O(n)




because (lg b) n = O(n), since (lg b) is just a constant factor.



It is definitely a bit weird that O(2n) is not the same 2O(n). The idea of using big-O notation in exponents is somewhat odd the first time you see it (for example, nO(1) means "something bounded by a polynomial"), but you'll get used to it with practice.






share|improve this answer






























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    4














    The important detail here is that the runtime is 2O(n) rather than O(2n). In other words, the runtime is "two raised to the power of something that's O(n)," rather than "something that's on the order of 2n." That's a subtle distinction, so let's dissect it a bit.



    Let's consider the function 4n. This function is not O(2n), because 4n outgrows 2n in the long run. However, notice that 4n = 22n, and since 2n = O(n) we can say that 4n = 2O(n).



    Similarly, take bn for any base b. If b > 2, then bn is not O(2n). However, we do have that




    bn = 2(lg b) n = 2O(n)




    because (lg b) n = O(n), since (lg b) is just a constant factor.



    It is definitely a bit weird that O(2n) is not the same 2O(n). The idea of using big-O notation in exponents is somewhat odd the first time you see it (for example, nO(1) means "something bounded by a polynomial"), but you'll get used to it with practice.






    share|improve this answer




























      4














      The important detail here is that the runtime is 2O(n) rather than O(2n). In other words, the runtime is "two raised to the power of something that's O(n)," rather than "something that's on the order of 2n." That's a subtle distinction, so let's dissect it a bit.



      Let's consider the function 4n. This function is not O(2n), because 4n outgrows 2n in the long run. However, notice that 4n = 22n, and since 2n = O(n) we can say that 4n = 2O(n).



      Similarly, take bn for any base b. If b > 2, then bn is not O(2n). However, we do have that




      bn = 2(lg b) n = 2O(n)




      because (lg b) n = O(n), since (lg b) is just a constant factor.



      It is definitely a bit weird that O(2n) is not the same 2O(n). The idea of using big-O notation in exponents is somewhat odd the first time you see it (for example, nO(1) means "something bounded by a polynomial"), but you'll get used to it with practice.






      share|improve this answer


























        4












        4








        4







        The important detail here is that the runtime is 2O(n) rather than O(2n). In other words, the runtime is "two raised to the power of something that's O(n)," rather than "something that's on the order of 2n." That's a subtle distinction, so let's dissect it a bit.



        Let's consider the function 4n. This function is not O(2n), because 4n outgrows 2n in the long run. However, notice that 4n = 22n, and since 2n = O(n) we can say that 4n = 2O(n).



        Similarly, take bn for any base b. If b > 2, then bn is not O(2n). However, we do have that




        bn = 2(lg b) n = 2O(n)




        because (lg b) n = O(n), since (lg b) is just a constant factor.



        It is definitely a bit weird that O(2n) is not the same 2O(n). The idea of using big-O notation in exponents is somewhat odd the first time you see it (for example, nO(1) means "something bounded by a polynomial"), but you'll get used to it with practice.






        share|improve this answer













        The important detail here is that the runtime is 2O(n) rather than O(2n). In other words, the runtime is "two raised to the power of something that's O(n)," rather than "something that's on the order of 2n." That's a subtle distinction, so let's dissect it a bit.



        Let's consider the function 4n. This function is not O(2n), because 4n outgrows 2n in the long run. However, notice that 4n = 22n, and since 2n = O(n) we can say that 4n = 2O(n).



        Similarly, take bn for any base b. If b > 2, then bn is not O(2n). However, we do have that




        bn = 2(lg b) n = 2O(n)




        because (lg b) n = O(n), since (lg b) is just a constant factor.



        It is definitely a bit weird that O(2n) is not the same 2O(n). The idea of using big-O notation in exponents is somewhat odd the first time you see it (for example, nO(1) means "something bounded by a polynomial"), but you'll get used to it with practice.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 1 at 22:07









        templatetypedeftemplatetypedef

        266k69676896




        266k69676896

















            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith