Questions about how specific notions have to be understood as well as conventions of notation.
Questions tagged [terminology]
1144 questions
336
votes
7 answers
What is the definition of P, NP, NP-complete and NP-hard?
I'm in a course about computing and complexity, and am unable to understand what these terms mean.
All I know is that NP is a subset of NP-complete, which is a subset of NP-hard, but I have no idea what they actually mean. Wikipedia isn't much help…
Mirrana
- 4,419
- 6
- 22
- 22
102
votes
3 answers
How does one know which notation of time complexity analysis to use?
In most introductory algorithm classes, notations like $O$ (Big O) and $\Theta$ are introduced, and a student would typically learn to use one of these to find the time complexity.
However, there are other notations, such as $o$, $\Omega$ and…
Miles
- 1,333
- 3
- 11
- 11
90
votes
11 answers
Why is the unit of image size not Pixel²?
If you calculate the area of a rectangle, you just multiply the height and the width and get back the unit squared.
Example:
5cm * 10cm = 50cm²
In contrast, if you calculate the size of an image, you also multiply the height and the width, but you…
JFFIGK
- 1,017
- 1
- 8
- 11
80
votes
4 answers
Dependent types vs refinement types
Could somebody explain the difference between dependent types and refinement types? As I understand it, a refinement type contains all values of a type fulfilling a predicate. Is there a feature of dependent types which distinguishes them?
If it…
Joey Eremondi
- 30,277
- 5
- 67
- 122
79
votes
2 answers
What does the "Lambda" in "Lambda calculus" stand for?
I've been reading about Lambda calculus recently but strangely I can't find an explanation for why it is called "Lambda" or where the expression comes from.
Can anyone explain the origins of the term?
Klangen
- 1,100
- 8
- 15
79
votes
2 answers
What is coinduction?
I've heard of (structural) induction. It allows you to build up finite structures from smaller ones and gives you proof principles for reasoning about such structures. The idea is clear enough.
But what about coinduction? How does it work? How can…
Dave Clarke
- 20,345
- 4
- 70
- 114
66
votes
8 answers
Distributed vs parallel computing
I often hear people talking about parallel computing and distributed computing, but I'm under the impression that there is no clear boundary between the 2, and people tend to confuse that pretty easily, while I believe it is very…
Charles Menguy
- 1,193
- 1
- 10
- 12
63
votes
3 answers
What exactly is polynomial time?
I'm trying to understand algorithm complexity, and a lot of algorithms are classified as polynomial. I couldn't find an exact definition anywhere. I assume it is the complexity that is not exponential.
Do linear/constant/quadratic complexities…
Oleksiy
- 733
- 1
- 5
- 6
57
votes
4 answers
Why polynomial time is called "efficient"?
Why in computer science any complexity which is at most polynomial is considered efficient?
For any practical application(a), algorithms with complexity $n^{\log n}$ are way faster than algorithms that run in time, say, $n^{80}$, but the first is…
Ran G.
- 20,884
- 3
- 61
- 117
54
votes
4 answers
What is the meaning of $O(m+n)$?
This is a basic question, but I'm thinking that $O(m+n)$ is the same as $O(\max(m,n))$, since the larger term should dominate as we go to infinity? Also, that would be different from $O(\min(m,n))$. Is that right? I keep seeing this notation,…
Zeus
- 1,712
- 1
- 13
- 15
50
votes
2 answers
What is the difference between an algorithm, a language and a problem?
It seems that on this site, people will often correct others for confusing "algorithms" and "problems." What are the difference between these? How do I know when I should be considering algorithms and considering problems? And how do these relate to…
Joey Eremondi
- 30,277
- 5
- 67
- 122
48
votes
2 answers
Perplexed by Rice's theorem
Summary: According to Rice's theorem, everything is impossible. And yet, I do this supposedly impossible stuff all the time!
Of course, Rice's theorem doesn't simply say "everything is impossible". It says something rather more specific: "Every…
MathematicalOrchid
- 897
- 1
- 8
- 13
45
votes
5 answers
Difference between Parallel and Concurrent programming?
When looking at concurrent programming, two terms are commonly used i.e. concurrent and parallel.
And some programming languages specifically claim support for parallel programming, such as Java.
Does this means parallel and concurrent programming…
nish1013
- 561
- 1
- 5
- 5
43
votes
4 answers
What exactly (and precisely) is "hash?"
I have heard the word "hash" being used in different contexts (all within the world of computing) with different meanings. For example, in the book Learn Python the Hard Way, in the chapter on dictionaries it is said "Python calls them "dicts."…
Basil Ajith
- 601
- 1
- 5
- 9
42
votes
5 answers
Difference between a turing machine and a finite state machine?
I am doing a presentation about Turing machines and I wanted to give some background on FSM's before introducing Turing Machines. Problem is, I really don't know what is VERY different from one another.
Here's what I know it's different:
FSM has…
Julio Garcia
- 713
- 1
- 8
- 15