So in this post I talked a little bit about number bases and how they’re used in floating-point expansions. I thought I’d go a little bit more into them, since I didn’t really explain how they work.
Archive for June, 2007
This post will be a bit more elementary, though it’ll be about something that I love to do, and that’s play the piano.
A lot of people don’t play instruments because they say they’re not “musical”. Well, I have one word for you. Okay, it’s a name really. Ludwig van Beethoven. Beethoven is arguably the most well-known pianist and composer that’s ever lived. Most people can pick out one of Beethoven’s compositions, if not by name then by ear. Most people also know, if you remind them, that Beethoven became deaf in his 30s.
Of course, he was already an accomplished musician by then. But I would argue that his success despite his deafness was not remarkable in the least. Beethoven could compose music without hearing it not because of his latent genius (though I would definitely attribute the complexity of his music to that genius, among other things), but because musical technique is inherently mathematical.
jeebus> the “bishop” came to our church today
jeebus> he was a fucken impostor
jeebus> never once moved diagonally
WallJam7> roses are red
WallJam7> violets are blue
WallJam7> all of my base
WallJam7> are belong to you
Terror> “It’s easy to forget what a sin is in the middle of a battlefield.”
cky> opposite over hypotenuse
Okay, so that’s a Nintendo DS. Pay no mind to the man behind the curtain! Anyways…
This time we’re going to talk about floating-point numbers, what they are, how they’re calculated, why they’re used, etcetera. There seems to be a lot of confusion about and fear of floating-point numbers, especially from non-computer scientists (like me).
Suppose the country of Matristan has a network of secret agents. These agents may only contact certain other agents directly, according to the following rules:
* Each agent may contact himself or herself directly.
* Agent A may contact agents B and C directly.
* Agent B may contact agents C and D directly.
* Agent C may contact agent B directly.
* Agent D may contact Agents A and B directly.
Here’s the question: What is the least number of intermediate contacts agent C needs to contact agent A?
So what’s the big deal?
Let’s consider a slightly different problem. Consider the sentence “This sentence is false”. This is a slightly different formulation of the liar’s paradox in which the sentence makes claims about its own truth value. In other words, it’s self-referential. Clearly, if “This sentence is false” is true, then the sentence is false, in which case it’s true, etcetera.
Last time we talked about Turing machines (and the madman who dreamt of them). This time we’re going to discuss one seemingly trivial thought experiment about Turing machines that turns out to have tremendous significance for both computing and for mathematics. It is called “the Halting Problem”.
The Halting Problem asks one rather simple question: Does there exist a program which can, when given any program as input, determine whether that input terminates or not?