destination_sirius, если вам нужна быстрая функция - предлагаю сумму линейной функции и экспоненты, только рассчитывать разумеется не в лоб, а оптимально. То есть, берете некое значение

и получаете
рекурсивно рекуррентно (сразу понял, что использовал неправильный термин, но правильный долго вспоминал

) весь массив

, коэффициент

от 1 до какого нравится (меньше единицы) - получите красивую экспоненту. Потом берете последний рассчитанный член вашего массива и рассчитываете линейную функцию, которую нужно прибавить к вашему массиву, чтобы первый элемент не изменился, а последний стал равен

, складываете массив с этой функцией - итоговый массив готов, разворачиваете его в любом порядке и используете. Количество операций минимально, если перевести все в целочисленную арифметику - будет летать. Будет смесь пилы с переменной экспонентой, струнные по идее должно эмулировать.