<?php
error_reporting(E_ERROR);

function c($y,$s){for($d=$y*365.25;++$i<count($l=array_map(date_create,$s));)$d+=$l[0]->diff($l[$i])->days;($l[$i-1]>$r=$l[0]->add(new DateInterval(P.ceil($d/$i).D)))?c($y,array_slice($s,0,-1)):print$r->format('Y/m/d');}

c(10,  ['2000/01/01']);                                           echo "\n";
c(100, ['1975/03/05', '1978/07/23', '2008/11/12', '2012/12/20']); echo "\n";
c(100, ['1975/03/06', '1978/07/23', '2008/11/12', '2012/12/20']); echo "\n";
c(100, ['1975/03/09', '1978/07/23', '2008/11/12', '2012/12/20']); echo "\n";
c(100, ['1975/03/10', '1978/07/23', '2008/11/12', '2012/12/20']); echo "\n";
c(3,   ['1990/08/01', '1995/07/02']);                             echo "\n";
c(50,  ['1975/03/05', '1978/07/23', '2008/11/12', '2012/12/20']); echo "\n";