@SciFi

Как реализовать постепенное увеличение числа?

Не знаю, как точнее сформулировать вопрос в заголовке.

Я не очень-то силен в математике, вот и приходится обращаться за помощью.
Попробую описать детальней тут. Есть такая вещь, как геометрическая прогрессия и все о ней знают, но это слишком просто для моей задачи.

Есть некие два числа: X и Y
X = 1000
Y = 0.1

Я хочу, чтобы при каждом увеличении X на 100, Y увеличивался, но его увеличение было бы тем сильнее, чем больше X. Например:

X = 1000, Y = 0.1
X = 1100, Y = 0.12, +0.02
X = 1200, Y = 0.144, +0.024
X = 1300, Y = 0.175, +0.031

И так далее. С каждым разом увеличение все сильнее.
Честно говоря, мне хочется подобрать значения на глаз так, чтобы при X = 5000, Y был бы равен ~ 12-15.
Здоров бы иметь в формуле некий коэффициент для управления скоростью увеличения числа.
Как это правильно сделать?
  • Вопрос задан
  • 1274 просмотра
Пригласить эксперта
Ответы на вопрос 5
stasuss
@stasuss
быдлокодер со стажем
lerp
Ответ написан
Комментировать
$x = 1; $y = $x/20;
$x = $x+$y;

Грубо говоря так х будет всегда расти на 5% от себя самого, чем больше х - тем больше он растёт или нелинейно надо?
Ответ написан
Комментировать
@Alexander1705
Вам нужна квадратическая (или другая степенная) зависимость: y = x^2.
Производная этого выражения и будет скоростью прироста функции: y′ = 2x
Ответ написан
EndUser
@EndUser
Метод конечных разностей.
0.100; 0.120; 0.144; 0.175 и т.д. - снизу припишите разность между членами.
0.020; 0.022; 0.031; и т.д. - и опять снизу припишите разность.
0.002; 0.009; и т.д. - и т.д
до тех пор, пока в строчке не окажутся одинаковые числа.
В таком случае количество строк - это степень формулы a(n) * xⁿ + ... a₃ * x³ + a₂ * x² + a₁ * x + a₀
Эту формулу, как я понял, вы ищете. Но это метод только для п̲о̲л̲и̲н̲о̲м̲и̲а̲л̲ь̲н̲о̲г̲о̲ выражения, не для экспоненциального, тригонометрического или какого либо ещё.
Там в методе описано как из вычисленного треугольника описано добывать коэффициенты a₁, a₂..., но я не помню как.
Ответ написан
Комментировать
deltaY = exp((x-900)/1480) - exp((x-1000)/1480)

1000	+0,069902548	0,079902548
1100	+0,074788914	0,154691462
1200	+0,08001685	0,234708312
1300	+0,085610231	0,320318543
...
4800	+0,911115494	12,95519682
4900	+0,974804788	13,93000161
5000	+1,042946127	14,97294774
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы