Polynomial Time Code For 3-SAT Released, P==NP
An anonymous reader writes "Vladimir Romanov has released what he claims is a polynomial-time algorithm for solving 3-SAT. Because 3-SAT is NP-complete, this would imply that P==NP. While there's still good reason to be skeptical that this is, in fact, true, he's made source code available and appears decidedly more serious than most of the people attempting to prove that P==NP or P!=NP. Even though this is probably wrong, just based on the sheer number of prior failures, it seems more likely to lead to new discoveries than most. Note that there are already algorithms to solve 3-SAT, including one that runs in time (4/3)^n and succeeds with high probability. Incidentally, this wouldn't necessarily imply that encryption is worthless: it may still be too slow to be practical."
Even though this is probably wrong, just based on the sheer number of prior failures ...
Okay, so I'm going to agree with you that it's probably wrong. After reading the paper once last night in a sort of sleepy state, it's certainly a novel way of massaging each 3-Sat problem into an expanded space of memory (compact triplets structures) and then reducing this to solve the problem (all within polynomial time).
So the great thing about this paper is that it's short, it's not theoretical (which is a double-edged sword)/has been implemented (in Java, no less) and it's incredibly falsifiable. I'm not intelligent enough to poke holes in his proofs for this work but people can apply the code to DIMACS formatted problems to their heart's content and if they find one that produces the wrong answer then this is falsified.
I hope we find someone capable of commenting on the proof involving the transformation of the problem from compact triplets formula to compact triplets structure and the hyperstructures presented in the paper. If this is legit, the 3-Sat problem is one that more complex problems are reduced to in order to show that said complex problems are NP-complete. And that's something that's been proved by the Cook-Levin theorem and given in the classic Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and Johnson.
Refreshingly tangible implementation, if I may say so myself!
My work here is dung.
http://en.wikipedia.org/wiki/P==NP
Damn you math geeks. Why must you come here and spew your incomprehensible formulas.
I agree. Can we have a car analogy? Or at least Natalie Portman?
Faster! Faster! Faster would be better!
I tried to look the problem up on Wikipedia, and all I got was inscrutable high-level math. From what I can gather, I seems like something that could be explained in layman's terms. Would someone be kind enough to do so?
OK, I'll admit that I don't know what 3-SAT is, but P==NP (discussion of, not proof of....) should be covered in a Computing Science degree....
Well, it's certainly true that if no one reads, no one (except the author, which is unlikely) can yet say that it is false.
The P vs. NP complete problem was introduced in a mandatory class at Virginia Tech (studying for Computer Science). Math is a big part of a CompSci degree now-a-day.
'N' doesn't 'equal' anything... it stands for "non-".
File under 'M' for 'Manic ranting'
All the experts in the field agree that P != NP
Absolutely untrue. All experts in the field that I've spoken to think that P is probably not equal to NP, but that a proof either way is going to be very hard.
I am TheRaven on Soylent News
If n = 1, not just N == 1.
Sure, I can do a Car analogy. So, you have a car doing 100 mph on a straight road. You get down on your hands and knees in the middle of the road with you head facing the oncoming car about bumper level. If the card hits you and kills you then P=NP, if it hits you and you do not die it is P!=NP, and it the guy driving swerves at the last minuet and completely misses you then the whole thing is wrong. Never said it would be right or make sense but I can make one up.
Damn HTML. Let me try this in Fortran instead:
IF N .LE. 1, not just IF N .EQ. 1
Please turn in your geek card. This is basic CS stuff.
Damn you math geeks. Why must you come here and spew your incomprehensible formulas.
I agree. Can we have a car analogy? Or at least Natalie Portman?
Given a choice, I'd rather have Natalie Portman than a car analogy :)
P=NP IFF N is equal to 1.
QED
Next problem?
See? This is the problem with Dunning-Kruger mathematicians. P could just as well be 0.
No it doesn't. In this case, it stands for nondeterministic.
en.wikipedia.org/wiki/NP_(complexity)
It's more CS than math, although of course CS is also based on math of course.
Nope. There's a case where N can be any value.
Actually "IFF" is incorrect. If N != 1 and P = 0 then your hypothesis is falsified. You should have written "IF".
P=NP IFF N is equal to 1. QED
Next problem?
or P=0
If you understand Turing machines and big-O notation (and if you claim to be a programmer, you should) and polynomials (and if you claim to understand big-O notation, you should):
Computer science IS math. It's the study of computability.
"Computer science is no more about computers than astronomy is about telescopes." - Edsger Dijkstra
Incidentally, this wouldn't necessarily imply that encryption is worthless: it may still be too slow to be practical.
No, it means good encryption will be much less practical. Computers will always get faster so "too slow" is not a good argument. If P != NP you can always make encryption too hard to break by increasing the key size - the cost to encrypt and decrypt only goes up polynomial with key size but cost to break it goes up exponentially, which makes it too hard even for those with supercomputers. If P = NP it means the cost to break it only goes up polynomially. This put the cost to encrypt in the same realm as the cost to break. So you can use much bigger keys but it becomes more expensive and may stop petty criminals but won't stop people with supercomputers.
And the vague reference to "encryption" in TFS is silly; there aren't any crypto algorithms in use whose security rests on P != NP.
Every symmetrical encryption algorithm in the field currently relies on the idea that the computation of the plaintext from the ciphertext and key is easily verifiable, but the computation of the key from the ciphertext is hard. Many can be analyzed if you can perform same difficult mathematics in a short time.
Every asymmetrical encryption algorithm in the field relies on the factoring problem, which is NP hard. If P==NP, then suddenly we know the factoring problem is NP easy. Further, solving one NP hard problem would effectively supply new strategies to solve other NP hard problems. QED.
Encryption relies on the theory that some shit is just hard to do. Not that we don't know how, but that from what we know it's trivially doable but takes too god damn much work that can't be done in any shorter than a huge fucking length of time even with all the resources in the world pointed at it.
Support my political activism on Patreon.
Yep the IFF is mistated since P = 0 with N = any number statisfies the equation.
I have nothing against NP, but what does P stand for?
PlusFive Slashdot reader for Android. Can post comments.
Stop reinforcing the stereotype that math geeks have no humor.
there aren't any crypto algorithms in use whose security rests on P != NP.
You mean except RSA?
"Damn you math geeks. Why must you come here and spew your incomprehensible formulas." - by alta (1263) on Thursday January 20, @11:40AM (#34940832) Homepage
Heh, it is HARD, but not "incomprehensible": See, I recall those "P=NP" set theory type problems in DISCRETE MATH (part of CSC degree requirements alongside Calc - which the FUNNY PART is, I have yet to use that (@ least in Database/Information Systems type programming))...
While initially learning it, I also recall thinking to myself:
"DAMN, this stuff is tough!"
Mainly because in that type of "math" (discrete seemed to me a "mishmash" of MANY concepts like this one, logic, & more) you have to THINK/CONCENTRATE, like mad, & your answers are many times only CLOSE approximations as well.
APK
P.S.=> If you've ever seen the film "21" (about Johnny Chan, the poker player, from what I understand)? They're largely applying that portion of DISCRETE MATH in it (calculating the odds of an occurrence from a subset of possibles)... apk
P=NP IFF N is equal to 1.
QED
Next problem?
You're being silly, but I can think of one solution that works for any value of N, so I'm afraid you blew it.
To give a nice simple explanation ...
You have a bunch of interesting problems, which currently can only be run in exponential time - making them infeasable.
The thing is, there is no proof that they are only exponential - AND every problem in this set can be converted to all other problems in that set.
So the first person to solve one in Polynomial time solves all of them - and pretty much changes the world - including making encryption useless, and other things very effective - such as bin packing, travelling through a number of nodes (TSP) and other things.
P and NP are sets...
Math is a big part of a CompSci degree now-a-day.
lolwut? Since when has math NOT been a big part of computer science when computer science is a branch of mathematics? You must conflate computer science with programming or software engineering.
"All the experts agree" means nothing if there is a mathematical proof otherwise. 2 is not equal 2 because of a consensus.
Interesting. You claim you can guarantee that it is wrong, but you offer no proof to that effect. I am compelled to suspect, therefore, that you do don't know what it actually means to "guarantee" something.
It may very well be wrong, and it almost certainly actually is, but unless you could offer a proof to that effect, your claim of guaranteeing it to be so is wholly meaningless.
If, however, you've been holding out on us and do actually possess such a proof, then please, either present it here or post a link to it.
File under 'M' for 'Manic ranting'
Car analogy:
Assuming that cars can be proven on a test track quickly, can the cars themselves also be built quickly?
Sorry. That's the best I can do.
My blog
Haha. Never heard that joke before. </sarcasm>
Has anyone figured out a proof that the backtracking is limited in some way that creates a polynomial bound? There are ample examples of problems where some backtracking occurs, and I'm wondering if it isn't possible to construct a problem class where it actually ends up going over a larger than polynomial portion of the search space.
Reading the submission in front was like trying to write ancient Greek in MS OFFICE! The summary made my ache and I felt like I was caught inside a 4/3 pi r cubed loop statement!
Ok, let's see if we can clear the fog a little:
3-SAT is a special case of the boolean formula satisfiability problem, i.e. finding a valuation for a set of boolean variables so that the formula is satisfied.
"P" is a class of problems which take an amount of time to solve that is bounded by a polynomial expression in the size of the problem. For example, sorting a list of n elements with a commonly used sorting algorithm takes n*log(n) units of time.
"NP" is a class of problems which can be solved in polynomial time on a non-deterministic automaton. A problem is called NP-complete if there is a polynomial time algorithm which transforms it into another problem which is known to be NP-complete. That means if you can find a solution for an NP complete problem that runs in polynomial time on a deterministic machine, then you can also find such a solution for all NP complete problems. Famous NP complete problems include the aforementioned boolean formula satisfiability problem and the traveling salesman problem, where the task is to find the shortest route for visiting a number of locations and returning to the starting point.
So far, most people believe NP to be a larger class of problems than P, i.e. P not equal NP.
All of this is computer science, which many believe to be applied math, so let's not argue about that.
"3 SAT" is just a boolean expression
SAT are a class of problems of "is this boolean expression satifiable" or "is there a truth value (true/false) that we can assign each variable such that the boolean expression is true. "-a and a" is not satifiable for example.
3 SAT is just a special case of the general sat problem in that its structure of the expression to evaluate is precisely:
(a or b or c) and (-a or b or -e) and ("another clause with exactly 3 variables") and ("another clause with exactly 3 variables")... and so on.
Great! Now prove that N = 1, or, alternatively, that N != 1.
Turns out that that is the hard part, since we don't know what makes something NP, we just know about a whole bunch of problems that seem to be similarly hard.
At least atmospheric-noise-derived one time pads will still be valid. Pity to have to go to that, though.
In Xanadu did Kubla Khan
A stately pleasure dome decree
NP is short for Natalie Portman, and the car analogy follows:
Adleman's chief scientist, Nickolas Chelyapov, offered this illustration: Imagine that a fussy customer walks onto a million-car auto square and gives the dealer a complicated list of criteria for the car he wants.
"First," he says, "I want it to be either a Cadillac or a convertible or red." Second, "if it is a Cadillac, then it has to have four seats or a locking gas cap." Third, "If it is a convertible, it should not be a Cadillac or it should have two seats."
The customer rattles off a list of 24 such conditions, and the salesman has to find the one car in stock that meets all the requirements. (Adleman and his team chose a problem they knew had exactly one solution.) The salesman will have to run through the customer's entire list for each of the million cars in turn -- a hopeless task unless he can move and think at superhuman speed.
This serial method is the way a digital electronic computer solves such a problem.
I like what's already posted. But here's another one:
I want to pick the lock on your car. It's one of those fancy code entry locks and I only have to press 3 buttons, but that's not really important.
Everyone has been saying that it's very, very hard (NP) to crack the code by trying combinations. Now there's a guy saying it's not quite as hard (P) and he wants everyone on the internet to check his work.
Okay... fair enough...
Outside of quantum computers, do nondeterministic turing machines even exist?
File under 'M' for 'Manic ranting'
I have code for a solution to the Goldbach Conjecture, but it doesn't fit into my free storage on github....
. . .
"he's made source code available"
Since checking the algorithm requires reading the source code - I would assume he's not spreading the source code of malware, because all interested parties WILL BE TRYING TO UNDERSTAND THE SOURCECODE.
I should add: mathematicians have been saying that NP is much, much harder than P, and it has always seemed logical to say that.
But if this guy can "crack the code" (that is, solve the 3-SAT problem), he has proven that NP is not harder than P.
The debate about whether NP is harder than P has been going for a long time.
Couldn't the existence of this working polynomial-time algorithm mean that the previous work which showed the 3-SAT problem to be NP-Complete was in error? That seems more likely than P==NP.
You being a geek requires a CS degree? Who knew.
Gotta take issue with this. The assertion that 2==2 is getting down to the axiomatic level, which means that yes, it is based on consensus. Or at least it is not too many steps removed from an axiom that is based on consensus.
If P==NP, then any company that wants to pump 10 mil into a fab building will be able to compete with their chip layout strategies.
Much better car analogy. Thank you. :)
My blog
Like you, I have no idea what the article or summary means. Unlike you, in the finest traditions of slashdot, I will have strong opinions here shortly like I have in many other subjects. Abrasive, irrefutable, and loud ones.
Well, there's spam egg sausage and spam, that's not got much spam in it.
No, but this is basic CS stuff (not insofar that it is easy to understand, but easy to have an idea what it's about.) "P=NP?" is a famous problem, and solving it in the unexpected way might have an impact on many things that geeks care about.
More like except virtually any PKI algorithm. RSA is not alone in this.
My blog
Are we expected to get a CS degree before reading Slashdot?
Can you imagine how much better this place would be if that were the case?
Well there probably should be at least one refuge where computer science nerds can discuss news that matters. Unlike mainstream media the news here shouldn't have to pander to the lowest common denominator - if you don't care for this article move on to one in a field that you are interested in. If you are not a nerd at all then news for nerds may not appeal to you.
Yes. Any other questions?
I read the internet for the articles.
Are we expected to get a CS degree before reading Slashdot?
Yes. And a PhD before posting. Didn't you read the T&Cs?
I am TheRaven on Soylent News
Axioms have nothing to do with consensus. There is nothing as fixed axioms on which people agree.
Different axioms just give you different mathematics.
Axiomatic is just the step-stone of a theory but you can pick any axioms you want.
what does P stand for?
Portman.
Oh wait, sorry, I was answering the comment above yours...
coding is life
Or P=0 and N=anything.
Therefore you fail alegbra.
QED
I can't really comment on the validity of the claims in the article. It's unclear if he has indeed proven P==NP. I do know that this article clearly proves I am only of average or slightly sub average intelligence.
Polynomial time (P) or Nondeterministic Polynomial time (NP)
I love to slaughter the english language.
Absolutely untrue. All experts in the field that I've spoken to think that P is probably not equal to NP, but that a proof either way is going to be very hard.
Absolutely correct. The difference between say, computer science and sociology, is that computer scientists require absolute proofs. In other words, if you claim that P==NP, as this paper does, then I require you to show that it is so for all possible inputs.
The paper, in fact, does not show such a thing. To the contrary, it fails to show a sound and complete reduction of 3-SAT to hyperstructures, or CTF or CTS or whatever other acronyms were made up by the author. I'm not saying that he's wrong, simply that this is not a proof - it is only a claim. The author claims to have "proven" his algorithm is polynomial time by giving it a smattering of inputs and noting that the time the algorithm took to complete increased by a polynomial factor of the input size.
Clearly the author has not studied his algorithmic complexity texts well enough to understand the definition of Big-O. Big-O only claims that algorithmic growth is asymptotic to a given curve as the input size goes to infinity from some value n0. In other words, many algorithms may display linear growth to a point, and then become exponential after input size greater than n0. A statistical analysis will not prove anything. The author needs to do a full algorithmic analysis instead.
I predict this paper will be rapidly debunked and we will still not know if P==NP.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
While you did a good job at explaining the general relation between NP-hardness and cryptography, there are several factual errors in your message. First, there are many asymmetrical encryption algorithm that are not based on factorization: many are based on the discrete logarithm, and other hard problems are used in a few construction. Second, we don't know whether factoring is NP-hard and it is conjectured not to be NP-hard (which does not mean we think it's polynomial!).
Also, you seem to have missed the point of NP-harder or NP-completeness: if we can sole one NP-hard problem in polynomial time, then by definition this proves that P=NP and we can solve all NP problems in polynomial time. (A problem is said to be NP-complete if it is NP-hard, and it is itself in NP)
https://secure.wikimedia.org/wikipedia/en/wiki/Nondeterministic_Turing_machine#Comparison_with_quantum_computers
I believe the burden of proving this correct rests with the author of the paper. I have read his paper, and he has not proven that his algorithm is polynomial, nor has he proven that his algorithm is a sound and complete reduction from 3-SAT. There's no need to say he's wrong, only that he certainly hasn't proven himself to be right.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
Best car analogy i can think of is:
;)
Is it easy to both plan a car trip and check that your car trip is planned well. If yes, the P=NP, if no, then P!=NP, if you cant determine either yes or no then its all wrong
I love to slaughter the english language.
I think God might be sending us a low bandwidth message via P=NP and P=!NP papers. The message can theoretically be extracted by assigning 1 to P=NP and 0 to P=!NP then arranging the bits in the chronological order of the papers (or maybe that should it be 0 to P=NP and 1 P=!NP). The problem is that you can't find "papers" and tech reports which have disappeared down the memory hole and lots of the nutjobs won't have put dates on their offerings. http://www.archive.org/ to the rescue!
The P vs. NP complete problem was introduced in a mandatory class at Virginia Tech (studying for Computer Science). Math is a big part of a CompSci degree now-a-day.
Math has always been a big part of CS. Early CS degrees tended to be a specialized math degree and some CS programs were still under the math department in the 1970s (some in the 80s?) as opposed to CS being its own full fledged department.
One-time pads will always be strong encryption, but they are impractical to the point of uselessness for the vast majority of our uses.
We hope your rules and wisdom choke you / Now we are one in everlasting peace
And NS/. is a set as well. It is defined as the set of /.ers that do not understand sarcasm. I believe you have just proven that it is not empty.
The Internet has given stupid people the resources of intelligent people.
Best car analogy i can think of is:
;)
Is it easy to both plan a car trip and check that your car trip is planned well.
If yes, the P=NP
if no, then P!=NP
if you cant determine either yes or no, then its all wrong
I love to slaughter the english language.
Well, it will be pretty much like it is now but with even more people who are completly clueless when it comes to small microcontrollers and electronics.
doh, posted in wrong spot =(
I love to slaughter the english language.
might have an impact on many things that geeks care about.
True, but it's equally fair to say:
That bit of pedant-ism aside it is basic CS, if you think you know anything about computers you should be aware of algorithms and the P!=NP debate. You don't have to care, but you do have to know. Just in the same way you have to be aware of basic atmospheric chemistry, the greenhouse effect and grade 9 biology to have an opinion about the effect of changes to the concentration of atmospheric CO2 on global temperatures.
The number of so called "software-engineers" who have inserted O (n^2) code into my projects makes me weep.
XML is a known as a key material required to create SMD: Software of Mass Destruction
There can't be a proof.
A problem is in NP if you can reduce it to 3-SAT (in polynomial time).
Just one question.
If it's proven that P==NP, does it necessarily follow that for an arbitrary NP hard problem, an algorithm to solve it in linear time will be found?
I think P==NP implies that such an algorithm *exists*, but surely finding it is another matter?
Nope, and that's why NP-complete problems are currently not calculable (at least not in the true, best case scenario, unless you get really lucky and your algorithm succeeds on an early attempt). The concept of a nondeterministic Turing machine is basically that you have a machine that as it goes along to solve the problem, can instantaneously split itself into multiple copies to try to calculate different paths along the algorithm.
If it helps, picture it like a hypothetical infinite core processor. Every time the algorithm hits a branch (if, switch, that kind of idea), rather than simply choose one of them to follow, it creates a copy of itself on another core and each copy starts going through one of the paths. On our limited and finite machines, this gets impossibly large very quickly (think lots of recursion). So if they really did prove P=NP, that's a major leap for Computer Science. But it's still hard to believe, seeing how many other people have spent so long trying.
woosh!
Every asymmetrical encryption algorithm in the field relies on the factoring problem, which is NP hard. If P==NP, then suddenly we know the factoring problem is NP easy. Further, solving one NP hard problem would effectively supply new strategies to solve other NP hard problems. QED.
No. You're neglecting the discrete log problem which underpins Differ Hellman. There are probably other esoteric algorithms that rest on other hard problems like the knapsack problem. And I believe you also misstated the RSA assumption.
The RSA assumption is that computing the Euler phi/totient function for n=p*q where p,q are prime is HARD*. The RSA assumption is RELATED to but NOT EQUIVALENT to factoring. The relationship is that RSA can be reduced to factoring, i.e., factor n into p,q and return phi(n)=(p-1)(q-1). That's a single direction. The reverse, a reduction from factoring to RSA/totient is NOT KNOWN to exist.
So you're correct in the sense that if factoring is easy, RSA is easy. If RSA is easy, factoring may still be HARD*. Reductions in both directions would prove "necessary and sufficient/if and only if".
*HARD has a technical definition that's not necessary for this comment.
You are expect to understand this site is for nerds. If you aren't a math nerd, then move to the next article. IF you want to be pandered to, do to a different site. I'll assume something Murdoch owns would suit your ilk.
If you want to understand, ask, or take a class.
do NOT whine that you don't understand it, so it shouldn't be here.
The Kruger Dunning explains most post on
It's also a giant mecha.
Yes, but once they have a proof it should be very easy to verify.
Yes. Nondeterministic simply means you make a random decision at each branch. Just hook up a real random number generator to your PC and use it to control the branching and bam.
For more information about what experts think about P =? NP, check out Bill Gasarch's wonderfully entertaining poll: http://www.cs.umd.edu/~gasarch/papers/poll.pdf
I predict the same thing; however how awesome would it be it the paper is correct!
I wouldn't use the term debunked. Shown to be incorrect is better. Which is fine and expected in science. To me ;debunked; implies some sort of fraud is taking place.
The Kruger Dunning explains most post on
nah, it just says that any nondeterministic problem should also have a polynomial time solution. Linear time solutions are not covered by the conjecture.
I love to slaughter the english language.
I'd arguee that being a computer geek requires that you understand what the (possibly) biggest discovery about computing of the decade is.
Rethinking email
Next frontpage article title: "Malware Authors Target Computer Scientists with Complexity Theory"
The Internet has given stupid people the resources of intelligent people.
errr, i should say, any nondeterministic polynomial time problem should also have a deterministic polynomial time solution... All in all, its a very specific solution to a very specific class of problem.
I love to slaughter the english language.
Encryption relies on the theory that some shit is just hard to do. Not that we don't know how, but that from what we know it's trivially doable but takes too god damn much work that can't be done in any shorter than a huge fucking length of time even with all the resources in the world pointed at it.
This is a good intuitive description. But a more complete definition involves reductions to those hard problems. A well-formed proof should demonstrate that the encryption algorithm is HARD if and only if a fundamental problem is HARD. Those fundamental problems are typically number theoretic in nature, e.g., factoring. But there should be a demonstrable reduction in both directions to show equivalence.
As I said earlier, RSA is not equivalent to factoring. It lacks a proof from factoring to RSA. DH and the discrete log problem has an equivalence relation (reduction in both ways). And to me, that makes it stronger. Someone could find a great way to compute Euler totient functions (potentially much easier than factoring) and RSA would be weak.
Well, yes, but I wasn't attempting to be exhaustive in list.
Every asymmetrical encryption algorithm in the field relies on the factoring problem, which is NP hard. If P==NP, then suddenly we know the factoring problem is NP easy.
Incorrect.
That's exactly right!
Please read these two blog posts about the consequences of P=NP from an expert in the field:
http://rjlipton.wordpress.com/2009/09/18/why-believe-that-pnp-is-impossible/
http://rjlipton.wordpress.com/2009/02/18/insider-baseball-and-pnp/
I'd think it's equal to the identity set.
Good read.
All the experts in the field agree that P != NP
Absolutely untrue. All experts in the field that I've spoken to think that P is probably not equal to NP
What? You do know that != means "not equal", right?
My personal wild guess is that a large number of the subproblems of an NP question will turn out to be solvable in polynomial time, but a core of "prime problems" will remain which require non-polynomial time.
I have this idea since I know of the queens problem - there are a lot of easy solutions for certain sizes of the board.
Hey don't blame me, IANAB
I won't say every asymmetrical encryption algorithm relies on the factoring problem, as there are asymmetrical algorithms which are proof against even quantum computing attacks.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Who are you the fucking geek police? Fuck you! You don't get to dictate to us which of us are and aren't geeks. Fucking asperger retard....
I hope you were aiming for irony.
XML is a known as a key material required to create SMD: Software of Mass Destruction
the factoring problem, which is NP hard.
Quick correction. The integer factoring problem is in NP, but is not known to be NP-hard. Here are a couple of explanations:
http://cstheory.stackexchange.com/questions/159/is-integer-factorization-an-np-complete-problem
http://en.wikipedia.org/wiki/Integer_factorization
Factoring problem hasn't been proven NP hard. In fact, since it's both in NP and co-NP, it's suspected to be neither in P nor NP-hard (provided that the entire purported hierarchy doesn't collapse under P=NP).
here is the paper: http://arxiv.org/abs/1011.3944
Title: Non-Orthodox Combinatorial Models Based on Discordant Structures
Authors: V. F. Romanov
NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
Maybe there wasn't enough space in the margin.
Contentment is the greatest wealth
- Sukhavagga Dhammapada
Contentment is the goal behind all goals.
probably
But now, Romanov claims that it is sufficient merely to say the mathematical equivalent of "Please" (P). Naturally, people are skeptical.
All the experts in the field agree that P != NP
Absolutely untrue. All experts in the field that I've spoken to think that P is probably not equal to NP
What? You do know that != means "not equal", right?
Precisely. "not equal" rather than "probably not equal".
Posting anonymously to preserve mods on this thread.
Although RSA is not *equivalent* to factoring, a solution to factoring is a solution for RSA - you've got the direction wrong. If I have a factoring oracle then any RSA problem includes a modulus defined to have exactly two prime factors. If pass this modulus to the oracle then I have p,q and can thus solve the RSA problem (through standard decryption).
The number of so called "software-engineers" who have inserted O (n^2) code into my projects makes me weep.
What if the code is a matrix multiplication algorithm?
well through induction nothing is provable beyond what we have defined as axiomatic. at some level you just have to assume things.
Are we expected to get a CS degree before reading Slashdot?
If we make a rule that we can't discuss anything someone doesn't know about, then we guarantee that no one learns anything.
I would prefer to have the opposite rule: If all I learn by reading something is someone's opinion, then it should be banned.
RSA does not depend on P vs NP. It is currently an open question what the complexity of factoring is.
Then Neo gives the solution in bullet-time and kicks some machine-butt before anyone notices that he got the solution from the oracle who looked up the result from the last iteration.
Every asymmetrical encryption algorithm in the field relies on the factoring problem, which is NP hard. If P==NP, then suddenly we know the factoring problem is NP easy. Further, solving one NP hard problem would effectively supply new strategies to solve other NP hard problems. QED.
Factoring is *not* known to be NP hard. It is in NP, however.
It's quite possible that a fast factoring algorithm could come along, and not tell people a thing about P ?= NP.
The number of so called "software-engineers" who have inserted O (n^2) code into my projects makes me weep.
What if the code is a matrix multiplication algorithm?
I'm not saying n^2 is unacceptable in all circumstances. (And I was not clear)
My problem is clueless people who would not know an algorithm if it hit them in the face not taking into consideration overall product scalability.
n^2 is ok if you know you only have a handful of inputs, however if you try to do something like filtering an email inbox with a polynomial algorithm then you're unlikely to make customers happy.
XML is a known as a key material required to create SMD: Software of Mass Destruction
I wouldn't go that far. I would actually have said the opposite---that if a problem can be verified to be correct in polynomial time, it stands to reason that there should be a way to solve it in poly time. After all, there are hundreds of heuristic approaches that solve them for certain subsets of the problem, certain special cases, etc. All that is missing is a generalizable approach. It might be true that no way to generalize them exists, but if it is, it's the sort of right that requires extraordinary proof in my book.
I've been saying for years that I thought it would be downright hilarious if somebody proved P = NP and really messed with the heads of theoretical computer scientists, so I'm kind of hoping this pans out in a schadenfreude sort of way. That said, statistically, given how many attempts people have made to prove this one way or the other, it probably won't.
Besides, P = NP if N = 1. Everyone knows that. :-)
Check out my sci-fi/humor trilogy at PatriotsBooks.
Is it possible that he just disproved that 3-SAT is in NP-Complete?
You left out the most important part. It takes lots of work to find the car, but it takes a short time to check that it's the right car once it's found. In other words, if you're lucky and always guess the right car on your first try (in other words nondeterministically), you can check that it's the right solution quickly (in polynomial time). Nondeterministic polynomial time = NP.
In 3-SAT, it takes exponential of time to find the assignment to the variables that satisfies all the conditions, but it takes polynomial time to check whether a particular assignment is correct. It takes exponential time to factor a product of two large primes, but it takes polynomial time to make sure it's the correct factorization.
What a fool believes, he sees, no wise man has the power to reason away.
So my understanding is that P is the set of problems both verifiable and solvable in polynomial time.
NP is the set of problems verifiable in polynomial time, but we can't currently solve in polynomial time
NP-Complete is a set of problems in NP where one can be reduced to another in polynomial time, so if you could solve one in poly time you could solve all in poly time
3-SAT is NP-Complete.
So assuming this code is correct (which sounds very unlikely), wouldn't it merely prove that NP-Complete is in P? Not to say this wouldn't be a major result, but that's not the same as the more general P==NP.
Am I misunderstanding something?
I stole this Sig
Good call. You're right. It will be shown to be a false claim. I never intended to imply that the author is intentionally misleading anyone, only that his methods are not rigorous enough to prove his claim.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
I honestly have a difficult time with some of this theoretical stuff.
For instance, the whole 0.999... = 1 thing. I think that's a load of crap. You can bring in all sorts of complex calculations, but the fundamental rules (as we're taught) say a run-on number like 0.999... goes on forever. No matter how far back you get, there's a 9 at the end. That 9 isn't going to get a 1 added to it and start a domino effect to magically make it 1.
Can anyone explain to me how someone would even believe this particular statement?
Random Thoughts From A Diseased Mind (Not For Dummies)
The assertion that 2==2 is getting down to the axiomatic level, which means that yes, it is based on consensus. Or at least it is not too many steps removed from an axiom that is based on consensus.
"a == a" is not an axiom, it is the definition of the "==" symbol.
Axiom != definition.
The consensus in only in that we write the symbol as "==" and not for example as "$&".
Red flag: In the paper, he uses the hand-waving term "in parallel" (with emphasis) in the proof section when describing an algorithm involving an unbounded value "k".
Integer factorization is not believed to be in the NP-complete class.
Second, we don't know whether factoring is NP-hard and it is conjectured not to be NP-hard (which does not mean we think it's polynomial!).
What other option is there? It's either polynomial (P) or not polynomial (NP), isn't it?
Give me Classic Slashdot or give me death!
Yeouch, so all nerds who aren't math nerds are fans of Fox News? I was quietly reading and learning a bit until I saw this post.
Saying Android is a family of phones is akin to saying Linux is a family of PCs.
Exponential is still pretty darn hard for large powers. Easier than brute force search, but every additional bit in key length will add to the exponent, and it's awfully easy to add bits to keys, assuming your key is not already e.g. 4096 bit long.
Check your CS terms. "NP-hard" is not code for "NP is hard". Its a different complexity class altogether. Unlike the class NP, we have no reason to believe that NP-hard problems are reducible to NP-complete. The statement "If P=NP, then NP-hard=P" is false.
Hehe, I was thinking the same thing. Unless now-a-day means "at least as early as 1989" in my case.
Saying Android is a family of phones is akin to saying Linux is a family of PCs.
Not to get completely off the subject, but there are many perfectly understandable proofs of why 0.999... = 1. For instance, one of the things that defines what a real number is that it is not exactly the same as a different number. Seems pretty common sense, huh? So what number, exactly, comes between 0.999... and 1? Like you said, those 9s go on forever, so if there is nothing that you can add to the first term to turn it into the second, they must be the same. They are just 2 different ways of expressing the exact same number. You probably don't have a problem with the idea that 1/3 = .333..., so multiply both sides by 3 and what do you get?
There's even a wikipedia page that I'd totally paste in here if Chrome was able to do so.
-- Give me ambiguity or give me something else!
Next frontpage article title: "Malware Authors Target Computer Scientists with Complexity Theory"
Doesn't this seem like the best way to spread the Snow Crash virus?
And while I'm thinking of it, I had a realization: The Entertainment in Infinite Jest seems like a rip-off of Snow Crash in Snow Crash.
"I zero-index my hamsters" - Willtor (147206)
If you have a secure channel to transmit the one time pad, you could use that for the message instead and not need encryption.
Just because it CAN be done, doesn't mean it should!
And if each car is located in a different city, then he'll have to go travelling in order to test all the criteria. Of course, he wouldn't want to end up hitting the same city twice...
WARNING! This girl exceeds the MAXIMUM SAFE standards established by the FDA for BRATTINESS
there's a 9 at the end
This is why your understanding fails. There is no end.
What is really so complicated by these simple examples:
1/3 + 1/3 + 1/3 = 3/3 = 1
And since 1/3 exactly equals 0.333... we have:
0.333... + 0.333... + 0.333... = 0.999...
And since the two sums are exactly equal, 0.999... equals 1. It's not really that magic, and your normal daily life will not be affected. It is, however, true.
c++;
In fact to the authors credit, he knows this is a big claim, so he's posting everything and saying: "Check this out". As opposed to several other "I have proof" people who when asked to show their work, say "no"
whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
Can anyone explain to me how someone would even believe this particular statement?
Sure. Think about 1 - 0.999... it gives you 0.000... = 0. You might worry about a 1 sitting out there in the "infiniteth" decimal place, but remember that you can never get there; the 1 never happens. Since 0.000... = 0 then 1 - 0.999... = 0 and 0.999... = 1. Nothing fancy.
Sure, I have some troll biscuits in my pocket that I'd like to get rid of.
What is 1/3 as a decimal?
If it has a decimal representation at all, then it is .333...
That is to say that it is a decimal point followed by an infinite
number of 3s.
So what is .333... * 3?
Of course it's .999... .999 followed by an infinite number of 9s. As you say:
which implies
No matter how far back you get, there's a 9 at the end.
But .333... is equal to 1/3.
1/3 * 3 = 1
Thus, .333... * 3 = .999... = 1
QED
I find the notion of repeating decimals kind of silly, and would just
prefer to say that 1/3 has no exact representation. As far as I can
tell from calculus class this doesn't change anything.
I've seen a claimed polynomial algorithm before where the exponential portion was made very small and hidden away. It may have been polynomial for all reasonable test cases, but given large enough input it was going to be exponential. Test cases prove nothing.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Take a look at it through a fairly simple algebraic proof.
// decimal multiplication by 10 means we just shift to the left and the infinite decimal expansion isn't affected.
// the infinite decimal expansion is still a number and there's no reason we can't subtract it.
// if we take the difference from the above subtraction and "undo" the multiplication in step 1, we need to divide by 9 because we've just removed one of what we multiplied.
1.) 0.99999... * 10 = 9.99999...
2.) 9.99999... - 0.99999... = 9
3.) 9 / 9 = 1
Therefore 0.99999... = 1. Q.E.D.
I'm disabling ads until because I choose not to reward redesigns that are less usable than "view source".
You didn't learn about convergence in whatever passes for precalculus mathematics in your country.
Interesting. You claim you can guarantee that it is wrong, but you offer no proof to that effect. I am compelled to suspect, therefore, that you do don't know what it actually means to "guarantee" something.
I've noticed people use it that way more and more, though. Guarantee is, more or less, replacing "opine," just as literally is replacing "metaphorically."
you're probably just trolling, but this statement has been proven to be true over and over again. Your mistake is thinking that you have to stop at some finite point. If that is the case then yes, 0.9999 is less than 1, but the sequence of nines is infinite.
Think of it this way. Say there is a finite number of nines. In that case, you'd have that
1=0.9999...+e
where e is a finite quantity. The thing about e is that the more nines you add at the end, the smaller it gets. After some finite but incredibly big number of nines, e should be extremely close to 0, but still greater than 0. But the fact is that if you add an infinite number of nines (where infinite could be defined as a number greater than all natural numbers), e will be exactly 0. Therefore, 1=0.9999...+e=0.9999...+0=0.9999...
Because, duffus, the rules you were taught about run-on numbers weren't right. Maths follow a clearly enumerated set of axioms; those axioms can be used to derive theorems that have as their consequence 0.99... == 1. That it's unintuitive is more a reflection of you, rather than "magic". It's not magic at all. It is "believed" because that's the consequence of the derivation.
http://en.wikipedia.org/wiki/0.999...
What end?
It's not that 0.999... turns into 1, 0.999... IS 1. 0.999... is simply another way to represent the number 1, just like 2/2 is. Not only that, there is no 9 at the end because there is no end.
The proof is that there is no proof.
This is one of those extraordinary-claims-require-extraordinary-evidence cases. "I tried random inputs" is not good enough. To take it seriously, those random inputs should correspond to hard problems -- for example, use this supposed 3-SAT solver on reductions from integer factoring to factor an RSA number.
There isn't a 9 at the end. That's what the ... means. There is no end. If you sum 9*10^-n for all positive integers n, you get 1.
What a fool believes, he sees, no wise man has the power to reason away.
lolwut? Since when has math NOT been a big part of computer science when computer science is a branch of mathematics? You must conflate computer science with programming or software engineering.
Math shmath. It's much more logic than math. Unless you count logic as part of math, but I don't.
Finite State Machines? Logic
Grammars? Logic
Resource Contention? Logic
Composite Systems? Logic
Encryption? Logic and the ability to multiply and divide numbers, which is about as "math-centered" as paying your bills.
With the first link, the chain is forged.
The courses where you learn these concepts come *long* before getting CS degree, although I don't expect anyone but a CS or CIS or CSE or a math major to actually take such a course.
3-SAT is typically the first case you consider, as soon as you get past the stage of deterministic finite automata and learning about what is and what is not computable. Then you get into classification of algorithms before you start the heavy analysis.
According to the book I used in the dark ages (Garey/Johnson ISBN 0-7167-1045-5)
3SAT is ..., c[m]) of clauses on a finite set U of variables such that |c[i]| = 3 for 1 <= i <= m.
3-SATISFIABILITY
INSTANCE: Collection C = {c[1], c[2],
QUESTION: Is there a truth assignment for U that satisfies all the clauses in C?
The standard proof that this result is NP-complete is pretty simple, which is why to claim otherwise is so astounding.
I'm disappointed with the comments where we go straight from 3SAT to "omg crypto iz broked!!!11!"
I'd be very impressed if someone took the 3SAT result, mapped it onto 3-Dimensional Matching ("3DM", also known as The Optimal Marriage Problem) or Vertex Cover or some other elementary set that is assumed (proven!) NP-complete.
-fb Everything not expressly forbidden is now mandatory.
>Yes. And a PhD before posting. Didn't you read the T&Cs?
First year, second semester undergrad discrete math topics are hardly "PhD level"...
-fb Everything not expressly forbidden is now mandatory.
The parent post is very insightful. The algorithm in question relies on trading extra memory for the processing power. As soon as they run out of available physical memory the processing requirement curve will shoot up exponentially.
Let say highest degree of the polynomial that bounds solution time is larger than number of dimensions in our universe. Then start increasing values of n. Even if available memory and processing power is fine grained, tightly packed, and evenly distributed over all physical dimensions you still have to send subset of the problem out and fold results back in. If you subscribe to the notion of limited speed of light then it takes time to reach all processing power and get results back.
In general I would say that N != NP and trying to solve unbounded NP problem leads to the expansion of the universe. The formula for 3-SAT upper bound will turn out to include Cosmological constant :)
This is mostly the problem. There is no 9 at the end, it is infinite.
Look at it another way. Give me a real number between 1.0 and 0.999... , or inversely, there is no real value that you can add to 0.999... to make it 1.0. A+B=C. If A=0.999... and C=1.0, B cannot have any value except 0.
Or, with fractions. 9/9 = 1, right?
Lets say we have 1/9. It equals: 0.11111...
9 * 1/9 = 9 * 0.1111...
9/9 = 0.9999...
Thus 1 = 0.9999...
But this is a simplistic proof that hides a lot of assumptions. If you want more in-depth analytic proofs, you should take a look at wikipedia:
http://en.wikipedia.org/wiki/0.999...
I think it may be a little more complicated than this. I have been out of school for a while so I am not up to speed on proofs, theorems, etc.
I think the hole in your logic may be that 0.333... == 1/3. I think 0.333... may only be a very close numerical approximation of 1/3, but 1/3 cannot be expressed absolutely as a number (even assuming infinite 3s).
I have read about the issue of 0.999... = 1 several times, but the explanation is much more complex than this.
Next /. headline: Malware solves P=NP, achieves sentience
1/3 has no exact representation.
1/3 WOULD have an exact representation in a different number system.
If we used, say, base 3 instead of base 10, 1/3 would be 0.1
Do not be silly, the key could have been exchanged earlier, one time pad is an excellent encryption method that has been used in practice.
First, the discrete logarithm problem is equivalent to factoring - i.e. a problem of one type can be translated into the other. Second, we can construct a binary circuit to compute products, and iteratively apply 3-SAT to narrow down the inputs until we have a factorization. So if 3-SAT is in P, then so is factorization and discrete logarithm. I'm not aware of the opposite being proven - that if factoring is in P, then P==NP does not necessarily follow.
NP does not stand for Not Polynomial
it stands for polynomial on a non-deterministic turing mahcine.
If P != NP then there is an infinite number of complexity classes between P and NP-complete.
For the record, A problem is NP-complete if it is in NP and harder than any problem in NP.
A problem is np-hard if it is harder than any problem in NP (it may or may not be in NP)
Being NP-Hard is a much higher bar than simply being in NP. A problem H is NP-hard if and only if there is an NP-complete problem L that is polynomial time Turing-reducible to H.
Or as Wiki puts it, "NP-hard (non-deterministic polynomial-time hard), in computational complexity theory, is a class of problems that are, informally, 'at least as hard as the hardest problems in NP'."
rage, rage against the dying of the light
I saw code like this when I worked on an implementation of Levenberg Marquardt that I had to migrate, on a neural network toolkit, and on an Ant Colony Optimization program I ended up optimizing. It's full of needless interfaces and classes, and it's too objectified to be understandable. Usually, I throw everything away and start from scratch.
By the way, I'll give credit where credit is due: if the algorithm is what it's stated, then let congratulations be given to them. Until then, all I see is a yucky mess.
Never send a comp-sci to do an engineer's work.
I rarely respond to comments. Also, don't ask for clarifications: a brain and Google are faster, believe me!
Except that nothing you've stated proves that 0.333... + 0.333... + 0.333... = 0.999..., thus making your argument an example of circular logic.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
NP doesn't stand for non-polynomial: it stands for non-deterministic polynomial. Informally what that means is that you can do it in polynomial time if you're a supernaturally good guesser. Formally, it means that a solution certificate exists which can be checked in polynomial time.
Actually I think that anyone taht does not have a CS degree will not understand why it is important to begin with.
No, it is not. Both sequences, 0, 0.9, 0.99, 0.999... and 1, 1.0, 1.00, 1.00, 1.000 approach to the same number: 1.
And because both are Cauchy sequences, and both converge to the same limit, the axioms of the Real Numbers defines the limits of both sequences as being equal.
What mathematicians did was to axiomatically declare 0.999999... and 1 being the same. There is not much to understand about it. It's The Axiom.
... and your attitude is the reason why i, as a mathematician will always find work :P
oh, and PLEASE write some encryption algoritm yourself. Go on, its primitive arithmetics and logic after all... what could possibly go wrong?
BTW. you fail at classifying everything as "logic". That stuff USES logic, it ISNT logic. Categorisation fail...
You do get 1 = 1, but you don't get 1 = 0.999... like you claim you do. By analogy with limits, the limit of an equation as x approaches y is not the same as the same equation evaluated at x = y.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
I'm not disputing that point... I'm disputing the GP's use of the word "guarantee". Unless he has proof to the contrary, he cannot guarantee what he is claiming.
File under 'M' for 'Manic ranting'
lolwut? Since when has math NOT been a big part of computer science when computer science is a branch of mathematics? You must conflate computer science with programming or software engineering.
Math shmath. It's much more logic than math.
It is Axiomatic Mathematical Logic, a branch of Mathematics. So to say CS is "more logic than math" does not make any sense, unless you are conflating Axiomatic Mathematical Logic with Logic in the broader/philosophical sense.
Unless you count logic as part of math, but I don't.
How does it feel to stand in a does-not-compute vantage point? Seriously, any CS graduate worth its CS salt knows (or should know) that the logic piece in computer science is simply axiomatic mathematical logic and set theory.
Finite State Machines? Logic Grammars? Logic Resource Contention? Logic Composite Systems? Logic Encryption? Logic and the ability to multiply and divide numbers, which is about as "math-centered" as paying your bills.
No.
Yes. Every single example you mentioned involves theory of computation (which utilizes but it is not the same as axiomatic mathematical logic) in addition to discrete mathematics, combinatorics, axiomatic set and category theories, and graph theory. Please entertain me by telling me that the last four are not branches of mathematics.
As for encryption, it is based on number theory and abstract algebra. Fields, rings, eliptic curves, that's all way above the ability of multiplication and division, serious subjects in Mathematics proper. Seriously, where did you get your CS education from?
Logic is math. Or maybe math is logic... Either way, if you prove it by writing on a blackboard rather than doing a study or building a crazy expensive matter collider you're doing math. Also do you really think that Encryption can be truly understood without number theory? I think Fermat would like to have a word with you... Or databases without relational algebra? Take a formal logic course outside of the philosophy department and try to claim that logic isn't math, it could hardly be anything else.
I am trying to parse the article now. There's very likely a fish in there somewhere.
Note that the Cornell library has hosted at least one other "proof" by a Russian researcher that 3SAT != NP (and that TSP != NP as well).
0.9999... = 1 - 0.0000... = 1.
No matter how far back you get, there's a 0 at the end. That 0 isn't going to get a 1 added to it and start a domino effect to magically make 0.9999... less than 1.
Wasn't that easy?
Pirate Party UK
Deliver the one time pad in person then suddenly any old means of communication are secure as long as your OTP lasts.
And if you don't like that
1) 3 * 1/3 = 1 .9...
2) 1/3 = 0.3.....
3) 3 * 0.3... = 1
4) 3 * 0.3... =
There for 0.9... = 1
If you can't be good, be good at it!
And if one of those cities is Konigsberg he'll never get it done...
There is something wonderful in seeing a wrong-headed majority assailed by truth. ~John Kenneth Galbraith
You do get 1 = 1, but you don't get 1 = 0.999... like you claim you do. By analogy with limits, the limit of an equation as x approaches y is not the same as the same equation evaluated at x = y.
Yes, yes it is. In fact that's the easiest way to calculate the limit if the function is defined at that point. It's just that functions that are defined at the limit you're looking for aren't particularly interesting. Limits get more interesting at asymptotes and infinity where you can't just plug in y into f(x).
This reduces to your not being knowledgeable about limits and the infinitesimal. I suggest that you learn enough calculus to understand infinite geometric series. You can do the proof that way.
This isn't opinion,this is mathematical fact that 0.999...=1.
Let x = 0.99999...
So mulptiple both sides by 10:
- 10*x = 9.99999...
Subtract x from both sides
- 10*x - x = 9.99999... - x
Substitute 0.9999.... for x on the right side
- 10*x - x = 9.99999... - 0.99999...
Simplify:
- 9*x = 9
Therefore:
- x = 1
- 0.9999... = 1
I read TFA and all I got was this lousy cookie
Do you have evidence that RSA security rests on P != NP? Because I'm pretty sure none of R, S, nor A have figured that out.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Really, y'all proved P==NP in your first year of undergrad and didn't bother sharing it?
Except that nothing you've stated proves that 0.333... + 0.333... + 0.333... = 0.999...
Well, if you follow the the "logic" of original complaint: No matter how far back you get, there's a 3 at the same place in all three numbers, and that adds to 9. That 9 isn't going to get a 1 added to it and start a domino effect to magically make it change. :-)
Someone had to do it.
Integer factorization is not (yet) np-complete, so technically no one can do what you are asking, even if they have a legitimate proof of p=np.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Discrete log is also in NP--I can verify your proposed solution by simply exponentiating it, which is a very fast operation when working in modular arithmetic. In fact, any reasonably normal asymmetrical encryption algorithm pretty much has to be in NP since you can verify a proposed private key for any public key by simply encrypting and decrypting something, both of which should be polynomial time or else the system is probably too slow to be useful anyways.
Sure, it's been used. But there are very limited situations where this is practical. Certainly almost none of the encryption on the internet could be done this way. The difficulty of distributing pads can't be hand-waved away.
We hope your rules and wisdom choke you / Now we are one in everlasting peace
(Devil's advocate post, ymmv)
While I agree that the result is almost certainly incorrect, IMO his arguments appear to be analytical enough to be considered a proof (perhaps a "sketch," and again, he's likely made a mistake). Even though the arguments are quite rambling, he insists on using too much of his own terminology, and he cites almost no previous literature (though he attempts to justify this near the end.)
Also, he does offer a runtime analysis: O(mn^4) in Section 6. As for the space/time tradeoff mentioned by others, I'm no complexity theorist but as I understand it no poly-time algorithm can use exponential space (how can you access exponential memory locations in polynomial time?)
Finally, the inclusion of real-machine performance isn't that surprising given that he has software: I myself have been asked for this by reviewers even after giving a big-O analysis of the algorithms (in cases where I had produced real software).
The snow doesn't give a soft white damn whom it touches. -- ee cummings
If you let that kind of post get to you, slashdot is of no use to you.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
I see people having trouble with this concept time and again and the truth is that it just seems so silly once you understand the different number types. Basically you're confusing the real 0.333... with the rational 0.333. Read more here.
bite my glorious golden ass.
Cryptography has a ton of math in it now. Ie, probability and statistics to decide how effective an algorithm is, such as why is 128 bit encryption good enough but 64 bit isn't. Or understanding what the heck Elliptic Curve is. Why is SHA-256 better than SHA-1?
Sure there's tons and tons of logic involved. But then mathematics is really a sub branch of logic in many way.
In specific cases the limit of an equation as x approaches y does indeed equal the equation at x = y, but it doesn't work as a general rule therefore you can't say it's the same thing.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
No.
That's not the circular part.
That part is relatively trivial. Do forgive trying to express this in ASCII...
Sum[from 1 to infinity]{3/(10^n)} is 0.3333...
This is just the basic definition of what that means.
3 * 0.3333...
= 3 * Sum[from 1 to infinity]{3/(10^n)}
= Sum[from 1 to infinity]{3*3/(10^n)}
= Sum[from 1 to infinity]{9/(10^n)}
= 0.9999...
Again this is pretty basic arithmetic, distributive property of multiplication if you want to be pedantic.
No, the circular part of the logic is starting with 1/3 = 0.333... to show you 1 = 0.999... Why in the world do you believe 1/3 = 0.333...? But this is why folk earlier suggested that if you had no issue with 1/3 = 0.333..., then you shouldn't have any issue with 1 = 0.999...
At any particular n, the sum is less than the fraction it represents. This the same issue for 1/3 as it is for 3/3 or 1.
And you just realized that? If so I think you still have time to drink some vodka.
No. It is possible that you might get the degree after you start reading slashdot.org. But, really, going through life without a CS degree? How will you organize people at a party all trying to dip chips into a salsa bowl unless you know the exponential backoff algorithm?
All experts in the field that I've spoken to think that P is probably not equal to NP, but that a proof either way is going to be very hard.
Since I'm interested in this particular field, allow me to point to a column that appeared in the ACM SIGACT News a couple of years ago, containing the results of an informal poll among mathematicians about their opinion on P=?NP and their estimates when this problem would be solved.
The majority of them (but not all) believe that indeed P!=NP; several also thought that P=NP, or that the question of whether P=NP was independent (of ZFC). A significant number also did not commit to an opinion either way.
There's a PDF available here, too.
-John
For instance, the whole 0.999... = 1 thing. I think that's a load of crap. You can bring in all sorts of complex calculations, but the fundamental rules (as we're taught) say a run-on number like 0.999... goes on forever.
What does the sequence of symbols 0.9999... actually mean? That's your problem. You need to get clear on what a real number is before you can tackle that. I agree that the "proofs" using simple algebra are unconvincing, because, again, they just blindly apply operations to these sequences of symbols without considering their meaning.
One way to define the real numbers is as Cauchy sequences of rationals under an equivalence relation. Rationals are in turn defined in terms of integers, which are defined in terms of naturals. Understand the definitions and everything will start to make sense. Math isn't universal truth; it's just stuff people made up: Figure out what, exactly, the standard definitions are.
This paper said you might not need as many dots in step 2, so you get to PROFIT sooner!
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Guessing which car matches the criteria, or which half of the lot to check first, and being correct, is the talent of an oracle. Oracles don't really exist of course, they're just imaginary things used for reasoning about these problems. Nondeterminism is not having to guess, not having to choose one car at a time (determine which car to look at next) to check for a match. All possible solutions could be checked in parallel.
How? There is no known practical way to do that. Imagine if the salesperson could call on an army of fellow salespeople who can each check a different car. If there were enough, each one would have to check only one car, and the correct car would be found very quickly. Unfortunately, it is much easier to make the lots impossibly big than to assemble enough salespeople to handle any size lot. Another way to achieve such parallelism is if you can use quantum superposition, as in Shor's Algorithm for factoring. Since we haven't managed to handle more than a very few quantum bits for more than a few seconds, we haven't been able to try out Shor's algorithm on any sizable factoring problem. Even if we could, we don't know if 3-SAT (or any other NP complete problem) can be formulated so that quantum superposition could be applied. In other words, factoring may be an easier problem than 3-SAT but still harder than a problem in P.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
You do get 1 = 1, but you don't get 1 = 0.999... like you claim you do. By analogy with limits, the limit of an equation as x approaches y is not the same as the same equation evaluated at x = y.
Yes, you do get 1 = 0.999...! Why would you not? Each and every 3 turns into a 9. This just simply shows that 1 = 1 and 1 = 0.999... express the exact same thing.
Your limit analogy is both flawed and completely irrelevant.
Romanov's algorithm strongly resembles an algorithm from a debunked paper published around 2004.
Sergey Gubin wrote a series of similarly designed proofs around 2004. Instead of Romanov's notion of "concretization," Gubin used the term "depletion." Gubin's paper was debunked by some students at the University of Rochester.
Both reduction algorithms throw out key information about the original truth tables that cause the final solutions to be incorrect.
Constructive and exhaustive proofs that P != NP should never be trusted. I'm not a huge fan of formality in proofs, but sometimes you really need it.
If your system has a fixed amount of memory, then I suggest that they really added O(1) to your projects :-)
:-) then it's not an issue.
Ie, I do linear searches all the time in code, and put that in a loop so that it resembles "O(n^2)". However when I know my linear searches are highly bounded (max array size of 8
I've seen programmers go too far the other way. Using C++ maps for something that should be a trivial array lookup, and then sticking that in a critical loop, then wondering why everything is so slow and memory is getting fragmented.
No. You're neglecting the discrete log problem which underpins Differ Hellman. There are probably other esoteric algorithms that rest on other hard problems like the knapsack problem.
Discrete log is in NP. Knapsack is in NP. In general, if a solution to a problem can be checked in polynomial time (regardless of how difficult it is to actually find that solution in the first place, which might be much harder), then the problem is in NP. Since for practical purposes encryption/decryption needs to be fairly quick, it's likely that a lot of encryption algorithms will fall into this space...
Need to type accents and special characters in Windows? Use FrKeys
That's an interesting and appealing point, but intuitively it seems to me like looking at the problem from the wrong direction (left to right rather than right to left). Don't know what to make of it, though.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
If 1/3 is 0,33333... then 0,99999... is 1.
Some of my favourite people are from th US; Vonnegut, Chomsky, Bill Hicks.
We aren't talking about the general case, we're talking about the specific case of .999... == 1. In fact I clearly stated that it's a way to solve for the limit when the function is defined at that point which explicitly defines the specific cases where applicable.
.999..., but 2*.333... == .666...
just because I write 1/3 or .333... doesn't mean they're different numbers. Same with 3/3 and .999... and 1. Just 3 different ways to write the same thing.
Also, you've yet to explain why 3*.333... == 1 and not 3*.333...==
Well, no. In ALL cases where f(x) exists, the limit of n as n approaches x is ALWAYS f(x). It is the same thing.
Kindly explain to me how 0.333... * 3 = 1, if 0.999... != 1.
RSA does not depend on P vs NP.
Unfortunately that's not true...
It is currently an open question what the complexity of factoring is.
That's true, but it is known that it's in NP—what's not known is exactly where in NP it fits...
Need to type accents and special characters in Windows? Use FrKeys
If this solution is true his algorithm is going to be published in the most famous journals and being taught at university starting next semester. Safety by obscurity has been proven wrong many times and hiding the source code to a soon-to-be published algorithm is not going to do anything.
I think the hole in your logic may be that 0.333... == 1/3. I think 0.333... may only be a very close numerical approximation of 1/3, but 1/3 cannot be expressed absolutely as a number (even assuming infinite 3s).
um, no. 0.333... is the decimal expansion of 1/3. It just has a clumsy decimal (base-10) expansion. The ternary (base 3) expansion is quite simple: 0.1.
Not all geeks are computer geeks. I'm a physics geek myself, so I can run an experiment to see if something is true or not, which means that P/NP problems are alien to me. Fascinating approach, though.
Genocide Man -- Life is funny. Death is funnier. Mass murder can be hilarious.
In grad school we also learned P-complete problems, the equivalent of NP-complete but for the P problem set (ie can transform any P problem to a P-complete problem in polynomial time). Those were a bitch to prove.
There is also NP-Hard. Essentially NP-complete is the intersection of NP and NP-Hard.
People always talk about the impact P==NP would have on cryptography, but a much more world-changing impact would be on mathematics:
...it would transform mathematics by allowing a computer to find a formal proof of any theorem which has a proof of a reasonable length, since formal proofs can easily be recognized in polynomial time. Example problems may well include all of the CMI prize problems.
http://en.wikipedia.org/wiki/P==NP#Consequences_of_proof
Oh yea, factor me again!
And none of this "assume a non deterministic Turing machine" solution like you're in a hurry, I want the full P-time and P-space satisfaction!
No. It's not complicated.
I think the hole in your logic may be that 0.333... == 1/3. I think 0.333... may only be a very close numerical approximation of 1/3, but 1/3 cannot be expressed absolutely as a number (even assuming infinite 3s).
No. 0.333... == 1/3 by definition; that's what the notation means. You're thinking about this wrong; a decimal isn't a "numerical approximation", it's notation for, well, if you want to get technical about it then the notion of a Dedekind cut may help.
I am trolling
Lots of really smart mathematicians have been trying to find proofs that P==NP for a long time, and they've got lots of good tools to work with. None of them have succeeded. They've also been trying to prove that P!=NP, but that's probably much harder to prove, or at least to validate, since a constructive proof that P=NP has lots of testable examples.
Occasionally people make assertions that they've got a proof that either P==NP, or P!=NP; if they're smart they get them peer-reviewed and find the mistake, but maybe they get to improve our understanding of the general problem or some more specific hard problem, so at least they get a paper out of it. If they're not smart, they just publish it on the InterWebs, and either become net.kooks or have someone gently explain to them how the academic research process works, but the fact that they don't know suggests that they haven't read all the standard research. If they're greedy, they try to patent it, and if it gets past the Patent Examiners they can try selling it to a Patent Troll.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
1/3 == .333... given .999... .666... .999... .999...
.333... doesn't mean they're different numbers. Same with 3/3 and .999... and 1. Just 3 different ways to write the same thing.
3*.333...==
2*.333... ==
3*1/3 ==
3*1/3 == 3/3 == 1 ==
just because I write 1/3 or
Key words being "where f(x) exists".
I can't unless I explain it in terms of fractions. Getting 0.999... from 0.333... strikes me as an artifact of notation rather than one of quantity, but I admit this is something I can't prove.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
Social Processes and Proofs of Theorems and Programs by DeMillo, Lipton, and Perlis. Let the social process begin.
Ok, let's go off-topic here. What is the difference (really, subtract) between 0,9999... and 1?
Rethinking email
Interesting. I'm stumped.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
That is wrong. In all cases where F(x) is CONTINUOUS near x0 the limit of f(x) when x -> x0 is equal to f(x0).
Rethinking email
Not true. You can legitimately have a function that is defined as:
f(x) = 42 if x is 3; x if otherwise
The limit of f(x) as x approaches 3 is 3, but f(3) is 42. Your statement holds for all cases where f is continuous. In fact, your statement is the definition of a continuous function.
Yes, exactly! In fact 0.333... is just a notation for the number that is the limit of the series: 0.3, 0.33, 0.333, ..., and that limit is exactly 1/3.
Right, and 1 exists. QED.
There is no artifact of notation, here. 0.999... is the sum of 10^-n for n of one to infinity. The limit of that expression as n approaches infinity is 1. Since the limit exists and real numbers are defined at 1, the sum of 10^-n as n goes to infinity IS 1. Therefore, 0.999... is 1.
The 0.333... * 3 = 0.999... business is mostly just a shorthand way of making that same argument.
.5 * 10 = 5 .5 = 4.5
.5 = 1 Q.E.D.
5 -
4.5/4.5 = 1
Isn't using arbitrary numbers to prove something awesome?
Actually, it's unknown whether integer factorization (into primes) is an NP problem. Although a P-time solution to an NP-complete problem class (e.g. 3-SAT) would result in a P-time solution to integer factorization, the converse (polynomial time factorization implying P=NP) isn't known to hold. (And seems unlikely to be the case given the number of complexity classes that would collapse together. (ibid.))
For a long time, it was believed that even just testing an integer for primality might require super-polynomial (equiv. sub-exponential) time, which would have made the problem of just testing a candidate factor for primality not lie in P-time. But Agrawal et al. produced a P-time primality test algorithm in 2002. This result made it less clear that integer factorization into primes was necessarily not P-time. (If it were provable that testing for primality was impossible in P-time then integer factoring is not in P-time, because otherwise an integer could be tested for primality by trying to factor it and this would either return "is prime" (i.e. the trivial factorization n = 1*n) or would return "is composite" (i.e. the nontrivial factorization n = p*q) in polynomial time.) So a P-time primality test made it less clear which time complexity class integer factorization (into primes) lived in.
In spite of this nit-picking, your basic idea is right. :-)
The fact that 1 = 0.999... is itself an artifact of notation. 1 and 0.999... are two equivalent notations for the same real number. There is nothing particularly strange about that.
You do get 1 = 1, but you don't get 1 = 0.999... like you claim you do. By analogy with limits, the limit of an equation as x approaches y is not the same as the same equation evaluated at x = y.
True. But real numbers happened to be defined as limits. More precisely, they are equivalence classes of Cauchy sequences of rational numbers, which two such being considered equivalent if they converge to the same limit, i.e. |a_n - b_m| < epsilon, where m, n > some k which depends on epsilon. By this definition, 0.9999... is exactly equal to 1.
If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
http://xkcd.com/287/
Not exactly the same problem, but at least of the same class.
Thank you :)
Care to state the argument -- that 3 * 0.333... = 0.999... -- in terms of limits? I brought up limits only because I think it's useful to look at 0.999... as a number approaching 1 as the number of digits to the right approaches infinity. I still don't see how x * 0.333... equals 0.999... (rather than 1) as x approaches 3.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
As was already said, it is polynomial time, not linear. Now just proving that P=NP may not make an algorithm appear out of thin air, but it is quite likely that any proof of that will be done by creating such algorithm. And, by the way, that is the case here, the proposed proof is in the form of an algorithm.
Rethinking email
Why not create your own incomprehensible CS paper?
http://pdos.csail.mit.edu/scigen/
There's no -1 for "I don't get it."
The people who think there's a non-zero "digit" after 0.0000.... need to be given the example of 12/99 = 0.1212121212... what do they think the number "ends" with, 1 or 2? Either their heads will explode trying to figure out what 0.1212121212.... ends with, or they will realize that such decimal strings do _not_ end.
because translating a solution of a NP-complete problem to a solution of any other NP problem is itself O(some polynomial of n)
Are you sure about that? I thought the idea was to translate instances of the more difficult problems into instances of the easier problems (and then to use the solution you already have for the easier problems). Also, a solution is by definition generic--otherwise it wouldn't be much of a solution. And, it doesn't really matter how much time it takes to 'translate a solution' because if it truly is a solution, you should only have to do it once.
Duh. There's obviously a 5 that can be added at the end of all those infinite 9s, which makes that number halfway between 0.999~ and 1.
If you can't convince them, convict them.
Considering that my post was modded overrated, I'd like to preface the following by saying that I am in no way trolling. I genuinely lack the understanding of the concept.
Well this would fall under theoretical math and not practical math, would it not?
I hear the:
1/3 = 0.333...
1/3 x 3 = 1
>
0.333 x 3 = 0.999...
Therefore 0.999 = 1
...argument and it honestly doesn't quite yet make sense to me.
One of the later things I learned was that mathematics is taught in stages. i.e. when you're very young you may be taught that 0 is the start, but a few years later they break out negative numbers on you, and so on.
One of the first things I learned is that 0.333... (as an example) is an approximation of 1/3. A fraction such as 1/3 cannot be 100% accurately represented in a decimal system. (I am not making a statement of fact here per se; I am merely stating the concept as it was taught to me).
Perhaps you can help me by explaining further; I'm going to respond to your post point by point as I understand it. The simpler you can explain it, the better - once I got into the higher maths like calculus I had a very difficult time wrapping my mind around a lot of the theoretical stuff.
For instance, one of the things that defines what a real number is that it is not exactly the same as a different number. Seems pretty common sense, huh? So what number, exactly, comes between 0.999... and 1?
Nothing, but what is the significance of there being nothing between 0.999... and 1? If there is nothing between 0.999... and 1, then you would not the logical conclusion be that there is nothing between 0.888... and 0.999..., therefore 0.888... = 0.999..., and since 0.999...... = 1 then 0.888 = 1 as well?
Like you said, those 9s go on forever, so if there is nothing that you can add to the first term to turn it into the second, they must be the same. They are just 2 different ways of expressing the exact same number.
Ah, when you say this I can understand it a little better in a way - the infinite nature of it therefore means that nothing can be added to it to make it 1, therefore it is 1... but I don't quite get why the fact that it runs on forever and nothing can be added to it (because of its infinite nature) makes it equal to 1.
But even so, why would one make the assertion that 0.999... = 1 because nothing can be added to it? Could you not just as easily make the assertion that because nothing can be added to it, 0.999... is not 1?
You probably don't have a problem with the idea that 1/3 = .333..., so multiply both sides by 3 and what do you get?
Well, obviously 1/3 x 3 = 1, and .333... x 3 = .999..., but as I've said I've always been taught that .333... is not exactly equal to 1/3; it is just the best approximation we have.
Honestly, it seems more metaphysical or theoretical to me - a sort of Zen Math version of "All roads lead to Rome" ; "all run-on decimals are in 1". I'm usually more concerned with practical mathematics over theoretical mathematics, but I am genuinely stumped by this.
Honestly, I wish someone could just draw me a picture, but I probably wouldn't be able to view it since my graphics card doesn't go to the Infinity x 768 resolution. d:
So, in short, to number and summarize my questions (and I apologize to both any who read and/or reply to this as well as all of my past and future teachers who I've constantly nagged with my inquisitive nature):
.
1) If you make the assertion that 0.999... = 1, would making the assertion that 0.888... (or 0.777..., or 0.34667777..., etc.) are also 1?
2) Is the assertion that 0.999... = 1 because of the infinite nature of a run-on number?
3) If so, why?
4) If not, then what is the property that would cause one to make the asse
Random Thoughts From A Diseased Mind (Not For Dummies)
Blizzard once posted a pretty good, understandable explanation.
let x = 0.999~ (repeating)
then, 10x = 9.999~ (repeating)
thus, 10x -x = 9x = 9.999~ - 0.999~ = 9.
9x = 9, so 9x / 9 = x
9/9 = 1
x = 1, so 0.999~ = 1.
If you can't convince them, convict them.
er said that backwards, it's rational 0.333... and real 0.333
also, the number types tend to have infinities between them making the more complex ones infinitely more useful. for instance there are an infinite number of real numbers in the form of 0.33..3 that are not equal to 0.333...
bite my glorious golden ass.
um, no. 0.333... is the decimal expansion of 1/3. It just has a clumsy decimal (base-10) expansion. The ternary (base 3) expansion is quite simple: 0.1.
Or IS it that simple:
I thought the ternary expansion of decimal 1/3 was (base 3) 0.1000....
Next you're going to tell me that (base 3) 0.1 == (base 3) 0.1000....
[/silliness]
what does P stand for?
Portman.
No no. We know that P is Porter.
Who are you the fucking geek police? Fuck you! You don't get to dictate to us which of us are and aren't geeks. Fucking asperger retard....
The geek police, they live inside of your head
The geek police, they come to you in your bed
The geek police, they're coming to arrest you, oh no
You know that posts are cheap
And those AC's ain't nice
And when you fall asleep
I don't think you'll survive the night, the night
'Cause they're waiting for you
They're looking for you
Every single night they're driving you insane
Those men inside your brain
When information is power, privacy is freedom.
I'm pretty sure factoring and discrete log are not known to be equivalent. This would be a huge result in theory of crypto if it could be shown.
Think about it from the other direction. You'd agree that 1.0-0.999...=0.000...1, right? So follow those zeroes....where is the 1 that "magically" gets added to 0.999...?
It is pitch black. You are likely to be eaten by a grue.
ya, but 9.999... (from step 1) minus .9999... (from step 2) doesn't = 9 (not all infinities are the same)
when you multiply step 1 by 10, you lose 1 significant digit off the decimal. so the infinite expansion from step 1 is infinitesimally larger than the decimal expansion in step 2.
So your step 3 is wrong. it should more appropriately read (9.0000.....9) / 9 = (1.0000.....1)
So in that representation you're pretty much saying that:
lim x->infinity (0.1)^x = 0
What's interesting is that instead of 0.1 you can substitute 0.9 or 0.999 or anything between (-1 .. 1) exclusive and still end up with zero. Dunno how that translates into infinitely repeating decimal digits, tho :-P
/ Stupid slashcode filtering out HTML and unicode infinity symbols :-P
(Love most of your post... been posting similarly for days.... but... ) What engineering? Software what what? It makes more sense to call a barber a hair style engineer than it does to use weird meaningless marketing terms like "software engineering." I have the greatest respect for programmers, computer scientists, and bone fide engineers... but I just feel sorry for anyone with either such low or far too elevated self-esteem to refer to themselves as a software engineer. It's no better than "sales engineer." Coding is respectable in it's own right without having to synthetically prop it up with a false title. Call me a flamebait engineer.
The Admin and the Engineer
That's an oft-repeated explanation that 1 = 0.999...
However, I have seen sources (I'm not quite sure how reliable) that say that your explanation lacks sufficient rigor to be considered a "proof".
Can anyone comment about whether the parent's explanation can legitimately be considered to be a "proof"?
It certainly "feels" like a proof to me, but that may be due to my ignorance.
Let me try to address your questions in a manner that is not disrespectful.
1) The assertion that 0.999... = 1 is not equivalent to or in any way related to assertions like 0.888... = 1, which are false (why? there exists a real number between 0.888... and 1, take 0.9 for example). However, you could think of it as being related to the assertion that 0.888... = 8/9.
2) Yes, the assertion has everything to do with the infinite number of repeating digits. For comparison, the assertion that 0.999...9 = 1, where there is a finite number of 9s, is false, no matter how large that number of 9s is.
3) There are many explanations behind this infinite nature. One of the basic ones is that 0.999... is actually representing a series (infinite sum), in this case a geometric series of the form 0.9 * (0.1^0 + 0.1^1 + 0.1^2 + 0.1^3 + ...). The sum of a geometric series with ratio r is 1/(1-r), and so the sum of the series is 0.9 * 1/(1-0.1) = 0.9 * 1/0.9 = 1. I've seen some other, more elegant explanations offered here and elsewhere, but this explanation is sound and requires only knowledge of calculus (the proof of the summation formula requires limits).
4) There is no "property" that enables this assertion. Instead, this claim arises because of the disparity between the representation of numbers and the numbers themselves. Within the real numbers, 0.999... and 1 are not distinct. They appear distinct because of the decimal representation (and indeed, a representation in any base exhibits the same characteristic). This is true for all rational numbers when represented as decimals, e.g. 0.4999... = 0.5 or 0.888... = 8/9 from above.
Here's your evidence:
Given a public key for an asymetric cryptosystem (say a modulas n for RSA) it is easy to verify (i.e. in NP) that a candidate secret key (say primes p and q in the RSA case) match the public key. Paraphrasing heavily now: If P == NP then anything that is easy to verify if polytime is also easy to solve in polytime. In our case that means if i give you a public key you can now FIND a matching secret key in polytime. I.e. if i give you n which is an RSA public key you can factor it into primes p and q. But if you can find the secret key for any public key algorithm (including RSA) then no such algorithm can be a "secure" cryptosystem.
Heading off some misunderstanding: We do not know how to base security ONLY on P != NP. In fact that is considered one of the largest open problems in modern theory of crypto. While I just argued that P!=NP is a _necessary_ condition for all asymmetric (and most symmetric) crypto to be secure it is not known to be _sufficient_.
We're getting closer with some of the recent advances in Lattice based crypto but were are definitely not their yet. For the theory people out there: A fundamental problem here is that NP tells us something about worst case hardness but for crypto we need average case hardness (i.e. for a random secret key and random coins for the ciphertext). Bridging this gap is highly non-trivial. Recent work in lattices has shown such connections and how to use it for certain problems. However the choice of parameters we use for the resulting cryptosystems are not known to result in NP-hard underlying problems.
Orgasm doesn't necessarily imply sex.
The difference between say, computer science and sociology, is that computer scientists require absolute proofs.
Fallicious! Not all sociologists and computer scientists are drunks!
The Admin and the Engineer
before you start checking every car on the lot you might want to see if the 24 conditions can even be met. that's the boolean satisfiability problem and it's proven np-complete. the problem isn't finding the car, it's determining if you should bother to look.
3SAT is a special case of a special case of that problem so the car analogy would be way contrived and less interesting. 3SAT was thought to be proven np-complete though so this result is interesting at least in that it disproves that.
bite my glorious golden ass.
The number of digits in 9.999... and .9999... are both countably infinite. These infinities are the same. A countably infinite set + 1 (or any finite amount for that matter) is still countably infinite.
"Infintesimal" is another way of saying "non-existent". An infinitely small quantity is zero. Newton and Leibniz thought otherwise when they created calculus, but we now know that they were wrong.
The "numbers" 9.0000...9 and 1.00000...1 are fictitious. Putting a digit at the "end" of what you define as a string of digits without end is illogical and thus, meaningless.
Happy people make bad consumers.
NP is the set of all problems for which an alleged solution can be checked in O(some polynomial of n).
That is a common mistake. NP means that a non deterministic Turing Machine (a Turing Machine that can "guess" the right path to take if faced with a choice) can solve the problem in polynomial time. It has nothing to do with the time to check the solution.
You can solve any P problem in polynomial time, so reductions have to be less powerful (most likely you used NL).
What would happen if you tried to express cracking an AES key in 3-SAT form then asked this program to solve it? Will it have to introduce exponentially more variables?
I figure that if anyone claims to have a 3-SAT algorithm, we should ask it to try something infeasible like crack an AES key.
"Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
You made an error in your third line:
.5 * 10 = 5 .5 = 4.5 = 9 * .5
5 -
4.5 / 9 = 0.5
0.5 = 0.5. QED.
So the analogy breaks down a bit.
We can assume car dealers have a finite amount of cars. So they can just check each car and see if it fulfills all the requirements. Such a test is clearly polynomial.
3-sat would be a more theoretical question like: can such a car exist? or what is the full set of all the combinations possible to satisfy the customer?
A better analogy would be to go to a car factory and ask for those features for a designer car.
javascript:document.body.appendChild(document.createElement('div'));
into a link and bookmark it. I have it on my bookmark bar and when ever I need to paste into slashdot I click on the textbox then the button in my bookmark bar labels Fix /.
The Kruger Dunning explains most post on
The formal definition is for Turing machines, which was infinite storage.
Well then, apparently you only count counting as math.
If so, I don't see how anything could be significantly more math-centered than paying bills. I mean, you stuff numbers into a calculator and blam - there's the answer. Of course when building a bridge, you need to input a few more numbers, but then again it's a bigger project overall so the portion of "maths" isn't that much different.
Back to real world: Yes, pretty much every maths student counts what you're referring to as logic as math. In fact it's pretty sizeable portion of what they are studying.
I was going to show you a proof, but you have been bitch slapped quite soundly.
Well done /.
The Kruger Dunning explains most post on
We called it Discrete Mathematics at my University.
Get into your car. Drive to the college. Take some courses.
The Kruger Dunning explains most post on
On such an epic journey he'd no doubt decide to document the experience by creating a map of all the cities he'd visited. To make it more appealing, he'd probably want to colour in the cities. Of course, it would look odd if two adjacent cities had the same colour...
if you claim that P==NP, as this paper does, then I require you to show that it is so for all possible inputs.
Even if he did that, does it necessarily follow that P=NP, or could it mean that the proof of NP-completeness for 3-SAT is flawed?
https://www.eff.org/https-everywhere
I saw it come true in my dreams. Ergo: It's true for me QED NP = P.
As several other people have pointed out, NP doesn't mean not polynomial, it means polynomial on an non-deterministic Turing machine (i.e. you can test whether a solution is correct in polynomial time). What's more, P is a subset of NP - any problems that's in P is by definition also in NP.
I think you should post the it one more time just to see how many times the same post by the same person can get modded up in the same thread of the same discussion. :D
https://www.eff.org/https-everywhere
One of the first things I learned is that 0.333... (as an example) is an approximation of 1/3. A fraction such as 1/3 cannot be 100% accurately represented in a decimal system.
This is incorrect, and is apparently the source of most of your confusion. 1/3 = 0.333...; there's no approximation going on. 1/3 is approximated by 0.3, and 0.33, and 0.333, but the infinite decimal is *not* an approximation.
The problem here is that people are generally very ill-equipped to handle the idea of infinity, and a lot of common sense doesn't really work. You can't "tack another 5 on the end" of 0.999... to get a number halfway between 0.999... and 1, as some other poster commented, precisely because there is no end for it to be tacked onto. This is why it's ultimately equal to 1.0.
The ringing of the division bell has begun... -PF
Please restate your objection, expressing all numbers in base-3
We're all born with nothing.
If you die in debt, you're ahead.
Well, except that universities are offering "Software Engineer" degrees, which are significantly different than "Computer Science". Both involve coding, sure, but the focus is entirely different.
Don't thank God, thank a doctor!
The real problem is that the proof is in NP.
So, you're saying that NP=P means "Natalie Portman is Portman", which would make it prior art for the "Long cat is log" meme?
Whatever happened to the old NP=NP, as in Natalie Portman is Naked and Petrified?
PlusFive Slashdot reader for Android. Can post comments.
You probably don't have a problem with the idea that 1/3 = .333...
I do, actually, on a deep philosophical level. (I'm usually pragmatic enough to let it slide.)
... so if there is nothing that you can add to the first term to turn it into the second, they must be the same.
That's a big if. Actually, there is something you can add to turn 0.999... into 1. I'll give you a hint, since they're infinitely close together, the term must be infinitely small...
Technically, they simply cannot be the same because 1 belongs to the group of integars, and 0.999... doesn't. "Seems pretty common sense, huh?"
I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
His mistake, if he indeed did what you said, is completely consistent with the way the NP versus P question is usually popularized. Your refutation clearly points out how the NP versus P question isn't actually relevant to actual computation by actual computers - it is a theoretical concern that is useful to know about when e.g. trying to come up with algorithms. However the question is often presented as though it is a practical concern and if that were true his methodology would be sound.
I think the hole in your logic may be that 0.333... == 1/3. I think 0.333... may only be a very close numerical approximation of 1/3, ...
Ditto.
... but 1/3 cannot be expressed absolutely as a number (even assuming infinite 3s).
It can be done, actually. It just cannot be done in base 10! You need to use a base that's a multiple of the prime number 3. ("trinary"?)
I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
be a shame if it never finished, or took longer than the age of the universe on a computer the size of a planet before you got an answer.
You want an answer before you need to get your PhD. thesis written, maybe we can fix somethin' for you.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I think that the elliptic cryptograms should still be valid. Unfortunately, nobody uses them because they are harder to deal with, and besides, the factoring approach got there first and seemed good enough.
(Mind you, I don't know *anything* about elliptic encryption, but at the time RSA was being first proposed as a standard, someone was claiming that elliptic encryption was what should be used, because IF P=NP, then encryption dependent on prime factorization was vulnerable.)
I think we've pushed this "anyone can grow up to be president" thing too far.
Your point taken, though... perhaps I was a bit harsh. No offense, developers!
The Admin and the Engineer
Anyone that thinks they know a lot is a fool.
Sure. Think about 1 - 0.999... it gives you 0.000... = 0. You might worry about a 1 sitting out there in the "infiniteth" decimal place, but remember that you can never get there; the 1 never happens. Since 0.000... = 0 then 1 - 0.999... = 0 and 0.999... = 1. Nothing fancy.
Sure it does, it just takes an infinite number of 0's to get there. The two are indeed infinitely close. Now for the conundrum: 0.999... is an irrational number, not an integer. 1 is an integer. Both belong to R, but only 1 belongs to Z. There may be many applications for which they are functionally equal, but they simply cannot be equivalent.
I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
Sorry to reply in an overdone subthread, but I think I have a different objection from the usual.
I'm a programmer, like many here, and I spend a lot of time working with strings, numbers and sequences. I see 0.999... as an infinite sequence which must be partially evaluated when it's used as a number. This has several consequences, but the relevant one is that when comparing numbers the obvious algorithm is to sort them by the greatest non-equal digit - so 0.999... is greater than 0.989..., and must be partially evaluated to determine that 0.9999999... is greater than 0.9999998... This understanding of 0.999... as representing an infinite sequence which can be reasoned about has worked for me in all the situations I've come across (admittedly, not many).
Of course using this reasoning also clearly tells me that trivially 0.999... < 1.
And, before someone asks, I evaluate (1/3) == 0.333... as either true based on no detectable difference, true based on a type conversion from 1/3 being identical to 0.333..., or the heat death of the universe while still looking for an answer.
Now, hopefully something interesting after another "I dun't understand math lol" post.
Obviously the 'correct' interpretation of 0.999... == 1 versus my 0.999...
< 1 is based a difference between 'real' mathematics and the bastardised computer mathematics where we don't actually have infinite sequences and have to make do, but still I can usefully define 0.999... as the largest number which is less than 1 and reason about it on that basis.
So why does 'real' mathematics use a definition based on limits rather than the shortcutty but apparently workable definition I imagine a computer using? Is there some kind of difference based on consistency of the model, or usefulness for some kinds of calculation, or just tradition or what?
P.S., sorry if slashcode ate my less than signs, I think I got them all with <
.evom ton seod gis eht
My department once had a bunch of physicists writing simulation code, because some of what they were simulating behaved in physics-like ways. I was running the computer, because that was back when you often wanted Computer Nerds to do that for you, though I was really a simulation jock and math nerd.
They were in fact using linear searches through a linked list to manage their event queue in O(n^2) time, and when I made them use a heap to get O(n log n) behaviour, I was disappointed that it only sped up their system by a factor of 5; apparently their code was doing some work besides managing the event list. Also, the system they were modelling basically bounced randomly around a large matrix that didn't fit into our huge 4MB RAM (this was ~1984), and crawling through the linked lists got them some physical locality so it wasn't always paging. A couple of years into the project, memory technology and price had improved enough that we were able to upgrade the VAX to 16MB, and suddenly the program could run in an hour instead of a week, though by that time we'd been able do enough research to tell the end user that the solution we were modelling wasn't really a good one, so being able to run a few hundred more examples a week let us pile on results to help convince them.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
At the very least, then, they are saying that there are interesting subsets of the problem-space that are not truly NP but have been classed as such because the general case was.
This could lead to some very interesting consequences.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
You use the assumption you're attempting to prove in the actual proof. Surely that can't be correct?
Your step 2 might be a neat trick. I can't tell because step 3 is so badly explained. Undoing the multiplication in step 1 would mean dividing by either 10, or 9.999... You cannot undo that by dividing by 9, because 9 isn't a term in that operation.
So, what exactly are you trying to do?
(I've seen nice looking proofs that 1==2. I think you're doing something odd, I just can't quite understand your operation.)
I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
At my university, symbolic logic was taught in the math department. There was also an "Into to symbolic logic" taught in philosophy. But they didn't even get as far as the Peano axioms, much lest second order logic.
OTOH, in the math class we needed to reconstruct Gödel's incompleteness theorem...and the lectures went on into omega incompleteness.
So, for me at least, logic *is* a part of math. (Even if most of the computer classes were oriented around numerical analysis. Well, this *was* back in the 1960's or 70's.)
I think we've pushed this "anyone can grow up to be president" thing too far.
The problem here is that people are generally very ill-equipped to handle the idea of infinity
Basically this. Infinity isn't a number, its an idea. If you're thinking of infinity as just some huge number, than .999... will never make sense to you.
Yes, cryptography assumes that decryption is hard to do, but enough ciphers have been broken, so that we should take any unproven assumptions with a good helping of NaCl. Even if something is claimed to be provably secure, you should always check what was proven: resistance to what kind of attack is now guaranteed and under what assumptions. It's quite possible to break a provably secure cipher using a different kind of attack. For example, one-time pad is provably secure, if you never reuse it. If you reuse OTP, then your cipher can be broken (it actually happened). Also, without additional protection you may be able to change encrypted text even without being able to read it.
Please, check the statements that you post as facts.
Although I am a heretic in this matter and shouldn't really weigh in; the ... operator is a mean trick which breaks the laws of arithmetic. That's why you're stumped. It's a shorthand for 'continue to infinity', and as soon as you have an infinity in your equation all bets are off.
The real kicker is that if you're not watching for that sneaky infinity it looks just like a simple equation a five year old can do.
.evom ton seod gis eht
Indeed. I meant to say
"1/3 has no exact decimal representation."
Of course meaning no exact representation as a decimal fraction
Clearly 1/3 itself is, also, an exact representation.
Independent of what washes out with the paper / proof...
As someone who has written SAT solvers and solves SAT instances every day... the performance of this implementation is terrible.
I was going to download it -- and then I read this on the github page:
Note that it took about 14 hours for this reference implementation to solve satisfiable 3-SAT instances with variable count = 398 and number of clauses = 1040 (flat50-115 from "Flat" Graph Colouring set).
That 14 hour instance is *ridiculously* easy... for perspective, I tried a few off-the shelf popular SAT solvers and they were all < 0.01 seconds to solve it.
I don't buy it. If that were the case, then 1/3 == .333... could not exist since the division operator is broken by infinity and the equality doesn't hold, thus no arguments and we have to figure out irrational numbers all over again.
Sure, there are problems that are exponentially hard that you can still often solve for small n, and there are problems that are exponentially hard in the worst case but usually only take polynomial time if you're lucky, and sometimes you can depend on usually being lucky, and there are problems that are exponentially hard if you need the best answer, but have polynomial solutions that will get you within X% of the best answer, which may be good enough.
Cryptography is not any of those problems - you can solve for small n, so the crypto designer just uses a key that's long enough not to be small, and maybe encryption takes twice as long but cracking takes 2^100 times as long. Inexact answers are good enough for the Travelling Salesman Problem, because taking 50% longer to reach all your destinations is still feasible, but guessing one bit wrong in a crypto key usually means that half the output bits are different and you don't know which ones.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Nothing, but what is the significance of there being nothing between 0.999... and 1? If there is nothing between 0.999... and 1, then you would not the logical conclusion be that there is nothing between 0.888... and 0.999..., therefore 0.888... = 0.999..., and since 0.999...... = 1 then 0.888 = 1 as well?
There's plenty of numbers (infinite) in between .888... and .999... Examples:
.999... is? If you're thinking ". an infinite number of 0s followed by a 1," there's no such thing. An infinite number of 0s has no end for you to tack a 1 onto; its just 0.
.9
.89
.889
.891
What would you say 1 -
A number is a very specific object which differs from its symbolic representation. For example, "one", 1/1, 3-2, 0x01, "uno", 0.9999... all refer to the same real number, even though the symbolic representation is different. (However, there is also a rational number and an integer with the same symbolic name.) To show that they are the same, we need a definition of equality. Ultimately, it's a matter of consistency and convention. We have developed a framework for real numbers that gives us rules for arithmetic. The difference between 1 and 0.999... can be stated as the limit as n->infinity of 0.0...{n times}...1. However, the real number system does not allow for a distinction between infinitesimal differences, so this must be regarded as equal to 0. This is simply a feature of the real number system, so you'll end up going in circles if you look too hard for some underlying proof. In the hyperreal number system, they are different.
Phew! Thank goodness I defended over the summer. Maybe I should register for a new number certifying I've read the new rules?
Well, look at it like this. Let f(x,y) = sum(n=1..x) of y/(10^n). So f(1,9) is 0.9, f(2,9) is 0.99, etc.
Using this notion, f(x,3) * 3 = f(x,9) for any x. Therefore 0.9... to x digits = 0.3... to x digits, for any x. Now set x to infinity.
Personally, I'd say that the perception that 0.9... and 1 could be different is an artifact of notation, just like a perception that 0.5 and 1/2 could be different.
An infinitesmial ;)
I think it depends who you ask (I'm not a mathematician, most of my knowledge about this comes from history/philosophy of science).
.evom ton seod gis eht
I still don't see how x * 0.333... equals 0.999... (rather than 1) as x approaches 3.
This has absolutely nothing to do with "x approaching 3". We already have x=3 to begin with.
A simple explanation would be this.
0.333... = (0.3 + 0.03 + 0.003 + ...)
0.333... * 3 = (0.3 + 0.03 + 0.003 + ...) * 3
0.333... * 3 = 0.3 * 3 + 0.03 * 3 + 0.003 * 3 + ...
0.333... * 3 = 0.9 + 0.09 + 0.009 + ...
0.333... = 0.999...
Where limits come into play is for the explanation as to why 0.999... equals to 1 - as the number of digits after the decimal goes to infinity, the limit is 1. Since 0.999... by definition (of notation) is the number with infinite number of digits after the decimal point, it is 1.
Well, in base 3, 0.22... == 1.
Briefly, the trick is in the ... operator, it doesn't really work like you'd expect.
(Did I miss something? The parent didn't seem particularly tied to base 10)
.evom ton seod gis eht
I'm gonna go ahead and preorder you book now, ok?
Actually this proof is false. In step 2, you assume that the difference between 0.999... and 1 is the same as between 10*0.999... and 10, thus making your proof circular.
The point is that the numeral is not the number.
The numeral 0.99999... is just a silly way to represent the number that is called 1.
You are correct that in the digit representation there will always be 9s but the numeral is not the number.
Nobody ever saw a number.
As for showing that it is so just by using the numeral, I first thought of representing the number called 0.999... as:
0.999....=sum(n=1, inf) { 9 10**(-n) }
0.999....=sum(n=1, inf) { 9 exp(-n ln 10) }
but seems this discrete sum hasn't been calculated yet, just approximated. Weird. (see http://en.wikipedia.org/wiki/Exponential_sum )
On the contrary, most crypto algorithms rely on P != NP.
Any cipher algorithms necessarily rely on this for their guarantees of security once you're beyond your unicity distance.
Checking that a key is correct (that is, including decryption) needs to be simple (P).
Finding the correct key needs to be hard - but since checking that a key is correct must be simple, it can be at hardest NP. If NP problems can be solved in polynomial time, encryption is boned if your opponent may be able to bring massively more computational power to bear than will be used to decrypt. You cannot give any strong assurances of secrecy for any messages longer than (a small multiple of the length of) your pre-shared key.
While one-time-pads remain secure due to an infinite unicity distance, they are also typically impractical - if you already have a secure channel to regularly exchange pads, then the ability to time-shift that secrecy conveys a necessarily smaller benefit than the ability to establish new secure channels.
Digital signature algorithms are even more obviously destroyed - if I can (almost) as easily find the key that produced a signature as I can check that it's valid, there's no verification to be gained from the signing process.
One of the first things I learned is that 0.333... (as an example) is an approximation of 1/3. A fraction such as 1/3 cannot be 100% accurately represented in a decimal system.
Here's one problem. 1/3 cannot be accurately represented in a decimal system _with a finite number of digits_. 0.3 is an approximation; so are 0.333 and 0.3333333 But 0.333... is not a finite number of digits; it is an infinite number of digits, and is in fact an exact representation.
As to your questions...
1. No, just because it's infinite does not make it 1. An infinite series of 9s is not the same as an infinite series of 8s. I would however assert that 0.8... is 8/9, and 0.7.... is 7/9, and 0.34667... is 31201/90000 (there's a theme here, with the 9s in the denominator. Try the divisions for yourself if you like). Following the same pattern, 0.9.... would be 9/9, which is equal to 1.
2. In part. See 3 :)
3. The infinite nature relates to the value like so: 0.9999...99 with any finite number of digits (let's call the number of digits X) is demonstrably different from 1; just subtract it from 1 and you get 0.000....1 with (x-1) zeroes after the decimal. Try that with an infinite value for X and you never ever ever get to the 1 after the zeroes, because there is no "after the zeroes". Which leaves you with '1 - 0.9.... = 0', which (by adding 0.9... to each side) becomes '1 = 0.9...'.
I prefer to think that 1/3 expressed as a decimal is *not* a number, but a description of a process that in some cases can only calculate an approximate value. For example when you expand the answer to 2 decimal places you get; 1/3 = 0.33 + 0.01 / 3. The notation 0.333... (usually with a dot above the last 3) suggests that you expand the answer to an infinite number of places, but even this will have a left over infinitesimal fraction.
The problem here is that decimal notation can only express the precise values of fractions if their denominator is divisible by only 2 and 5. If the denominator has any other prime factors, the value can only be approximated.
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
0.999... = 1 is a convention. Whether it is true depends on how you define the real numbers. In standard analysis you have 0.999... = 1, but in other (non-standard) forms of analysis you can assume without contradiction that there is some w with 0.999... = 1 - 1/w.
The discrete logarithm problem can be implemented via factorization and vice versa. If you can easily solve one, you can easily solve the other
That may be true, but where in your link is this stated? Closest I can see is that some discrete log solvers were inspired by algorithms for factorization, which doesn't quite mean the same thing to me.
Sorry to double reply, but there's another way of looking at it I'd like to mention. I might be slightly off on the mathematics (hopefully a kind mathematician will correct me if I mess up) but it might give you another clue about how 0.99... is a special case.
Consider that for any two real numbers x and y, there are an infinite number of other real numbers z where z is between x and y. For a less algebraic example, between 0.1 and 0.2 you have 0.11, 0.12, 0.13, but also 0.111, 0.1111 and so on - an infinite number.
However, between 0.99... and 1.0 there are no more numbers. There's no way to sneak an extra digit on to the back of 0.99... to get another number between it and 1. This is obviously a very special case and for various reasons involving infinity and limits 0.99... and 1.0 are treated/defined as being the same. This might not convince you that they are the same, but hopefully it's easier to see that there's something funky going on with 0.99... even apart from saying that it's the same thing as 1.0.
.evom ton seod gis eht
Heh, it's not automatically obvious that "1/3 = 0.3..."
To prove it, you need to show that "1/3 = sum n=1->infinity [3*10^-n]"
Not too hard to do, if you shift the summation by one digit.
sum n=1->infinity [3*10^-n]
= {sum n=1->infinity [3*10^-n]}*10/10
= {sum n=1->infinity [3*10^-(n-1)]}/10
= {sum n=0->infinity [3*10^-n]}/10
= ({sum n=0->infinity [3*10^-n]} - 3 + 3)/10
= ({sum n=1->infinity [3*10^-n]} + 3)/10
equating the first and last expression
10*{sum n=1->infinity [3*10^-n]} = {sum n=1->infinity [3*10^-n]} + 3
9*{sum n=1->infinity [3*10^-n]} = 3
{sum n=1->infinity [3*10^-n]} = 3/9 = 1/3
The problem here is that we never bothered choosing axioms for the discussion, and there are branches of mathematics where 0.99... != 1, which have some properties that superficially seem more intuitive.
1/3+2/3 = 3/3
3/3 = 1
1/3 = 0.3333...
2/3 = 0.6666...
3/3 = 0.9999...
1 = 0.9999....
?
Step 3 in the GP is a little cloudy yes, but the proof is solid. Consider the following:
1.) x * 10 = 10x
2.) 10x - x = 9x
3.) 9x / 9 = x
This is all that is happening here. Simply substitute x with 0.999...
The notation 0.333... (usually with a dot above the last 3) suggests that you expand the answer to an infinite number of places, but even this will have a left over infinitesimal fraction.
No. You are expanding to an infinite number of places, so you will not have any fraction left over. You would only have some amount left over if you expanded to a finite (no matter how large) number of places and stopped.
Think of it this way: 0.333... could be thought of as an infinite number of 3's, or you could think of it as some finite number of 3's (in this case, I'm showing 3 of them), followed by infinite 3's. No matter how many 3's you conceive in the expansion of that decimal, there's still infinite 3's following them. Any amount leftover after your finite number of 3's is accounted for by the infinite 3's.
Sure, so basically I agree with you. 1/3 is a ratio, and 0.333... is an inconvenient decimal representation of the same. The whole infinity and limits business annoys me when the equivalence between 1/3 and 0.33... is practically speaking a definition and 3*0.33... = 1 is an exercise in misdirection. Since when did real number multiplication involve expanding infinite series? Oh sorry, it has dots on the end. My mistake.
My beef is with the shoehorning of rational numbers into the real space; that ... operator is something you put after a real number to say "only joking! it's not a real number at all, sucker".
</rant>
.evom ton seod gis eht
I'm sure there are already a bazillion replies to this. To prove it to myself, I did an algebraic proof. Set x = 0.999..., so 10x = 9.999..... Subtract them and get 9x = 9, or x = 1.
:)
However, curious how my 12 year old daughter would interpret 0.999...=1, I sat that in front of her and asked what she though. She said, "nope, doesn't work." I corrected her by saying, "Ok, well, I'm gunna tell you that it is equal. Can you tell me why?" She thought for about thirty seconds and had this:
1/9 is 0.1111.... Multiply both sides by 9 and get: 1 = 0.999.... I think her answer was vastly more elegant than my own. This is like the 10th opportunity I have had to brag about this particular situation.
No single raindrop believes it is to blame for the flood.
“Computer science is no more about computers than astronomy is about telescopes.”
-Edsger Dijkstra
At any particular n, the sum is less than the fraction it represents. This the same issue for 1/3 as it is for 3/3 or 1.
Sure, as long as n is finite. The "..." at the end means it's infinite. I don't know why it's so hard for you people to grasp the idea that infinite means not finite. As soon as you think about an end to the sequence, it's not infinite anymore, and the equality does not apply. If you're having trouble with the infinite concept, think of it this way: every time you think of ending the sequence, add infinite 3s (or 9s, as the case may be).
You might be getting confused, but the set of real numbers includes all rational and irrational numbers. http://en.wikipedia.org/wiki/Real_number
Complex numbers are not real.
The secure channel for a one-time pad is a guy with a briefcase handcuffed to his arm, optionally wearing a tuxedo or a uniform or accompanied by an armed guard. Occasionally there are other options, such as a pressurized conduit between nearby buildings, with the data carried over a fiber-optic system, but that's also depending on physical security for protection.
If you've transmitted your code pad over any physically eavesdroppable medium, it's no longer a one-time pad, it's just a chunk of data encrypted with whatever encryption algorithm the transmission medium used, no matter what the sales guy for the "one-time pad" company told you.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Identity is an axiom of mathematics. You have to accept it to be doing maths as we understand it, but you're free to examine mathematical systems where a != a and work with the consequences.
.evom ton seod gis eht
Bugger! Catastrophic set hierarchy failure!
Thanks, I'll consider that in the morning and see if I still make any sense.
Remember kids, one little liberal arts paper might seem harmless enough but EVEN ONE can ruin your life.
.evom ton seod gis eht
Well, it sure did wonders for teaching them how hard it is to find a route out of the building with the gun-toting maniac, didn't it?
Having worked through Cook's theorem and forced to explain each and every gory detail to my professor during my oral exams, I can assure you that 3SAT is absolutely NP-Complete. What Cook did was prove by Turing reduction that all problems in P can be reduced to 3-SAT in polynomial time. Thus, if 3-SAT can be solved in polynomial time, then anything in P, to include all known NP problems, can be as well. The proof is well published and accessible to anyone with copious amounts of alcohol and pain killers. Also, a feature of NPC problems is that you can always reduce one to another in polynomial time. Other problems that have been independently shown to be NPC, such as circuit-SAT, Clique, and Vertex Cover, can all be reduced to from 3SAT. So I'm 100% confident (as in the proof covers all possibilities) that 3SAT is NPC.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
Nothing, but what is the significance of there being nothing between 0.999... and 1? If there is nothing between 0.999... and 1, then you would not the logical conclusion be that there is nothing between 0.888... and 0.999..., therefore 0.888... = 0.999..., and since 0.999...... = 1 then 0.888 = 1 as well?
0.9 is between 0.888... and 0.999...
1) If you make the assertion that 0.999... = 1, would making the assertion that 0.888... (or 0.777..., or 0.34667777..., etc.) are also 1?
No, see above. 0.9 is greater than 0.8888.... and less than 0.9999..., so they are distinct. If any two numbers are distinct, then there is something in between (e.g., their average). Therefore, if there is nothing in between, they cannot be distinct. Since there is no number which is greater than 0.9999.... and less than 1, they are exactly the same thing.
2) Is the assertion that 0.999... = 1 because of the infinite nature of a run-on number?
3) If so, why?
In a sense. The reason there is no number between 0.999... and 1 is because there are an infinite number of 9's. If there were only a finite number, we can find something in between. For instance, 0.999 != 1 because 0.9995 is greater than 0.999 and less than 1. The reason we can't do this with 0.999... is because there is no end to the nines.
(And in general I don't think there's a clear distinction between 'theoretical' and 'practical' math. 0.999... == 1 is a standard result in real analysis, which is far more 'practical' than one might imagine after taking a first course. Are you doing any numerical work with non-integers? If you want to be sure your method converges to the right solution every time, you're probably going to have to bring in real analysis.)
Only if by "non-standard", you mean "wrong".
Your understanding of infinite is flawed.
"the end of all those infinite 9s"? what end? it's infinite.
infinite doesn't just mean really, really, really big. it's infinite, it has no end.
...and that is all I have to say about that.
http://jessta.id.au
What the hell is insider baseball?? He keeps using that term but never explains what it means. Renders the article unintelligible, to me, anyway.
Again, marketing buzzword.
Apparently you missed the part where there's an entirely different focus. Computer Science focuses more on math, abstract ideas, and programming itself. Software Engineering seems to focus more on process, design, and generally management ideas.
Even they can't explain properly what exactly is being engineered.
...so, how's this different than Computer Science?
electrons? magnetic fields on spinning discs? Lines of code?
Electrons and magnetic fields are building blocks. Here, let me turn it around for you:
Even they can't explain properly what exactly is being engineered. Steel? Concrete? Bridges?
One of these things is not like the other...
To answer your question more directly, a running program is the end result that people are interested in. The intermediate stages are lines of code. These are pretty directly analogous to an airplane being the end result, and drawings, streamlines, and so on all being things the engineers may or may not have to work with to achieve that final result.
If your issue is with the word "Engineer", I'd like to hear your suggestion for a better word. Problem is, "Developer" and "Programmer" have pretty much identical meanings, neither of which implies any experience designing processes or working with algorithms and theorems.
And why not Poetry Engineers? Think about what that would imply. A poetry engineer would make sense if you wanted a poem to have a specific effect. If there were well-understood principles by which you could design a poem such that everyone who read it would reliably experience the precise emotion you intended, then there would be poetry engineers, and they would be highly paid, I would think.
How about a "hair style engineer"? From Wikipedia:
Engineering is the discipline, art, and profession of acquiring and applying scientific, mathematical, economic, social, and practical knowledge to design and build structures, machines, devices, systems, materials and processes that safely realize solutions to the needs of society.
That seems to apply to software. It does not seem to apply to hairstyling.
Now, don't get me wrong, there's plenty of people who manage to get through a comp sci program without really learning much, and I'd think that especially depends on the school. There are PhDs who are so out of touch with the act of programming itself, so lost in theory, that I've seen a group of high school graduates (might even have been some dropouts) run circles around them, doing things they dismissed as "impossible" in an afternoon. If I ever do go to graduate school, I don't really intend to become a sanctimonious asshole with a Dr in front of my name.
But the fact that these degrees are sometimes ineffective and abused doesn't rob them of their meaning, or render them mere buzzwords.
For what it's worth, I'm working on a Computer Science degree, mostly because it gives me time to dabble in other things like philosophy courses and martial arts.
Don't thank God, thank a doctor!
Whoosh? Or maybe I'm just not funny.
If you can't convince them, convict them.
That doesn't really make sense. You can hand someone a bunch of one-time pads before they go somewhere. You can't hand them future messages beforehand (or maybe I missed some neat trick in the article).
Alright, see if you find this proof convincing.
.9999... is clearly not greater than 1.000.... Therefore 1.000... - .999... is clearly non-negative
.999...? Well, it's greater than .9, and it's also greater than .99, and it's also greater than .999. More generally, for any finite sequence of nines S9 after the decimal, .999... is strictly greater than S9.
.999...
.999... is less than ANY positive real number. By 1), we conclude 1.0 - .999... is nonnegative. Therefore, 1.0 - .999... is equal to zero -- another way of saying .999... is equal to 1.
1)
2) What IS
3) If a > b, then c-b > c-a. Thus, given 2), for ANY finite sequence of nines S9, we see that 1.0 - S9 > 1.0 -
4) What do we know about 1.0 - S9? Well, as the number of 9's after the decimal approaches infinity, S9 converges to 1. This means that 1.0 - S9 converges to 0. Among other things, one of the things that this means is that given any positive number epsilon, no matter how small it is, we can force 1.0 - S9 to be smaller than epsilon.
5) By 3) and 4), we conclude that 1.0 -
If you have a secure channel to transmit the one time pad, you could use that for the message instead and not need encryption.
That's not always practical. All secure channels I know of rely on either very close proximity or tremendously expensive physical security. As such, secure channels tend to be limited, while the locations from which one wants to send a secure message are numerous. Therefore, it makes sense to physically go to a secure channel, get a one-time-pad and then, when you need to communication, use it to send your message from anywhere, over an insecure channel.
Heh. Who knows what his uncle Nicholas and his cousins Anastasia and Alexei could have done had not the bloody commies killed them in 1918...
You can give all manner of proofs that 1=.999999..., but they tend to involve symbolic manipulations of some sort, and while they layperson might feel that each individual step *seems* justified, they will be convinced that there is some sort of sophistry involved, and that one of the steps isn't quite right. The issue is that they don't really know the difference between a number and a decimal expansion. One is a representation of the other, but they are not the same. The following example is useful for showing the difference between a number and its representation.
Consider the following way of representing a positive integer, based on the fibonacci sequence, 1, 1, 2, 3, 5, 8, ...., where we denote the nth term of the sequence by f_n. We take a finite string of 0's and 1's of the form (a_n)(a_n-1)...(a_2)(a_1) and say that it represents the number a_n * f_n + a_n-1 * f_n-1 + .... + a_2 * f_2 +a_1 * f_1. For example 1011 represents 3+1+1=5, as does 10000. We see that numbers do not have unique representations in this form. However, they do have unique representations where there are no consecutive 1's.
We can contrast this to base 2 representations of integers, where every number has a unique representation as a string of 0's and 1's, or base 10, where every integer has a unique expression as a string of 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Actually, these expansions are not quite unique, as we have to restrict to strings that do not start with 0.
When people think about numbers bigger than 10, they tend not to think of them as an abstract quantity, but rather as a decimal representation. This works well enough, because representations are essentially unique. But people still understand what an integer is, and nobody confuses the decimal expansion of 12 with the fact that you can count out a dozen eggs one at a time.
However, there is a disconnect between numbers and their decimal expansions when they are not integers. Why is 1/3=.3333333...? People might be able to say something about the division algorithm, and how if you divide 1 by 3, things never stop and you keep on getting 3's. But what does .333333.... mean, in the absence of actually doing division? And given that no division will ever actually give you .99999999....., what does that mean?
The answer is that decimal expansions are shorthand for saying that we can get successively better approximations to our number by taking more and more digits. If we don't assume that everything has a unique decimal expansion, and that decimal expansions just represent numbers, the answer isn't mysterious. Does .99999.... = 1? That's just the same as saying "Does taking more and more digits give us arbitrarily good approximations of 1?" Taking n digits approximates 1 to within 1/10^n, which approaches 0, and so the approximations get arbitrarily good, and hence we do have equality.
Well, you wouldn't have to put up with my cheap shots and snarky comments...
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
R's a pretty schmart guy, and while I haven't mean S or A, I'd bet that's true about them as well.
N = PQ, where P and Q are primes. If you know P and Q, you can determine the encryption and decryption keys in polynomial time, and use them in polynomial time, which is why using RSA at all is practical. If an oracle gives you p and q, you can determine in polynomial time whether N = pq, therefore RSA is in NP. The best-known algorithms for factoring are around e^(n/3), which means that you can make it the work your attacker needs to do exceed the predicted lifetime of your planet while still only needing to do small amounts of work yourself, so that means that RSA provides security while remaining practical.
If P=NP, then there is an algorithm to determine P and Q from N in polynomial time, and therefore an attacker can determine your keys in polynomial time, so you're not secure. It may be that the polynomial is something large and annoying, like O(N^10) to crack vs. O(N^4) to generate keys, in which case a defender with moderate resources might still be able to protect her data against an attacker with relatively large resources, but it's more likely that a defender wouldn't be able to create practical-sized keys with age-of-the-planet attack times.
Factoring is not believed to be NP-complete, so it's possible that somebody could solve factoring without solving 3-SAT, but this guy's apparently claiming to be able to solve 3-SAT, at least to accuracy-of-the-media levels of interestingness.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
there's a 9 at the end
This is why your understanding fails. There is no end.
Correct.
What is really so complicated by these simple examples:
1/3 + 1/3 + 1/3 = 3/3 = 1
And since 1/3 exactly equals 0.333... we have:
0.333... + 0.333... + 0.333... = 0.999...
And since the two sums are exactly equal, 0.999... equals 1. It's not really that magic, and your normal daily life will not be affected. It is, however, true.
I'm not sure that I buy that 0.333 repeating added to itself three times is 0.999 repeating. In fact, I'm not sure that I fully understand what addition means when you involve the decimal representation of a repeating fraction. I intuitively know the result because I convert this to 1/3+1/3+1/3 in my head, but how do I determine if there's a carry operation when doing this in decimal?
Not all geeks are computer scientists. I'm an aerospace engineer and I got my card in no time.
Exactly. The security of RSA has nothing to do with p/np but with the lack of an efficient algorithm for factoring. p=np only proves an efficient algorithm exists, but doesn't supply it. It could be many, many years (or never!) after p=np that such an algorithm is discovered.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
To be precise, probably nobody's built one on purpose...
If you're asking whether non-determinism exists in the physical world, that's really a metaphysical question, and you should ask a philosopher or your local quantum mechanic. In the cryptography business, the closest related problem is "If you've stolen a key from your target, can you tell if it's the right one?"
The original Turing machines had infinitely long tapes, which is easy to do if you don't have to build one of them. Since the original work in NP-Completeness, there have been a bunch of further problem classes defined that may constrain the size of the Turing machine, e.g. PSPACE problems with can only be run on a system with space that's bounded by a polynomial function of the size of the problem, so you potentially could build them for some reasonable sets of problems. More years, more PhD theses, more professors needing to publish papers, more problem categories.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
What do you know about number theory? Aren't you some kind of expert in non-Euclidean geometry?
...the future crusty old bastards are already drinking the Kool-Aid.
Exactly - it's a very common epsilon-delta proof. You challenge the opponent to find an epsilon they think your answer is wrong by, and you come up with a delta that beats your opponent's epsilon. In formal terms, (f(x) - f(x+delta)) epsilon. In this case, f(x), the target is 1, and delta is -epsilon. If your opponent challenges you to find a number 0.0001 close to 1, you can give him 1-0.0001 (aka 0.9999). Because your opponent can pick arbitrarily close to 0, and you always have a delta to win the challenge, then your opponent cannot claim your number is any different from 1.
Correction. It does not take exponential time to factor a product of two large primes. The general number field sieve is sub-exponential, though it is super-polynomial. See http://en.wikipedia.org/wiki/General_number_field_sieve for details.
Really? I haven't encounter any of those; can you provide any more information?
The ringing of the division bell has begun... -PF
If you're working in a given field, there may be problems that are more like the one you're working on than 3-SAT, so you can reduce to/from them, which will often be much easier and more efficient to prove, even if it's a less efficient way to solve 3-SAT. If your goal is theoretical, that's fine - Reduce FOO to BAR, BAR is known to be NP-Complete, Deliver Thesis.
If your goal is practical, because you want to solve real instances of FOO, tell you it's NP-hard may say you shouldn't try to find the optimal solution but look for near-optimal heuristics, or maybe you should reduce it to BAR, which already has a good near-optimal heuristic or has an optimal solution that's usually but not always fast. Or it may be that knowing that FOO is NP-hard tells you to give up and solve a different problem instead (e.g. in cryptography, where inexact solutions are useless so maybe you should put a keylogger in your enemy's keyboard or drug the courier who's got the one-time pads instead.)
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I believe the worst problem with recurring decimal notation is dropping the implied remainder. My point was that the expansion of 1/3 to any finite number of decimal points always has an implied fractional remainder that is usually not written down. Each step of the expansion process to another digit reduces but does not eliminate the remainder. Therefore, even if you continue this expansion to infinity, the remainder in your calculation never disappears. Even if its limit approaches zero, it is *not* zero.
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
Well, no. In ALL cases where f(x) exists, the limit of n as n approaches x is ALWAYS f(x). It is the same thing.
Only if f(x) is continuous.
I also studied TRUE Computer Science (subset of math... hell... it was all math), though I do not work as a scientist... I am a practitioner. I know what science is and I know what it is not. My issue is with the word "engineering." Bridges and roads and even computers ARE engineered. They are tangible, physical, REAL. Software is called SOFTware for a reason. You can't actually SEE it (the thing in itself), SMELL it, TASTE it or TOUCH it, or HEAR it, or empirically sense it it any way other than it's effects (a blip on the screen); software is conceptual. Engineering is not conceptual, it is always quite tangible. I think your examination of my example of poetry and hairstyling engineers is quite arbitrary. I'm not saying that what they want to call software engineering isn't science... just that it isn't engineering, in the same sense that a journalist isn't a news engineer. It dilutes the meaning of the word, your wiki definition notwithstanding. Prior to about 1995, there was no such term as a software engineer, yet there were certainly the same tasks being delt with to a large extent for at least the previous 30 years, if not the previous 6000 years. Even the work of a poet can withstand a large electro-magnetic pulse, either in our memory or in a printed piece of dead tree, so in a sense, a poem is far more "real" than a computer program. If you build a bridge, no matter how terrible it is, no matter how little planning you put into it, you still engineered it, because it physically exists, after all. A mathematical equation, on the other hand, can't truly be engineered. Philosophically speaking, that equation existed a priori, like all numbers, simple or complex, without the need for any anthropomorphic realization. There are no software engineers in the same sence that there are no mathematical engineers. This term was applied as a marketing device. Software Engineers ARE Software Developers with a cooler name. Marketing, nothing more.
I wish you luck with your studies. Computer Science is a cold unforgiving bitch, a true moving target of a curriculum if ever there was one.
The Admin and the Engineer
But it is :)
I am confused. Which step is profit?
Blizzard, the entertainment company? Is it part of some kind of joke? Obviously I'm missing something when someone cites an entertainment company for a mathematical proof.
How many crayons he has?
2.) 9.99999... - 0.99999... = 9 // the infinite decimal expansion is still a number and there's no reason we can't subtract it.
Really? What algorithm did you use to get that? The algorithm they teach in school involves starting at the rightmost non-zero decimal place of both terms, but neither 9.999... nor 0.999... have rightmost non-zero decimal places.
Your multiplication step in #1 has a simiiar problem.
See also Mathematical fallacy - Infinite series on Wikipedia.
Not to get completely off the subject, but there are many perfectly understandable proofs of why 0.999... = 1. For instance, one of the things that defines what a real number is that it is not exactly the same as a different number. Seems pretty common sense, huh? So what number, exactly, comes between 0.999... and 1? Like you said, those 9s go on forever, so if there is nothing that you can add to the first term to turn it into the second, they must be the same. They are just 2 different ways of expressing the exact same number. You probably don't have a problem with the idea that 1/3 = .333..., so multiply both sides by 3 and what do you get?
There's even a wikipedia page that I'd totally paste in here if Chrome was able to do so.
More to the point, what you are effectively saying with the "..." in 0.999... is .. n] (9 * 10 ^ -m)
Lim[n->infinity] Sum[m - 1
and the result of that limit equation turns out to be 1.
Yes, that Blizzard. It was an April Fools' joke, but it's still valid.
If you can't convince them, convict them.
Pah, brute force is P although the problem moves over to defining the input set.
More to the point, what you are effectively saying with the "..." in 0.999... is .. n] (9 * 10 ^ -m)
Lim[n->infinity] Sum[m <- 1
and the result of that limit equation turns out to be 1.
(pardon the missing < -- slashdot gobbled it up)
If 0.999... != 1, then there exists a number which is greater than 0.999... and less than 1. What is this number?
Well, duh, when you break that 1 into 3 parts you're going to miss a few crumbs here and there, you know, onto the floor, stuck to whatever you cut that one up with...I mean, why get so worked up over a crummy unit?
The problem with that approach is that it's circular: it's true if 0.999... is exactly equal to one, but false if it's only an approximation:
Let x = 0.999...9 (any finite number of 9's);
then 10x - x = 9x = 8.999...1.
Dividing both sides by 9, x = 0.999...9 != 1.
"The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
Yeah, but since neither I (or the random Blizzard "press release" I found) are using approximations, then it's true.
If you can't convince them, convict them.
And then there are those who settle on sub-par supplies too, of course.
And in base 3:
0.0222... is 0.1
...and because his crayons are different sizes, he wants to pack them into the smallest possible volume of his crayon-carrying knapsack.
I think 0.333... may only be a very close numerical approximation of 1/3
It's not. 0.333... isn't a number at all, it's a summation series of infinite length. That means it never ends. Ever. It's another exact way of stating 1/3. "0.3333" or any other finite series would be an approximation.
It's just like you can state cos(x) = 1-(x^2/2!)+(x^4/4!)+... This is an exact definition, not an approximation. If you want to say integrate cosines, or square the cosine, then you can derive another exact definition for the integral or square. In the case of the integral you might recognize that it can be refactored in terms of the series for the natural logarithm; the infinite series is a very useful analytical tool. And it's used to deal with exact definitions, not approximations.
"including one that runs in time (4/3)^n and succeeds with high probability."
I'll create one that runs in O(1) time and succeeds with very low probability.
Oh ye of little faith. Bear with me as I show you how.
Imagine an infinite series of pairs. Let's start with .9 and .1. This pair total 1. The next pair in the series is .99 and .01. It also totals 1. Following that is .999 and .001, and so forth. As the number of 9's increases, so too does the number of zeros. But there must always a 1 on the end. It is vital for the series to be correct. You can't just assume that it goes away as you approach infinity; it's part of the definition of the series. If you have infinite 9's, than it must be paired with [infinity-1] 0's and a 1, and together will total 1.
If a solitary 1 at the end of infinite 0's is impossible, then so too is an infinite number of 9's. They are opposite sides of the very same coin.
Another way to think about this: we're talking about the set of real numbers. This set is a continuum. In other words, between any two points lie an infinite number of other points. This must mean that some points are infinity close to each other. It's just the nature of the thing. 0.000...0001 is just such a number. It is infinitely close to 1, but not equal to it. There must be such a number, or there could be no continuum. The set of real numbers could not be.
A mathematician would surely say it's much more complicated than that, but you get the idea.
I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
They may both be fine for representing the same physical amount, but 0.999... and 1 differ as numbers in a very obvious way: The former repeats endlessly while the latter is static and has a completely stable meaning.
Show it, or shut it.
I won't join Slashcott. OTOH, If Beta goes live, I just won't be back until it's fixed. Sorry Dice.
Yes it does. The two formulations are equivalent, and, in fact the time-to-check answer one is much more commonly used because it is much easier to reason about.
I think the issue is with the explanation of "recurring". 1/3 is not 0.333333 written forever. 1/3 is the _limit_ of 0.333333. It's what you get when you reach the edge. Hence calculus. 0.9999 recurring is the same. If you think "it's writing infinite 9's" then you've missed the point. 1 is the _limit_ of writing infinite 9's. It's what you get when your done.
I do have an issue with this proof, and I believe the assumption in (1) is incorrect.
By assuming in your premise that (0.9999.... * 9) - 0.9999.... = 9, you've already made the assumption that 0.9999.... = 1
Suppose 0.9999... may not be 1. Suppose 0.9999.... = 1 - x, where x is some value:
1) 0.9999.... * 10 = (1-x) * 10 = 10 - 10x
2) (10 - 10x) - 0.9990.... = (10-10x) - (1-x) = 9 - 9x
3) (9-9x)/9 = 1-x (aka nothing has changed, and nothing has been proven by this sequence of toggling).
A correct proof would show definitively that x = 0. Which is not possible. You can only show that x --> 0 (which is true IMHO).
Because 0.9999..... != 1. 0.9999.... --> 1
Didn't see any algebra in your proof. I think you meant to do something like
x = .9... .9... = 1
10*x = 10*.9...
10x = 9.9...
10x -x = 9.9... -.9...
9x = 9
x = 9/9
x = 1
x =
Or I'm just being pedantic about the use of the word algebra.
Just to be more verbose, basically, suppose that 0.9999.... = 1-x
x may be zero or not. Which is what we need to determine.
now 0.9999.... * 10 = (1-x) * 10 = 10 - 10x
However the proof supposes without hard evidence that 0.9999.... * 10 = 9.9999.... , which is being treated as 10 - x.
Hence the proof supposes without hard evidence that 10 - x = 10 - 10x. Following this, its not hard to "arrive at the conclusion via arithmetic" that x = 0.
Simple: 0.333... = 0.3 + 0.03 + 0.003 + ... = 3 (0.1 + 0.01 + 0.001 + ...) = limit 3*sum(10^-n). The infinite sum converges to 1/9, which exists as a real. Multiplying by 3 gives 1/3. Multiplying the whole thing by another 3 gives 1. The term-by-term multiplication is valid as the series is convergent.
If your system has a fixed amount of memory, then I suggest that they really added O(1) to your projects
Does anybody still write simple numerical problems like that anymore? I have not done anything that trivial in over a decade and a half.
XML is a known as a key material required to create SMD: Software of Mass Destruction
Or you could use 1/7 = 0.142857142857... Or 1/11 = 0.090909090909... From here you can probably convince them that ANY rational can be written exactly as a recurring decimal (as 10^k-1 is divisible by k for all k)...
Or you could use 1/7 = 0.142857142857... Or 1/11 = 0.090909090909... From here you can probably convince them that ANY rational can be written exactly as a recurring decimal (as 10^k-1 is divisible by k for all k)...
Doh, that's not quite right, but you get the idea.
Ah - it's got a pigeonhole principle thing happening: the remainder when dividing 10^j by k for j = 1..k must either repeat or be zero. See what fun one can have with such "simple" problems.
http://qntm.org/pointnine
I know you've gotten a ton of other answers, but I think your fundamental difficulty is in the analogy you're trying to employ.
0.999... is not a equation or sum approaching a limit, it is a single number. The fact that we read left to right does not mean that there is any actual evaluation happening as our eyes drift down that long, long row of 9's. Each 9 is not a subsequent point on a line that is approaching an asymptote. The entirety of (0.99... ) represents, itself, a single point on the line of the reals. That point is infinitely close to 1, and is stationary...it's not "approaching" 1, it's already there and it's sitting right on top of it. It's the same point.
Hopefully this geometric analogy will help. ;-)
Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
A number written like 0.99... does not have a right edge. The 9's continue forever.
Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
No, this is incorrect, only equations and sums approach limits.
The series 0.9 + 0.09 + 0.009 + .... approaches a limit.
0.99999... is a number. It does not approach anything, it simply is. It just happens to be a number that looks messy in our decimal notation.
Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
The problem is that you're thinking of it as a process of adding digits to the end, rather than the infinite digits that are just there in the decimal representation. No matter how long you continue the "expansion process" for a finite number of steps, you will not get rid of the remainder. The whole point of having infinite 3s on the decimal representation of 1/3 is that no finite number of 3s would be exact.
Infinity is a hard concept for many people to grasp. As soon as you understand that infinity does not mean "a really large number" or even "as far as you could count if you started from the start of the universe and continued until its eventual destruction", you'll understand why 0.999...=1.
Not even close. Brute forcing a password of fixed size n will be k^n where k is the number of possible characters. A polynomial increase would be n^k with k being some constant. If brute force search were in P, then all answers would be achievable in polynomial time, to include answers to NP problems (which are verifiable in polynomial time), thus 2*n^k which is still polynomial and would trivially prove P==NP if it were true.
Government is not reason; it is not eloquent; it is force. Like fire, it is a dangerous servant and a fearful master.
You can represent the same number with different glyphs. It's better said that 1 and 0.999... represent the same number. Just like how 1/3 and 0.333... are different representations of the same number. Or how 1000 and 8 are different representations of the same number.
Numbers are abstract concepts. We represent them with a standardized system, sure. But at the end of the day, we can represent them however we want. It just happens that the most useful representation is a standardized one.
To say that 0.999... = 1 is undeniably the case is just not true.
It's quite possible to define a number system that has numbers separated by an infinitely small gap just as much as you can have numbers so large they can only be expressed as bigger than all numbers of a set. It's still maths and it still produces true statements.
Maths will only ever churn out true statements based on the assumptions you make, it's your philosophy that will tell you what assumptions are meaningful.
My point is that all your algorithms are theoretically O(1) if "n" is not unbounded. Ie, if you only have 64K of memory. Remember that O(1) is the same as O(100000000000).
Granted this is technical nit-picking, but it's an important point when working with the theory.
Or as one of my colleagues in grad school used to joke that all functions can be reduced to table look up. Just when you thought you understood Big-Oh for time, now you've got to work with Big-Oh for both time and space.
"==" usually means "test whether both sides equal" whereas "=" means things on both sides really do equal.
It irks me that people tend to think == means that things equal; more equal signs does not make the statement more valid, on the contrary, it makes one question the validity in a way..
Any rational can be expressed by its terminating decimal notation (if it has one) and its repeating decimal notation
Assertion to be tested
.999... = 1
.999... = 9.999... .999... = 9.000... ((10-1)*.999) .999 is equal to 9.000... /9 = 1.000... .999 is = 1.000...
Rationale:
because 10 X
9.999... -
so 9 times
so 9.000...
so
so either (1.000... is not equal to 1) or (.999... is equal to 1). So math goes with the second.
You can express it as an infinite geometric sum (0.9+.09+.009+...+9/10^(-n)) that converges at one
Meanwhile, NP looks at the mirror and at her golden globe and says... You think P is enough? only if you say it about b^n times. Better luck next time!
As long as the debate as to whether Gork or Mork is better.
Hey man, thanks! I think I have a pretty good handle on things now.
Random Thoughts From A Diseased Mind (Not For Dummies)
That last bit is fun to read aloud: .... the hardest ones in in pea, in the sense that if any of them is in pea, then everything in in pea is in pea .... ;)
What other option is there? It's either polynomial (P) or not polynomial (NP), isn't it?
Your first problem: NP does *not* mean "not polynomial" or even anything remotely like that. It means "non-deterministic polynomial time", which essentially means we can verify the answer in polynomial time. All P algorithms are inherently also NP. NP-complete problems, like 3-SAT, are problems such that it is easy (i.e. doable in polynomial time) to turn any other NP problem into them. That's why being able to solve an NP-complete problem in polynomial time means we can solve all NP problems in polynomial time. NP-hard is another class that only partially overlaps NP, and it means that the problem is at least as hard as the hardest problem in NP (i.e. it may or may not be in NP, but it's at least as hard as an NP-complete problem).
Note, there are many, many more complexity classes than just these, also. NP is just the set of yes/no problems that can be verified in polynomial time. One thing you'll note is that integer factorization isn't in NP. Or, more accurately, integer factorization as you usually think about it isn't in NP. The "decision version" (i.e. NP version) of the problem is, essentially, "Is there a non-trivial factor of a given number?" The analogous "function version" is much more what you probably consider to be integer factorization: "Is there a non-trivial factor? If so, give me one." Function problems exist in a different class: FNP, which has FP as the counterpart to P. However, FNP=FP if and only if NP=P.
And, just for your edumacation, a small sampling of other complexity classes:
* PSPACE (doesn't care about time; it's the set of problems that can be solved with polynomial _space_; note that we've already proven that the analogous "NPSPACE" is equivalent to PSPACE; we've also shown that NP is entirely contained within, but not equivalent to PSPACE)
* BQP (similar to P, except with quantum computers and a hint of uncertainty; in particular, it's the set of decision problems solvable on a quantum computer in polynomial time with the kicker that it allows for a limited probability of error; we don't know how this relates to NP, other than that all P problems are BQP)
There are many, many others, covering far more things than you can probably imagine without a background in complexity.
Anyway, that was a bit more teach-y than I had expected, but complexity is one of those topics that I adore too much to pass up such an opportunity.
Remember, open source is free as in speech, not free as in bear.
In mathematics, italics are generally used for definitions and not for emphasis. That seems to be the case here -- he's "defining" what he means for substructures to be processed in parallel. I'm rather impressed that you made it that far through the paper. I'd dismissed it as crankery before the end of page 1 and moved on with my life.
Rational numbers vibrate/oscillate. Probably transcendental ones too!
hexadecimal.
0.999... != 1
0.999... = A
Evil people are out to get you.
And you're wrong in a very obvious way: 0.999.... is every bit as static and stable as 1, even if they were not equal (the same way that 0.333... is static and has a stable meaning). The fact that we are using an infinite number of digits to represent it in decimal does not change this fact. Numbers are not processes. If they were, then in order to cut .333... of a cake I'd need to go 3/10 from my first cut, then 3/100, then 3/1000, etc forever. You can do that if you want, but I''ll just go .333... from the outset and be done with it.
Remember, open source is free as in speech, not free as in bear.
Obviously I meant .A, not A.
Evil people are out to get you.
That is wrong. In all cases where F(x) is CONTINUOUS near x0 the limit of f(x) when x -> x0 is equal to f(x0).
That is wrong as well. If F(x) is continuous at (not "near") x0, then F(x) -> F(x0) as x -> x0.
I did mean to suggest that I don't understand the common definition of 0.999...=1, I understand the notation. It was this very definition of 1/3 = 0.333... I was arguing against because I believe that 0.333... with an infinite number of 3's is a useless concept. The action of writing out 1/3 in decimal notation is a process, as is the process of writing out the first 1 trillion decimal digits to pi. Both are numbers that decimal notation cannot accurately represent as neither number can be expressed precisely as a fraction with denominator divisible by only 2's and 5's. I was simply stating my belief that it is misleading to simply say that these digits continue to infinity, instead of leaving an explicit remainder or error bounds information from such a representation.
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
Traditional usage of the one-time-pad is to bring a book of pads. When you write back home, you use a pad and send the encrypted message over any channel available. When home writes back, they encrypt their messages with pads that you've got with you. When you finish using either, you burn the page that the pad was on. The pad is never transmitted. The agent receives the pad book directly from the person they wish to communicate with, and absolutely nobody else is allowed near the twin.
Proving P=NP by (for example) finding a polynomial time solution to a #P-complete problem won't immediately kill RSA because it's unclear (to me at least) how that would map to an efficient factoring algorithm. But a constructive proof such as what Romanov claims, i.e. an efficient 3-SAT solver, immediately deals a death blow to RSA, AES and everything else but one-time pads. That's because all these systems are polynomial time reducible to some 3-SAT instance.
You're forgetting the second part of this: because NP-completeness proofs have formed a chain of reductions, finding an algorithm for one of them is the last step to finding an algorithm for all NP-complete problems that we have found (and any others we manage to reduce later).
Remember, open source is free as in speech, not free as in bear.
No, but I read the article.
*ducks*
Zeno needed here:
Suppose you want to recite Pi to your buddies, but you don't have all day. Since you are Superman, you decide to start out at normal speed, but then cut the time it takes to recite each subsequent number in half because you remember from reciting 1/7 you could finish is a surprisingly short period of time. Surprisingly, you find out that it doesn't work like you did when you recited 1/7. You give up and decide you aren't so super after all. What went wrong?
Given that these days were working with gigabytes of memory I really don't want to encourage anyone to consider such folly for enterprise scale applications and services.
XML is a known as a key material required to create SMD: Software of Mass Destruction
That's an interesting and appealing point, but intuitively it seems to me like looking at the problem from the wrong direction (left to right rather than right to left). Don't know what to make of it, though.
Which is *exactly the same as the original complaint about 0.999... not being 1*. That's the grandparent's point. One cannot complain about the equality of 0.999... to 1, and at the same time claim that 3*0.3333... is obviously 1.
I'd go one further, and say that even if a slashdotter managed to have sex with Natalie Portman, she would still not be satisfied. Hence P != NP.
Integer factorization is not (yet) np-complete, so technically no one can do what you are asking
You've got it backwards. A problem being NP-complete means you can reduce any problem in NP to it.
The problem "does N have a nontrivial factor smaller than m?" is in NP. A solver for that can easily be used to factor integers.
even if they have a legitimate proof of p=np.
Technically speaking, a legitimate proof that P=NP implies that every problem in P is NP complete.
What we're talking about is not proofs but rather unproven algorithms which seem to scale because they aren't run on hard inputs.
More to the point, it is not even known if factorisation is part of NP at all. It could still be in P.
The other posters have already done a good job of explaining. I'll add a graphical help.
Grab a sheet of paper and draw a horizontal line, on which you mark 0 at the left end and 2 at the right end.
Now mark 1 in the middle with a dash. Then mark 0.5. Is it the same as 1? No, there's quite a bit of space in between.
Now mark 0.666... (two thirds). It's an infinite decimal number, but it's clearly not at the same place as 1 because there is obviously some space between.
Finally, mark 0.999....
As you have hopefullly understood by now, there is nothing between 0.999... and 1. Hence on your paper, these two are for all intents and purposes represented by the same dash.
0.999...(1000 times)...9 would not be the same as 1, but slightly to the left. Thus it's not 1.
0.999...(infinite times)...998 doesn't make sense. Theoretically it would be smaller than 0.999..., but how do you add some arbitrary number the end of an infinite 0.999... sequence?
Once you have a firm enough grasp of this, you may want to try learning the epsilon-delta formalisation. Fun stuff for a certain type of mind.
So, let me get this straight.
In base 3, 0.0222222... == 0.1
In base 10, 0.0999999... == 0.1
so
In base 3, 0.222... == 1 and
in base 10, 0.999... == 1
and since 1 in base 3 == 1 in base 10
then obviously 2 in base 3 == 9 in base 10.
[/more_silliness]
If there is nothing between 0.999... and 1, then you would not the logical conclusion be that there is nothing between 0.888... and 0.999..., therefore 0.888... = 0.999..., and since 0.999...... = 1 then 0.888 = 1 as well?
Just thought I'd point out that there are actually plenty of numbers between 0.888... and 0.999...
For example 0.91 and 0.98 are both clearly in between the two.
To be pedantic, that is only true if f(x) is continuous. But of course, in the situation at hand it is.
Score: i, Imaginary
I think your problem is that you have trouble seeing the difference between a number (the abstract concept) and a representation of a number (a concrete matter of notation). You are assuming that two different representations (namely, "0.999..." and "1") necessarily correspond to two distinct numbers. However, that is not the case in the base-10 positional system for representing real numbers.
Score: i, Imaginary
Err, that's not actually correct. 0.999... != .A, as you could transform any of those 9s (after the first) into an A to have a number between .999... and .A. This is like trying to say that 0.444... = 0.5, which is clearly wrong.
Also, the original comment mentioned "branches of mathematics", which is what I was curious. Hexadecimal is just a different base.
The ringing of the division bell has begun... -PF
Proving P=NP by (for example) finding a polynomial time solution to a #P-complete problem won't immediately kill RSA because it's unclear (to me at least) how that would map to an efficient factoring algorithm. But a constructive proof such as what Romanov claims, i.e. an efficient 3-SAT solver, immediately deals a death blow to RSA, AES and everything else but one-time pads. That's because all these systems are polynomial time reducible to some 3-SAT instance.
As far as I know, there's no proof of that. If there was, they would be in the class np-complete rather than np-hard.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Integer factorization is not (yet) np-complete, so technically no one can do what you are asking
You've got it backwards. A problem being NP-complete means you can reduce any problem in NP to it.
The problem "does N have a nontrivial factor smaller than m?" is in NP. A solver for that can easily be used to factor integers.
even if they have a legitimate proof of p=np.
Technically speaking, a legitimate proof that P=NP implies that every problem in P is NP complete.
What we're talking about is not proofs but rather unproven algorithms which seem to scale because they aren't run on hard inputs.
I had it exactly right. They cannot use a 3-sat solver on "does N have a nontrivial factor smaller than m?" because the latter is not in np-complete. A solver for the latter can indeed be used to trivially factor integers, but since it isn't what they have they can't. Nor can anyone with an np-complete solver trivially do that.
And yes, of course a legitimate proof implies that every problem in P is NP complete. That's obvious. But it doesn't screw RSA because RSA security is based on the fact that an efficient algorithm for factoring integers is unknown, not that such doesn't exist, and everyone knows that.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
It could also be said that .999... is 1/Infinity away from 1.
i.e. .999... + 1/inf = 1
But that's as stupid as this whole argument. .999 is as close to and may as well be for all practical intents and purposes for as much as it matters to anyone equal to 1.
(.999 is still not Unity)
Notation: The notation k.a_0a_1a_2...a_n... , where k is an integer and each a_j is an integer with 0 = a_j = 9, is defined as k + \sum_{j=1}^\infty a_j/(10^j). This geometric series clearly converges.
By this notation, 0.999... = 0 + \sum_{j=1}^\infty 9/(10^j). You may easily verify by the formula for the sum of a geometric series that this equals 1.
Is this derivation enough for you?
Le français vous intéresse?
Math is whatever we define it to be. You are perfectly free to define an axiomatic system in which concepts like "infinitesimals" make sense, and there are many mathematicians who have done this. I could define a formal system in which 7 = 4 if I wanted. For example, Z / 3Z (that is, the set of integers under mod-3 arithmetic)
Le français vous intéresse?
Actually, both numbers are both rational and real. .333=333/1000. Pi, on the other hand, is real but not rational.
The confusion isn't between two different types of numbers, it's between two different methods of expressing numbers, and confusing the representation for the number.
"Pulling together is the aim of despotism and tyranny! Free men pull in all sorts of directions" -- Havelock Vetinari
What other option is there? It's either polynomial (P) or not polynomial (NP), isn't it?
NP doesn't mean Not polynomial. It means NonDeterministic Polynomial. That is, solvable in Polynomial time by a Nondeterministic Finite Automata. As opposed to P which is solvable in Polynomial time by a Deterministic Finite Automata.
Polynomial time means that as the number of inputs (n) increase the time the algorithm takes to solve the problem increases by some constant exponent (e.g. n^2 or n^3). There is also Exponential time which means the algorithmic time increases by e.g. 2^n. In between Polynomial (n^2) and Exponential (2^n) there is 2^(log n)
--
JimFive
Please stop using the word theory when you mean hypothesis.
Obviously you and I know that 0.999... is not an approximation, but the people you would show this proof to aren't so sure. Most of the time the point you're really trying to get across is that 0.999... isn't just an approximation, and for that argument this proof, while perfectly true, is no help at all.
In order to understand that 0.999... is not an approximation you pretty much have to understand limits, and anyone who understands limits is not going to have a problem with 0.999... = 1.
"The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
I had it exactly right. They cannot use a 3-sat solver on "does N have a nontrivial factor smaller than m?" because the latter is not in np-complete.
You can use a 3-sat solver on any problem in NP. It doesn't have to be NP complete.
An instance of "does N have a nontrivial factor smaller than m?" *trivially* turns into a circuit. The circuit is just a bunch of multipliers and an OR gate!
Next up, a circuit trivially turns into a boolean formula. I hope I don't need to spell out the equivalence.
Third, they take the resulting formula and plug it into the reduction from SAT to 3-SAT.
Fourth they plug said formula into their solver.
Nor can anyone with an np-complete solver trivially do that.
Take above steps, but replace reductions depending on exactly which problem the solver solves.
And yes, of course a legitimate proof implies that every problem in P is NP complete. That's obvious.
That's great. The fact you can use a solver for any problem in NP-complete to solve any problem in NP is even more obvious. It's why NP collapses to P if NP-complete is in P!
But it doesn't screw RSA because RSA security is based on the fact that an efficient algorithm for factoring integers is unknown, not that such doesn't exist
Security by obscurity, eh? Luckily, it's not a problem for a constructive proof that P=NP, since the reductions are all known.
Common sense is commonly wrong.
Your deep philosophical problem is something you're just going to have to get over.
Here's a hint: You don't understand infinity.
The ellipsis after the 3rd 3 represents an infinitely repeating sequence of 3s. Please consider that for a moment. An *infinite* sequence. Not a sequence that stops at some extremely small number that you can append a different value to, but an *INFINITE* sequence.
The only thing you can add to 0.999... to turn it in to 1 is 0. Or nothing, since it already IS 1. There is no difference between them other than the visual representation.
And it's spelled "integer".
True. I suppose there are those who think that infinity is ultimately a number, so infinity - 1 makes sense to them.
If you can't convince them, convict them.
I don't know, you seem to think factorization is in np-complete while rsa think it is in np-hard. I'm going to go with rsa.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
I think this is the best explanation of NP that I have seen. Thank you!
Ummmm geez I have a problem with the idea that 1/3 = 0.333... because it isn't true.
The tyrant will always find a pretext for his tyranny - Aesop
Hmmm, I think that if you are going to start asserting things like that then you need to be making some unspoken assumptions explicit. For one thing all the arguments I've seen so far (and of course I may have skimmed too quickly) are implying that the limit of F(x) is asymptotically approaching a single value and that's certainly not necessarily true.
The tyrant will always find a pretext for his tyranny - Aesop
Proving P=NP by (for example) finding a polynomial time solution to a #P-complete problem won't immediately kill RSA because it's unclear (to me at least) how that would map to an efficient factoring algorithm. But a constructive proof such as what Romanov claims, i.e. an efficient 3-SAT solver, immediately deals a death blow to RSA, AES and everything else but one-time pads. That's because all these systems are polynomial time reducible to some 3-SAT instance.
As far as I know, there's no proof of that. If there was, they would be in the class np-complete rather than np-hard.
It was proven when the first NP-complete problem was shown to be complete for the NP complexity class. An efficient solution to an NP-complete problem is an efficient solution to all NP problems, not just NP-complete ones. You don't have to prove that an NP problem is NP-complete for that solution to apply, you only have to show that a problem is in NP, i.e. that a "yes" answer to the decision version of the problem can be verified in polynomial time. For an encryption problem the decision version is "does the output of this encryption function with ciphertext C and key X produce output that looks like a properly decrypted message?" Once you have that verification method, it can be encoded as a 3-SAT instance that can only be satisfied if the verifier would be satisfied. Since you have an efficient 3-SAT solver (assuming Romanov has the goods), when you feed the verifier 3-SAT instance into it, you are effectively exploring the exponentially large key space in polynomial time.
That's the power of NP-completeness--- just having a polynomial time verifier is all you need to be able to produce a polynomial time solver. It doesn't matter what the computational problem is, if you can verify the solution in polynomial time, you can solve the problem in polynomial time if you have a polynomial time solver for any NP-complete problem.
Infinity represents a value which, it seems to me, makes it a number... just not a number with a fixed value. You can do calculations with Infinity/Infinities which, again I think, qualifies it as a number... If 1 is a number and you assert 0.99999.... equals 1 you are claiming that the sum of 9/(10**N) [as N ranges from 1 to X] is 1 where in this case X is assigned the value of Infinity. IF you can assign it to a variable then it is a number. To restrict the definition of "number" to being "constant" or even "enumerable" is too restrictive... Is Aleph-Null not a transfinite *number*? But wth it's Friday night, I'm tired enough that I may as well be drunk and I haven't thought of this particular stuff for a painfully long number of years so I'm probably wrong.
The tyrant will always find a pretext for his tyranny - Aesop
You're clearly a communist trying to pollute our Precious Bodily Fluids. (I'm intrigued that that actually spell checks. A "sanity check" would fare much worse. Oh, well.)
Damn you math geeks. Why must you come here and spew your incomprehensible formulas.
Because this site's tagline is "NEWS FOR NERDS." (capitalization in original)
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
Could you be more specific? E.g., which assertions, and which unspoken assumptions?
For one thing all the arguments I've seen so far ... are implying that the limit of F(x) is asymptotically approaching a single value and that's certainly not necessarily true.
Certainly not. For one thing, the limit of a function of one variable with respect to that variable doesn't approach anything; it's either undefined or a specific value. The function itself may approach a value (e.g. F(x) approaches one as x approaches +infinity) but the limit, if it exists, is a constant (e.g. \lim_{x\to\infty}F(x) = 1).
"The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
0.99999.... has to be 1 because the real numbers are Hausdorff: any two different numbers have to have open sets around them that don't intersect. Alternatively, if two points are in every neighborhood of each other, they are the same (this is not true of people, for example :). Alternatively, any two numbers at a distance of 0 from each other have to be the same. What's the distance from 0.99999.... to 1?
If you don't impose the Hausdorff condition on Cauchy sequences of rational numbers, 0.99999999 isn't equal to 1. There will be, instead, an infinite number of different sequences of rational numbers for each real number, and mathematicians will need to talk explicitly about the class of sequences that are really at the same point in the line.
If you restrict to decimal sequences, only terminating decimals will have two different representations, which doesn't seem as bad, but it still will force people to talk about classes of decimal sequences that reference the same point in the line. ...these classes of decimal sequences are called real numbers.
I think the hole in your logic may be that 0.333... == 1/3. I think 0.333... may only be a very close numerical approximation of 1/3, but 1/3 cannot be expressed absolutely as a number (even assuming infinite 3s).
No, it is not an approximation. It is exactly 1/3. If that were not true, all of mathematics would break. Think about it: If 1/3 were not exactly .3333... (infinite) then you would have to add (or subtract, but it seems like your implication is that 0.333... = 0.333...343... (with infinite 3s and a 4 in place n). If that were the case, you could divide 1 by 3, render it as a decimal, multiply it by 3, and get a number greater than 1. Repeat ad nauseum to prove 1=7, 1=2,467,946, et cetera. If 1/3 is defined as exactly equaling .333... (infinite) and 1 is defined as 0.999... (infinite) then mathematics is consistent, performing a function on its inverse always gives back the original number, and life can go on.
I have read about the issue of 0.999... = 1 several times, but the explanation is much more complex than this.
Only because some folks don't like the simple explanation. The complex explanation is only necessary to put all the nonsense to rest.
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
I misspoke (mis-typed?) there, I had actually been picturing the limit of the derivative of F(x) as x approached some value where F(x) was discontinuous... hmmm, now I'm not sure where I had been going with that.... I plead Friday nightism!
The tyrant will always find a pretext for his tyranny - Aesop
I think the hole in your logic may be that 0.333... == 1/3. I think 0.333... may only be a very close numerical approximation of 1/3, but 1/3 cannot be expressed absolutely as a number (even assuming infinite 3s).
No, it is not an approximation. It is exactly 1/3. If that were not true, all of mathematics would break. Think about it: If 1/3 were not exactly .3333... (infinite) then you would have to add (or subtract, but it seems like your implication is that 0.333... (infinite) < 1/3 so we'll go with that) something to 0.333... (infinite) to get 1/3. This would have to have a non-zero digit somewhere, so let's call it 0.000...X0... with digit X in the nth place and infinite 0s thereafter, so that 0.333... + 0.000...X00... = 1/3. Since X is at least 1, this means 1/3 > = 0.333...343... (with a 4 in place n and infinite 3s thereafter). If that were the case, you could divide 1 by 3, render it as a decimal, multiply it by 3, and get a number greater than 1. Repeat ad nauseum to prove 1=7, 1=2,467,946, et cetera. If 1/3 is defined as exactly equaling .333... (infinite) and 1 is defined as 0.999... (infinite) then mathematics is consistent, performing a function on its inverse always gives back the original number, and life can go on.
I have read about the issue of 0.999... = 1 several times, but the explanation is much more complex than this.
Only because some folks don't like the simple explanation. The complex explanation is only necessary to put all the nonsense to rest.
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
Please ignore parent post, I foolishly left a < in one formula and a > in a later formula so that slashdot thought everything in the middle was an html tag, and omitted it. Please read the repost (also attached to GP) instead.
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
Indeed, all P problem (or NP problems for that matter) are PSPACE.
Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
You didn't learn about convergence in whatever passes for precalculus mathematics in your country.
Probably in the US. That's where I took precalculus and I didn't learn it at that stage. And then people wonder why our high school grads test badly at math. Anyhow, my cohort didn't learn about convergence (formally) until 2nd-semester calc in college (though the more competent among us had already learned it on our own).
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
Best car analogy i can think of is: Is it easy to both plan a car trip and check that your car trip is planned well. If yes, the P=NP, if no, then P!=NP, if you cant determine either yes or no then its all wrong ;)
I like your analogy, but I would amend it to: "if you can't determine either yes or no, then it continues to be a mystery attracting all sorts of speculation from the trip-planning (and/or mathematical) community."
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
And if each car is located in a different city, then he'll have to go travelling in order to test all the criteria. Of course, he wouldn't want to end up hitting the same city twice...
Would he have to become a salesman as well?
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
Everyone has been saying that it's very, very hard (NP) to crack the code by trying combinations. Now there's a guy saying it's not quite as hard (P) and he wants everyone on the internet to check his work.
Where does NP-hard enter into all this?
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
Here you go: Let's say you want to have sex with Natalie Portman (NP). Up until now, it was generally assumed that meant you had to satisfy three conditions: be rich, handsome, and fascinating. Unfortunately, any one of those would leave out the vast majority of people on this list; satisfying all three (3-SAT) was considered virtually impossible.
But now, Romanov claims that it is sufficient merely to say the mathematical equivalent of "Please" (P). Naturally, people are skeptical.
Does this mean Romanov has successfully slept with Natalie Portman, or that he's just given us instructions on how to sleep with her, and left it up to us to test his method?
"I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
>I can usefully define 0.999... as the largest number which is less than 1 and reason about it on that basis.
I believe those are called infinitesimals, but they are not a feature of 'standard' mathematics.
(hey! paste works now!)
-- Give me ambiguity or give me something else!
I'll take a stab at this. To begin with, one thing most people have been missing (or at least not stating explicitly) in this thread is the following fact: mathematical notation is a matter of convention. That is, the meaning of notation is not god-given, nor is it a matter of intuition; it derives from precise and agreed upon rules.
Here we are talking about representing real numbers in decimal notation. So what are the agreed upon rules for this notation? Let's consider two cases: first the case of a finite representation, and then the case of an infinite representation.
For a finite representation, the rule is the following: if the representation is in the form "0.abcd", the corresponding number is given by the formula:
0.1*a + 0.01*b + 0.001*c + 0.0001*d.
Of course, the rule above only works for representations between zero and one with only four decimal digits; but I'm sure you can figure out what to do with longer representations. (I do not want to post the general formula here so we do not get unnecessarily distracted by heavy notation.)
Now consider an infinite representation. Can we apply the same rule as for the case of a finite one? Well, we have a problem: since there is an infinite number of digits, we are not able to carry out the sum given by the formula above and arrive at a result in a finite amount of time. In other words, we have a "sum of an infinite number of terms", which mathematicians call a series.
It happens that there is a whole theory of series, and that theory allows us to calculate the sum of a series without actually performing an infinite number of additions. The sum may be finite or infinite (it may be surprising to you that the sum of an infinite number of non-zero terms can be a finite number, but I will ask you to accept this as fact; I would explain it to you, but that's tangential to this discussion).
So, when we have an infinite representation of the form "0.abcde..." (the digits go on), we may imagine it to be the result of the "sum"
0.1*a + 0.01*b + 0.001*c + 0.0001*d + 0.00001*e + ...
but in fact the corresponding number is obtained by considering the series made up of the terms in the sum, and determining the sum of the series.
So, when we have the infinite representation "0.999...", the corresponding number is given by a series whose first few terms are
0.9, 0.09, 0.009, 0.0009, ...
and it turns out (according to the theory of series) that the sum of this particular series is 1.
Of course, the interesting and tricky part is knowing how to determine the sum of a series; but that really is not my point here. My point is that the fact that 0.999... = 1 rests on agreed upon rules on which number corresponds to a given decimal representation, and those rules assign the same number to "0.999" as they do to "1". Maybe this is not the answer you were expecting, because you would like an intuitive explanation that would make you feel it makes sense, instead of having to accept it as being simply the result of the application of seemingly arbitrary "agreed upon rules". Other people in this thread have tried, to some degree of success, to provide such intuitive explanations, and I welcome them. I'm merely making the point that, even though intuition plays an important role in mathematics, the meanings we ascribe to mathematical symbols are a matter of convention, not intuition.
Score: i, Imaginary
You don't know your math history. Wiles' proof of FLT took about a year to verify and repair. It took a number of years before a plausibly verifiable proof of the four color theorem was published. Perelman's dozen-page proof of the Poincare conjecture was so lacking in details that it was fleshed out to over 300 pages. History shows that proofs of hard theorems are not easy to verify, and definitely not "very easy". Even if the proof is constructive and is provably guaranteed to run in (say) cubic time, it needn't be so simple as a triple-nested for-loop. It could quite likely bear many similarities to exponential algorithms, but exploit a subtle property that just so happens to be bounded by a polynomial in the size of the input.
If .999... isn't equal to 1, then by how much do the two numbers vary? The answer is .0...1. That's inconceivable-- impossible to imagine a number that goes on to infinity, *stops* and then adds a 1.
Secondly: .999... = x .999... * 10 = 9.999.... | 10 * x = 10x
9.999 - .999 = 9.0 exactly | 10x - x = 9x
9.0 / 9x = 1
x = 1, .999...
I think your examination of my example of poetry and hairstyling engineers is quite arbitrary.
More arbitrary than your insistence that engineering concern itself with physical things only?
Even the work of a poet can withstand a large electro-magnetic pulse, either in our memory or in a printed piece of dead tree,
Ever hear of the PGP book?
Software Engineers ARE Software Developers with a cooler name.
Yet they are taught different things, at least in the place I've seen.
...a true moving target of a curriculum if ever there was one.
I wouldn't have it any other way.
Don't thank God, thank a doctor!
I don't know, you seem to think factorization is in np-complete while rsa think it is in np-hard. I'm going to go with rsa.
I think no such thing, and neither do they.
Remember how my first response in this thread was that you had your definitions backwards? I'm saying factoring is NP-easy. Nobody who actually knows what they're talking about thinks its NP-hard.
A problem doesn't need to be hard to reduce it to SAT.
No, because some of the easy problems have easy solutions that can't be generalized, e.g.
The point was that translating a solution isn't the problem (because that part is O(P(N)) where P(N) is some polynomial of N); the problem is coming up with a O(P(N)) solution to any NP-complete problem in the first place.
The above post was me, btw, I didn't realize it'd lost track of my login.
Must be that New Maths ah bin heering 'bout so much!
The tyrant will always find a pretext for his tyranny - Aesop
Although I am pretty convinced by the previous answer here, there's been so much discussion on it and whether 3x0.333... is equal to 1 or 0.999... that I felt compelled to offer this one:
A = 0.999...
B = 1.0
This simplifes the question to whether A = B. Now:
C = 10 * A = 10 * 0.999... = 9.999...
D = C - A = 9.999... - 0.999... = 9.0
At this point, we've worked out that C is equal to the sum of 10 A's, and then we've turned around and subtracted out one of those A's, calling this D. Logically this means that D would be left with 9 A's. To find out whether 9 A's are equal to 9 B's, we can divide by B and if the answer is 9 exactly, that is math's way of telling you that B == A.
D / B = 9.0 / 1.0 = 9.0.
Check and mate.
A problem doesn't need to be hard to reduce it to SAT.
And also note that you don't need to be able to reduce SAT to a problem for it to be hard!
Factoring is almost certainly easier than SAT but harder than anything in P.
So how would you verify that an optimal solution to the travelling salesman problem is in fact optimal in polynomial time?
So how would you verify that an optimal solution to the travelling salesman problem is in fact optimal in polynomial time?
That question can't be posed as an NP decision problem, so it is out of domain.
The NP traveling salesman decision problem:
Given a graph G and distance D, is there a path that traverses all the nodes that is shorter than D?
The co-NP traveling salesman decision problem:
Given a graph G and distance D, are all paths that traverse all the nodes at least as long as D?
The NP question has a verifier certificate for the "yes" answer but not the "no" answer. The co-NP question has a verifier certificate for the "no" answer, but not the "yes" answer. To provide an efficient and easily verifiable answer to your optimization question a co-NP-complete solver is needed.
Yes. You are quite right. I was aiming more for the humorous end of things.
Evil people are out to get you.