How to prove expontential = O (n)

  • Thread starter Thread starter Physicsnuubie
  • Start date Start date
AI Thread Summary
The discussion centers on determining whether 2^n is in the complexity class O(n!), with the consensus leaning towards the statement being true. Participants emphasize the need to prove that n! grows faster than 2^n for sufficiently large n. A key point made is that for any constant k, there exists a threshold n0 such that the inequality 2^n < k*n! holds true for all n greater than n0. Concrete examples illustrate that 2^n exceeds n! for n values less than 4, but n! surpasses 2^n starting from n = 4. The conversation suggests that establishing a specific k, such as k=1, simplifies the proof, reinforcing the idea that factorial growth outpaces exponential growth as n increases.
Physicsnuubie
Messages
10
Reaction score
0
Hi experts,

I came across a question to determine whether 2^n = O(n!) is true or false. If its true, i need to prove it.

I am aware of the list of growing order functions. So i suppose the statement is true.

However, I can't prove it.
anyone can help me with this? thank you very much!
 
Technology news on Phys.org
Can you show that n! > 2^n for all n above some specific value?
This is easy, once you found the starting point (just calculate the first few values and you will see it).
 
Hi!
Thanks for replying.

I couldn't establish the link between factorial and expontential.

2^n < kn! = kn(n-1)(n-2)...1 for n>n0

this would be the definition of big O. but how can i prove it? what values of k and n0 do i have to take?? thank you very much!
 
Physicsnuubie said:
I couldn't establish the link between factorial and expontential.

2^n < kn! = kn(n-1)(n-2)...1 for n>n0

this would be the definition of big O. but how can i prove it? what values of k and n0 do i have to take?? thank you very much!
It looks like you're on the right track.

I don't want to answer your question for you but I'll lay some pretty big hints since being stuck doesn't really help you...

k and n0 don't take on any specific values. You just have to show that for any k, there exists an n0 such that your inequality will be true. As to how to show this, just take a look at your inequality. Maybe examining some concrete values will help you see a pattern:

n = 1 => 2^n = 2 > 1 = n!
n = 2 => 2^n = 2 * 2 > 2 * 1 = n!
n = 3 => 2^n = 2 * 2 * 2 > 3 * 2 * 1 = n!
n = 4 => 2^n = 2 * 2 * 2 * 2 < 4 * 3 * 2 * 1 = n!

As you can see, 2^n > n! until n >= 4. Do you think there exists an n > 4 such that 2^n > n! again? Why or why not?

If you can answer this, all you have to do in incorporate the constant k in your argument and you will have proven your claim...

Good luck!
 
Jocko Homo said:
You just have to show that for any k, there exists an n0 such that your inequality will be true.
Even better: It is sufficient to find some specific k.
k=1 works here, and you can prove it. That was the hint in my post:

mfb said:
Can you show that n! > 2^n for all n above some specific value?
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top