Удивительное выравнивание происходит 2048/5/28 с внутренними 5 планетами с гелиоцентрическими долготами (в градусах): 248.229, 66.631, 246.967, 249.605, 67.684.Линейный по размеру для планет
Планеты не более 0,875 градусов от линии (через Sol) с уклоном 67,823 градуса. В этом случае метод искал (PA) даст: PA (248,229, 66,631, 246,967, 249,605, 67,684) = (67,823, 0,875)
Я попробовал два простых алгоритмов, которые, как провалиться по делу: 2003/9/9: 340.256, 180.320, 346.156, 342.316, 150.285
Один метод дает наклон = 127.867, отклонение = 51.019, а другое 271.867, 85.251. Я думаю, что правильный метод дал бы s = 163.466, d = 7.515.
Основная проблема заключается в том, что планеты на противоположных сторонах Sol могут быть (почти) на одной линии.
Python или javascript оценили. Yay Я понял, как отредактировать! Или нет.
def score3(wList):
wSize = len(wList)
#print wList
first = wList[0]
d1 = first - 90.0
if d1 < 0.0: d1 += 360.0
d2 = first + 90.0
if d2 > 360.0: d1 -= 360.0
if d1 > d2: d1,d2 = d2,d1
sum = 0.0
for wx in range(0,wSize):
curr = wList[wx]
if (curr > d1) and (curr < d2):
new = curr
else:
new = (curr + 180.0) % 360.0
wList[wx] = new
sum += new
#print '%7.3f --> %7.3f' % (curr, new)
avg = sum/wSize
#print avg, wList
score = 0.0
for wx in range(0,wSize):
curr = wList[wx]
diff = curr - avg
if diff < 0: diff = - diff
score += diff
score /= wSize
return avg, score
Это может быть домашнее задание? – Bobby
Математические вопросы должны идти в mathoverflow.net. – kennytm
Опубликовать то, что вы пробовали, тогда вы можете получить критические замечания по методу (-ам) – KevinDTimm