Regeneration is one of my favourite relics of Emporea's past, when all game was unnecessarily complicated. A lot of things have become much more simple, but regeneration has kept its beauty.
So this is how math of regeneration really works in the game:
Z - real regeneration, applied SEPARATELY on each unit
Y - unit amount alive in the beginning of the round
X - dead units in the round
R - regeneration rate stated/ written in the game (sum of all its sources, basic unit attributes, hero skill, artifacts, potion... ) - this is the number that is capped at 50% !
Z = R x √((Y-X)/Y)
EXAMPLE:
Y = 200 units enter the round
X = 140 units die in the round
R = 20 %
Z = 0,2 x √((200-140)/200)
Z = 0,2 x √0,3
Z = 0,2 x 0,548
Z = 0,1095 = ca 11 %
So, each unit has its own separate 11 % chance to come to life again in the end of the round.
Technically, it can be 0 from 140 dead units, or 140 from 140, but the biggest chances are for ca 15 resurrected units.
For those more clever of you, who refuse to be involved in this kind of insanity, just remember this:
The fewer units die from the overall amount, the better are their chances for regeneration.