Я тоже как-то заинтересовался этим вопросом и, похоже, нашёл искомую зависимость. Принцип оплаты - зонный, длина одной зоны увеличивается в зависимости от общего расстояния и определястся так:
0-200 км - длина зоны=10км
200-700 км - длина зоны=50км
700-1700 км - длина зоны=100км
1700-3700 км - длина зоны=200км
3700-6700 км - длина зоны=300км
более 6700 км - длина зоны=400км
Т.о., имеются следующие зоны: 0-10,11-20,21-30,...,191-200,201-250,...,651-700,701-800 и т.д.
Стоимость проезда пропорциональна расстоянию до середины зоны (т.е. 5,15,25,...,195,225,...,675,750 км и т.д. соответственно), к которому добавлена некая величина, которая приближённо равна 200 для сидячки и плацкарта, 220 для купе и 225 для СВ. Эта полученная сумма и умножается на стоимость одного километра, которая для действующих на сегодняшний день тарифов в скорых поездах составляет приблизительно 0.26 руб/км для сидячки, 0.37 руб/км для плакцарта, 0.84 руб/км для купе и 1.68 руб/км для СВ. В пассажирских поездах стоимость километра ниже примерно на 10%, в фирменных - дороже, обычно на 50%. Естественно, этот расчёт годится только для вагонов без услуг, т.к. их стоимость связана не с километрами, а с количеством наборов питания (хотя, конечно, косвенно зависимость от длины пути тут есть).
Вот пара примеров расчёта стоимости.
1) Плацкартный билет на скорый нефирменный поезд №29 Санкт-Петербург - Москва (650км.): стоимость=(625+200)*0.37=305.25 (реальная стоимость - 305.3)
2) Купейный билет на скорый фирменный поезд №12 Москва-Адлер (1775 км): стоимость=(1800+220)*0.84*1.5=2545.2 (реальная стоимость - 2536.
В заключение повторюсь, что это всего лишь была моя попытка определить зависимость цены от расстояния и типа вагона. Использую эти формулы уже год, ошибки более 1% пока что не встречались.