Think of the problem like this. We have an equation in which on a starting point on a circle we travel a predetermined amount around that circle a specified number of times. The resulting point on the circle after traveling that distance is the public key. So, let's say the starting point is (0,0) and the amount to travel is defined as 1.5 revolutions. The number of times to travel is k, which is 200 and is our private key. If we start at point (0,0) and make 1.5 revolutions 200 times, we end up at (0,0). That point becomes the public key. I can tell you the public key is (0,0) because you cannot directly use that to determine the private key. That is because it could be 2, or 200, or seven million six hundred thousand and sixty four.
While the exact algorithm is a bit more involved, this illustrates why the public key cannot be easily reversed back into the private key. Furthermore, in the case of bitcoin and other cryptographic algorithms the numbers being used aren't in the hundreds or millions, but in the billions of vigintillions. Yes, a vigintillion is a word and it is a one with sixty four zeros after it.
<< I explain hashing after this >>