I was told that both tenses can be used to indicate logical probability (
for example, sarà gia arrivato = he must have arrived).

But what is the difference between the two senses? For example, which tense shall I use when I'd like to say "it must be very cold tomorrow"? "Avrà molto freddo domani" or "avrà avuto molto freddo domani"?

My book (in Chinese) says very vaguely about it. So I hope someone here can help me

That is exactly what I was going to say!!!Of course Italian is not my mother tongue( ) but I'll do my best...I ll try to make a correllation with english.Natives of Italian, please let me know if I got it right ...

Lui avra le sue ragioni per farlo is close in meaning to :
He must have his reasons for doing this ( he hasn t acted yet,he will in the future, we are making a logical deduction for the future)

Lui avra avuto le sue ragioni per averlo fatto
He must have had his reasons for doing this ( he has already acted, so we are making a logical deduction about the reasons that caused him to act that way in the past)

Thanks, all. I understand the part when futuro anteriore is used for an anterior future action, what confuses me is the other usage.

After reading your replies, if my understanding is right: futuro anteriore is used in such situations as " sb./sth. must have been/done...." (to guess something already happened), while futuro semplice means "sb./sth. must be/do...." (to guess something in the future). Am I right?

And sorry for all my muddled italian. I must have been too anxious about the tense! (Sarò stata fin troppo ansiosa del tempo! <- correct? )