Rozważ trójkąt ABC, w którym każdy bok ma długość całkowitą ( integralny trójkąt ). Zdefiniuj medianę z ABC być odcinek od wierzchołka do punktu środkowego przeciwnej stronie. Na poniższym rysunku segmenty czerwonej linii przedstawiają mediany. Zauważ, że każdy trójkąt ma trzy mediany.
Niech n będzie dodatnią liczbą całkowitą. Ile nieodegenerowanych trójkątów całkowitych o każdej długości boku mniejszej lub równej n ma co najmniej jedną integralną medianę?
Wyzwanie
Napisz program do obliczania liczby integralnych trójkątów z co najmniej jedną integralną medianą dla danej maksymalnej długości boku n . Kolejność długości boków nie ma znaczenia, tzn. <6,6,5> reprezentuje ten sam trójkąt co <5,6,6> i należy go policzyć tylko raz. Wyklucz zdegenerowane trójkąty, takie jak <1,2,3>.
Punktacja
Największy n, dla którego Twój program może wygenerować liczbę trójkątów w ciągu 60 sekund na mojej maszynie, to Twój wynik. Program z najwyższym wynikiem wygrywa. Moje urządzenie to Sony Vaio SVF14A16CLB, Intel Core i5, 8 GB pamięci RAM.
Przykłady
Niech T ( N ) będzie program z wejściem N .
T(1) = 0
T(6) = 1
T(20) = 27
T(22) = 34
Zauważ, że T (1) = T (2) = T (3) = T (4) = T (5) = 0, ponieważ żadna kombinacja całek boków nie da integralnej mediany. Gdy jednak dojdziemy do 6, widzimy, że jedna z median trójkąta <5,5,6> wynosi 4, więc T (6) = 1.
Zauważ również, że T (22) jest pierwszą wartością, przy której podwójne liczenie staje się problemem: trójkąt <16,18,22> ma mediany 13 i 17 (i 2sqrt (85)).
Obliczanie median
Mediany trójkąta można obliczyć za pomocą następujących wzorów:
Current top score: Sp3000 - 7000 points - C