>любое число, меньшее, чем 2 гарантирует, что на каком-то шаге увеличения ёмкости вектора мы сможем не выделять память в новом адресном пространстве, а переиспользовать уже ранее выделенную на этот вектор память.
Гарантирует только в том случае, если мы можем использовать память предыдущих (n-1) аллоакций на n-м шаге. Действительно, пусть мы хотим найти такой коэффициент роста, что
an ≤ an-1 + an-2 +… + a + 1
Заметим, что справа стоит сумма геометрической прогрессии
an ≤ (an — 1) / (a — 1)
(a — 1) an ≤ an — 1 // тут было использовано предположение a > 1
an+1 — 2 an ≤ -1
an (a — 2) ≤ -1
Видно, что начиная с 2 левая часть неотрицательна и условие никогда не выполняется.
Однако, это сопряжено с некоторыми трудностями, ибо для этого придётся как-то переиспользовать то место, где у нас сейчас находится вектор, а нам ведь ещё скопировать элементы надо (Хотя теоретически это всё же возможно).
Если же чуть ослабить условия и потребовать наличие достаточно количества памяти с предыдущих n-2 аллокаций, то мы получим
an ≤ an-2 +… + a + 1
(a-1) an ≤ an-1 — 1
an+1 — an — an-1 ≤ — 1
a2 — a — 1 ≤ — 1 / a(n-1) < 0
Если в последнем неравенстве заметить, что правая часть стремится к нулю, или каким-либо другим способом убедить себя в том, что её можно выкинуть, то мы получим неравенство для многочлена второй степени, чей единственный корень, лежащий в интервале (1, 2), в точности равен золотому сечению. Разумеется, так как у нас неравенство, то сгодится любое число, большее 1 и меньшее φ. Например, 1.5 попадает в этот интервал.