If we know expected load on site i.e we know Numbers of hits in months,week and per day and we also know session time plus concurrent users .
How can we arrive at number of CMS & CD servers and possible configurations.
Sitecore provides some guidance for Azure based on topology which can be found here https://kb.sitecore.net/articles/043375 Jarmo is correct that there are many factors to take into consideration and these numbers will not be accurate for every Sitecore solution. If you are not using Azure you might want to compare this to similar hardware on your platform.
I don't think this is the answer you want, but there's no simple answer to this.
This all depends on things like, what kind of architecture do you want, what's your requirements for global availability (i.e. data centers), disaster recovery, acceptable response times, how much caching do you plan on doing (or can do), using CDN, on-premise hosting vs. cloud, session management, what's your plan for publishing, using xDB, index management etc.
And keep in mind this is not just about how many Sitecore servers you should have, it's also question of database servers, indexing services, session management, processing servers, caching etc.
You can look at Sitecore scaling guide for some guidelines: https://doc.sitecore.net/developers/scaling-guide/scaling-overview.html
But would highly recommend talking with someone who has done Sitecore installations previously.