Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Could any one give an example of a bijective map from $\mathbb{R}^3\rightarrow \mathbb{R}$?

Thank you.

share|cite|improve this question
The basic idea is that you can take the decimal digits of the three input numbers and interleave them, mapping $(0.a_1a_2\ldots, 0.b_1b_2\ldots, 0.c_1c_2\ldots)$ to $0.a_1b_1c_1a_2b_2c_2\ldots$. This doesn't quite work because of the $0.4999\ldots = 0.5$ problem, but that detail can be cleaned up. – MJD Aug 16 '12 at 20:04
@tomasz yes, but the converse of your observation is not true, and the question asks for a bijective mapping. So it is no good for $f(0.4999\ldots, 0, 0)$ to be different from $f(0.5, 0, 0)$. – MJD Aug 16 '12 at 20:07
@tomasz: But to be bijective, you'll have to map every real number to $\mathbb R^3$, including the number $1/111 = 0.009009009009\ldots$ which would be mapped to $(0,0,0.99999\ldots)$ – celtschk Aug 16 '12 at 20:08
@MarkDominus: well... I'd just C-B it. ;) – tomasz Aug 16 '12 at 20:09
up vote 90 down vote accepted

First, note that it is enough to find a bijection $f:\Bbb R^2\to \Bbb R$, since then $g(x,y,z) = f(f(x,y),z)$ is automatically a bijection from $\Bbb R^3$ to $\Bbb R$.

Next, note that since there is a bijection from $[0,1]\to\Bbb R$ (see appendix), it is enough to find a bijection from the unit square $[0,1]^2$ to the unit interval $[0,1]$. By constructions in the appendix, it does not really matter whether we consider $[0,1]$, $(0,1]$, or $(0,1)$, since there are easy bijections between all of these.

Mapping the unit square to the unit interval

There are a number of ways to proceed in finding a bijection from the unit square to the unit interval. One approach is to fix up the "interleaving" technique I mentioned in the comments, writing $\langle 0.a_1a_2a_3\ldots, 0.b_1b_2b_3\ldots\rangle$ to $0.a_1b_2a_2b_2a_3b_3\ldots$. This doesn't quite work, as I noted in the comments, because there is a question of whether to represent $\frac12$ as $0.5000\ldots$ or as $0.4999\ldots$. We can't use both, since then $\left\langle\frac12,0\right\rangle$ goes to both $\frac12 = 0.5000\ldots$ and to $\frac9{22} = 0.40909\ldots$ and we don't even have a function, much less a bijection. But if we arbitrarily choose to the second representation, then there is no element of $[0,1]^2$ that is mapped to $\frac12$, and if we choose the first there is no element that is mapped to $\frac9{22}$, so either way we fail to have a bijection.

This problem can be fixed.

(In answering this question, I tried many web searches to try to remember the fix, and I was amazed at how many sources I found that ignored the problem, either entirely, or by handwaving. I never did find it; I had to remember it. Sadly, I cannot remember where I saw it first.)

First, we will deal with $(0,1]$ rather than with $[0,1]$; bijections between these two sets are well-known, or see the appendix. For real numbers with two decimal expansions, such as $\frac12$, we will agree to choose the one that ends with nines rather than with zeroes. So for example we represent $\frac12$ as $0.4999\ldots$.

Now instead of interleaving single digits, we will break each input number into chunks, where each chunk consists of some number of zeroes (possibly none) followed by a single non-zero digit. For example, $\frac1{200} = 0.00499\ldots$ is broken up as $004\ 9\ 9\ 9\ldots$, and $0.01003430901111\ldots$ is broken up as $01\ 003\ 4\ 3\ 09\ 01\ 1\ 1\ldots$.

This is well-defined since we are ignoring representations that contain infinite sequences of zeroes.

Now instead of interleaving digits, we interleave chunks. To interleave $0.004999\ldots$ and $0.01003430901111\ldots$, we get $0.004\ 01\ 9\ 003\ 9\ 4\ 9\ldots$. This is obviously reversible. It can never produce a result that ends with an infinite sequence of zeroes, and similarly the reverse mapping can never produce a number with an infinite sequence of trailing zeroes, so we win. A problem example similar to the one from a few paragraphs ago is resolved as follows: $\frac12 = 0.4999\ldots$ is the unique image of $\langle 0.4999\ldots, 0.999\ldots\rangle$ and $\frac9{22} = 0.40909\ldots$ is the unique image of $\langle 0.40909\ldots, 0.0909\ldots\rangle$.

