из за чего работает только одна стрелка из двух?
Но как я вообще могу видеть эту замену, если мы не будем касаться полиморфного поведения?
Я это понимаю, но просто суть в том, что с virtual, что без -- одно и то же.
Мы так же можем достучаться до оригинального метода,
по памяти -- то же самое (за исполючением того, что при virtual создается еще и vtable).
следовательно, лучшей практикой посчитаем всегда объявлять методы класса виртуальным
Например, можно там взять корень i:
Тогда последние левелы будут более скучкованны.
Или можно вместо экспоненты брать степени.
Можно много вариантов попридумывать. Вам нужна какая-то монтонная функция, проходящая через точки (1, exp_1) и (n, exp_n). Вы находите ее форму, а потом ищите ее значения во всех целых точках от 1 до n. Выбирая функции с разной скоростью роста вы можете регулировать распределение экспы по уровням.