Najmniejszy kod, który podaje pole między krzywą p (x) = a 0 + a 1 * x + a 2 * x 2 + ..., linia y = 0, linia x = 0 i linia x = C
(tj. coś takiego:
)
Możesz założyć, że p (x)> = 0 dla x <C (punkty bonusowe, jeśli twój kod działa dla ujemnych wartości p (x)).
Wejście
C, 0 , a 1 , ...
Wynik
liczba rzeczywista - obszar
Przykład 1:
input: 2, 0, 1
output: 2.0
Przykład 2:
input: 3.0, 0, 0.0, 2
output: 18
AKTUALIZACJA:
- Zakłada się również C> 0
- obszar znajduje się między krzywą, y = 0, x = C i x = 0
- wejściem może być lista dowolnej postaci; niekoniecznie oddzielone przecinkami.
- dane wyjściowe mogą być dowolnymi postaciami (dlatego „18” jest prawidłowym wynikiem, podobnie jak „18,0”)
Odpowiedzi:
Mathematica: 48 znaków
.
źródło
Length@#
->Tr[1^#]
. Możesz także pominąć@Input[]
i wykonać funkcję.Python -
7163 znaków:Jest to prosta integracja funkcji wielomianu pomiędzy
0
iC
. I nie testowałem tego, ale jestem całkiem pewien, że działa na wartości ujemne.źródło
input()
dziś czegoś nowego :)Haskell, 85 znaków
źródło
J, 26 znaków
na przykład
źródło
d.
bycie koniunkcją nie bardzo ułatwia moim początkującym umiejętnościom J.Ruby, 65 znaków
Kod czyta do końca wejścia, a nie do końca wiersza. Musisz więc nacisnąć Ctrl+, Daby zakończyć wprowadzanie. (Wprowadź dane wejściowe za pomocą
echo
lub z pliku.)źródło
c=gets(q=",").to_f
i$<.each(q){|a|s+=a.to_f*c**(i+=1)/i}
zaoszczędzi jeden znak ....","
(lub?,
, co jest jeszcze krótsze),$/
pozwala pominąć argument$<.each
. I$<.map
jest jedną postacią krótszą niż$<.each
. ;)C GCC
186182 bajtówTen program podaje dane wyjściowe (pole) dla dowolnej krzywej między krzywą, y = 0, x = C i x = 0. Może przyjmować także współczynniki
float
od 0 do 48 . Po pierwszym zaakceptowanym wejściuC
następują współczynniki. NaciśnijÈnter
po ostatnim współczynniku.źródło