This is enough to answer the question posted, but I will give some alternative approaches.

Continued fractions

According to the paper "Was Cantor Surprised?" by Fernando Q. Gouveâ, Cantor originally tried interleaving the digits himself, but Dedekind pointed out the problem of nonunique decimal representations. Cantor then switched to an argument like the one Robert Israel gave in his answer, based on continued fraction representations of irrational numbers. He first constructed a bijection from $(0,1)$ to its irrational subset (see this question for the mapping Cantor used and other mappings that work), and then from pairs of irrational numbers to a single irrational number by interleaving the terms of the infinite continued fractions. Since Cantor dealt with numbers in $(0,1)$, he could guarantee that every irrational number had an infinite continued fraction representation of the form $$x = x_0 + \dfrac{1}{x_1 + \dfrac{1}{x_2 + \ldots}}$$

where $x_0$ was zero, avoiding the special-case handling for $x_0$ in Robert Israel's solution.

Cantor-Schröder-Bernstein mappings

The Cantor-Schröder-Bernstein theorem takes an injection $f:A\to B$ and an injection $g:B\to A$, and constructs a bijection between $A$ and $B$.

So if we can find an injection $f:[0,1)^2\to[0,1)$ and an injection $g:[0,1)\to[0,1)^2$, we can invoke the CSB theorem and we will be done.

$g$ is quite trivial; $x\mapsto \langle x, 0\rangle$ is one of many obvious injections.

For $f$ we can use the interleaving-digits trick again, and we don't have to be so careful because we need only an injection, not a bijection. We can choose the representation of the input numbers arbitrarily; say we will take the $0.5000\ldots$ representation rather than the $0.4999\ldots$ representation. Then we interleave the digits of the two input numbers. There is no way for the result to end with an infinite sequence of nines, so we are guaranteed an injection.

Then we apply CSB to $f$ and $g$ and we are done.


  1. There is a bijection from $(-\infty, \infty)$ to $(0, \infty)$. The map $x\mapsto e^x$ is an example.

  2. There is a bijection from $(0, \infty)$ to $(0, 1)$. The map $x\mapsto \frac2\pi\tan^{-1} x$ is an example, as is $x\mapsto{x\over x+1}$.

  3. There is a bijection from $[0,1]$ to $(0,1]$. Have $0\mapsto \frac12, \frac12\mapsto\frac23,\frac23\mapsto\frac34,$ and so on. That takes care of $\left\{0, \frac12, \frac23, \frac34,\ldots\right\}$. For any other $x$, just map $x\mapsto x$.

  4. Similarly, there is a bijection from $(0,1]$ to $(0,1)$.

share|cite|improve this answer
Space-filling curves are not injective. – Nate Eldredge Aug 17 '12 at 0:33
I agree with Nate's comment. – leo Aug 17 '12 at 1:14
@Nate: Thanks for the correction. I have removed that section from the article. – MJD Aug 17 '12 at 1:36
You can find the "fix" in a book such as R.L. Wilder's Introduction to the foundations of mathematics. – Benjamin Dickman Jun 23 '13 at 16:14
@ M J D : Sir please tell me What is interleaving digit and how to find the injective function $f : [0,1)^2 \rightarrow [0,1)$ – Struggler Aug 2 '14 at 15:29

First, note that the exponential function is a bijective map of $\mathbb R$ to $(0,\infty)$.
Now let $G$ be the irrationals in $(0,\infty)$. I'd like a bijective map of $(0,\infty)$ to $G$. It can be done as follows: if $x = r \pi^n$ for some nonnegative integer $n$ and rational $r$, let $f(x) = \pi x$, otherwise $f(x) = x$.

Finally, it suffices to find a bijective map of $G^3$ to $G$. This can be obtained using continued fractions. Each $x \in G$ can be expressed in a unique way as an infinite continued fraction $x = x_0 + \dfrac{1}{x_1 + \dfrac{1}{x_2 + \ldots}}$ where $x_0$ is a nonnegative integer and $x_1, x_2, \ldots$ are positive integers. Denote this as $[x_0; x_1, x_2, \ldots]$. We then map $(x,y,z) \in G^3$ to $[x_0; y_0+1, z_0+1, x_1, y_1, z_1, \ldots]$.

share|cite|improve this answer
Why any irrational should be of the form $r\pi^n$? – Phani Raj Oct 2 '13 at 18:11
It doesn't have to be. If it isn't, $f$ maps it to itself. – Robert Israel Oct 3 '13 at 2:29

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.