Give an example of a function from **N** to **N** that is
- one-to-one but not onto

take the function that sends an integer **n** to its
successor **n+1**. Since **N** is the set {0,1,2,...}, we
have that **0** is not in the range of this function. The
function is one-to-one, since we can easily check that if
**n+1=m+1** then **n=m**.
- onto but not one-to-one

One easy example: send 0 to itself and every
other integer should go to one less than itself.

Another: Use the formula: [n/2] where [x] denotes the greatest
integer or "floor" function.
- both onto and one-to-one but different than the identity
function

easy example: 0 goes to 1, 1 goes to 0, all other **n** go to
themselves.

another example: If the integer **n** is less than 100 it is
sent to itself. If it is bigger than 100, just interchange the
10's and unit digits, i.e. for **n> 99** it is sent to

100*[n/100]+10*[n- 10*[n/10]] + [ ([n-100*[n/100]])/10]
- neither one-to-one or onto

Why not **f(n)=0** for all **n**?