Yarışçıların kavisli bir pistin en az bir turunu döndürdüğü yarışlarda, her yarışçı için başlangıç pozisyonları kademelendirilir, böylece her yarışçı pist boyunca aynı mesafeyi dolaşır (aksi takdirde, en içteki şeritteki yarışçı büyük bir avantaja sahip olur. ).
Eliptik bir parkurun ana ve küçük eksenlerinin (veya isterseniz yarı majör ve yarı minör) uzunlukları ve parkurdaki şerit sayısı göz önüne alındığında, en içteki şeridin her bir şeridin başlangıç noktasından uzaklığı sendelemek gerekir.
Özellikler
- Her şerit, bir sonraki en kısa şeritten 5 birim daha uzun yarı eksenleri olan bir elipstir. Basitlik için, şeritlerin 0 genişliğine sahip olduğunu varsayın.
- En içteki şerit her zaman 0'dan başlar ve diğer her başlangıç noktası, önceki başlangıç noktasından daha büyük veya ona eşit pozitif bir tamsayıdır.
- Giriş ve çıkış herhangi bir uygun ve makul biçimde olabilir.
- Girişler her zaman tamsayı olacaktır.
- Parkurun çevresini, gerçek değerin 0,01 birimi içinde hesaplamanız gerekir.
- Çıkışlar en yakın tamsayıya (yuvarlanmış) yuvarlanmalıdır.
- Bitiş çizgisi, en içteki yarışçı için başlangıç noktasıdır. Yarışta sadece bir tur var.
- Eksenlerin uzunlukları, rayın en iç şeridi kullanılarak ölçülür.
- En içteki şerit ofseti için 0 çıktısı almak isteğe bağlıdır.
Test Durumları
Biçim: a, b, n -> <list of offsets, excluding innermost lane>
20, 10, 5 -> 30, 61, 92, 124
5, 5, 2 -> 31
15, 40, 7 -> 29, 60, 91, 121, 152, 183
35, 40, 4 -> 31, 62, 94
Bu test senaryoları, Ramanujan tarafından tasarlanan bir elipsin çevresinin yaklaşık bir tahminini kullanan aşağıdaki Python 3 betiği ile oluşturuldu:
#!/usr/bin/env python3
import math
a = 35 # semi-major axis
b = 40 # semi-minor axis
n = 4 # number of lanes
w = 5 # spacing between lanes (constant)
h = lambda a,b:(a-b)**2/(a+b)**2
lane_lengths = [math.pi*(a+b+w*i*2)*(1+3*h(a+w*i,b+w*i)/(10+math.sqrt(4-3*h(a+w*i,b+w*i)))) for i in range(n)]
print("{}, {}, {} -> {}".format(a, b, n, ', '.join([str(int(x-lane_lengths[0])) for x in lane_lengths[1:]])))
Kullanılan yaklaşım:
Son olarak, ofsetlerin hesaplamalarını anlamak için yararlı bir diyagram:
h**5, bu da 0.01geniş bir değer aralığı için oldukça altındadır .

