Here is what I've understood of bitcoin:

* Everybody has a public and private key.
* If A sends bitcoins to B:
	+ B is generating an address and sends it to A
	+ This addresses are generated for each transaction.
	+ A needs to sign something with his private key and B's address

Am I wrong?

If not, I want to understand how this address is computed.

I have read it is a kind of public key computed from private key. That's it? So we can have many public keys which match to a common private key?
I have also read the address is derived from the public key.