Celem Stone Rosetta Challenge jest pisanie rozwiązań w jak największej liczbie języków. Pochwal się swoją wielojęzycznością programistyczną!
Wyzwanie
Kiedy ludzie używają terminu „średnia”, zwykle mają na myśli średnią arytmetyczną, która jest sumą liczb podzielonych przez liczbę liczb. Istnieje jednak o wiele więcej znaczeń w słowie „średnia”, w tym średnia harmoniczna , średnia geometryczna , średnia arytmetyczna , średnia kwadratowa i średnia kontrastowa .
Twoim wyzwaniem jest napisanie programu, który wprowadzi listę liczb i wyprowadzi te 5 różnych środków. Ponadto próbujesz pisać programy w jak największej liczbie języków . Możesz używać dowolnej standardowej funkcji bibliotecznej, którą posiada Twój język, ponieważ jest to głównie prezentacja języka.
Wkład
Dane wejściowe będą listą liczb dodatnich.
1,2,3,4,5
1.7,17.3,3.14,24,2.718,1.618
8.6
3,123456
10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602
3,4,4,6.2,6.2,6.2
Wydajność
Wyjście będzie pięcioma średnimi w wyżej wymienionej kolejności (harmoniczna, geometryczna, arytmetyczna, kwadratowa, przeciwharmoniczna). Dogodnie jest to to samo, co zwiększenie porządku.
2.18978,2.6052,3,3.31662,3.66667
3.01183,4.62179,8.41267,12.2341,17.7915
8.6,8.6,8.6,8.6,8.6
5.99985,608.579,61729.5,87296.6,123453.
5.95799,14.3041,22.5453,27.9395,34.6243
4.5551,4.74682,4.93333,5.10425,5.28108
Będzie pewna rozsądna łagodność w formacie I / O, ale chcę kilku miejsc dziesiętnych dokładności. Ponieważ chcę danych wyjściowych zmiennoprzecinkowych, możesz założyć dane zmiennoprzecinkowe.
Kryterium zwycięskiego celu
Jeśli chodzi o obiektywne kryterium wygranej, oto on: Każdy język to osobny konkurs na to, kto może napisać najkrótszą pracę, ale ogólnym zwycięzcą byłaby osoba, która wygra najwięcej z tych pod-konkursów. Oznacza to, że osoba, która odpowiada w wielu nietypowych językach, może zyskać przewagę. Code-golf jest przeważnie rozstrzygający, gdy istnieje więcej niż jedno rozwiązanie w języku: osoba z najkrótszym programem otrzymuje kredyt za ten język.
W przypadku remisu zwycięzcą byłaby osoba, która zgłosi najwięcej miejsc na drugim miejscu (i tak dalej).
Reguły, ograniczenia i uwagi
Twój program może być napisany w dowolnym języku, który istniał przed 2 września 2014 r. Będę także musiał polegać na społeczności, aby zweryfikować niektóre odpowiedzi napisane w niektórych bardziej rzadkich / ezoterycznych językach, ponieważ jest mało prawdopodobne, że będę w stanie przetestować im.
Zachowaj wszystkie swoje różne zgłoszenia zawarte w jednej odpowiedzi.
Ponadto nie ma shenaniganów z zasadniczo taką samą odpowiedzią w nieco innych dialektach językowych. Będę sędzią, które wnioski są wystarczająco różne.
Aktualny ranking
Ta sekcja będzie okresowo aktualizowana, aby pokazać liczbę języków i kto prowadzi w każdym z nich.
- Algoid (337) - Beta Decay
- APL (42) - rekordy algorytmów
- Awk (78) - Dennis
- BBC BASIC (155) - Beta Decay
- C (136) - Dennis
- C ++ (195) - Zeta
- C # (197) - Martin Büttner
- CJam (43) - Dennis
- Clojure (324) - Michael Easter
- Kobra (132) - Ourous
- CoffeeScript (155) - Martin Büttner
- Commodore BASIC (104) - Mark
- Common Lisp (183) - DLosc
- Erlang (401) - Mark
- Fortran (242) - Kyle Kanos
- Fortran 77 (286) - Beta Decay
- GNU bc (78) - Dennis
- GolfScript (83) - Dennis
- Groovy (157) - Michael Easter
- Haskell (140) - Zeta
- J (28) - algorytm
- Java (235) - Michael Easter
- JavaScript (ES6) (112) - Dennis
- JRuby (538) - Michael Easter
- Julia (79) - Martin Büttner
- Lua (113) - AndoDaan
- Mathematica (65) - Martin Büttner
- Matlab (63) - Martin Büttner
- Oktawa (68) - Dennis
- Openscript (849?) - COTO
- Pascal (172) - Mark
- Perl (76) - Ponury
- PHP (135) - Dennis
- POV-Ray 3.7 (304) - Znak
- Prolog (235) - DLosc
- Pyth (52) - Dennis
- Python 2 (96) - Dennis
- Python 3 (103) - DLosc
- Q (53) - rekordy algorytmów
- Q'Nial (68) - rekordy algorytmów
- QBasic (96) - DLosc
- R (91) - plannapus
- Ruby (118) - Martin Büttner
- Rdza (469) - Vi.
- Scala (230) - Michael Easter
- T-SQL (122) - MickyT
- TI-Basic (85) - Ypnypn
- TypeScript (393) - rink.attendant.6
- VBA (Excel) (387) - Stretch Maniac
- wxMaxima (134) - Kyle Kanos
Aktualne rankingi użytkowników
- Dennis (10)
- Martin Büttner (6)
- Michael Easter (5)
- Mark, DLosc, algorytmshark (4)
- Rozpad beta (3)
- Zeta, Kyle Kanos (2)
- Ourous, AndoDaan, COTO, Grimy, plannapus, Vi., MickyT, Ypnypn, lodowisko.attendant.6, Stretch Maniac (1)
(Jeśli popełniłem błąd w powyższych rankingach, daj mi znać, a go naprawię. Ponadto remis nie został jeszcze zastosowany.)
źródło
(a-b)/ln(a/b)
. Przyznaję, że dopiero dzisiaj dowiedziałem się, jak to się uogólnia na próbkę złożoną z więcej niż dwóch :-) en.wikipedia.org/wiki/Logarithmic_meanbc
, żeawk
itd. To „języki” lub „polecenia” - to czy różne sposoby implementacji tego z powłoki byłyby liczone w różnych językach?Odpowiedzi:
Języki: 1
Openscript (wiele setek)
(Mój ulubiony niejasny i niestety nieczynny język programowania, ponieważ nauczyłem się go programować wiele lat temu;)
źródło
put the length of the inputs into n
? O_O Kocham już ten język.Języki: 13
Myślę, że ta lista powinna teraz zawierać każdy język programowania, który znam wystarczająco dobrze, aby rozwiązać co najmniej proste problemy. Postaram się z czasem uzupełniać tę listę, gdy zajrzę do kilku nowych języków. (I używane wiedzieć trochę Smalltalk i Delphi, ale będę musiał patrzeć na wiele dodawania ich do czuję się dobrze).
C
196190171165 bajtówOdczytuje dane wejściowe jako indywidualne argumenty wiersza poleceń i zapisuje rozdzielaną przecinkami listę środków do STDOUT.
Dzięki za ulepszenia Quentin.
C ++, 200 bajtów
Jest to to samo co powyższy kod C, plus dwa obejmują. Uwzględniam to, ponieważ jest dłuższe niż zwycięskie zgłoszenie w C ++, więc myślę, że nie wyrządzono żadnej szkody, i chciałbym, aby ten post zawierał właściwie każdy język, który znam. :)
C #,
220197 bajtówDefiniuje funkcję w klasie przyjmującą
List
liczbę podwójną i zwracającą tablicę podwójnych za pomocą pięciu środków.Dzięki za ulepszenia Visual Melona i Boba.
CJam, 52 bajty
Pobiera dane wejściowe jako argumenty wiersza poleceń i wypisuje listę z pięcioma wartościami do STDOUT.
CoffeeScript, 155 bajtów
Jest to prawie to samo, co rozwiązanie JavaScript w dół (i początkowo z tego powodu nie liczyłem), ale OP i tak umieściło je w tabeli wyników, więc awansowałem do pełnego przesłania. W końcu są to technicznie różne języki.
JavaScript (ES6),
155153 bajtówDefiniuje funkcję pobierającą tablicę liczb i zwracającą tablicę z pięcioma środkami.
Dzięki za ulepszenia Williama Barbosy.
Julia, 79 bajtów
Definiuje funkcję pobierającą listę liczb i zwracającą listę z pięcioma środkami.
Lua, 120 bajtów
Definiuje funkcję pobierającą listę liczb i zwracającą 5 oddzielnych wartości dla średnich.
Mathematica,
736765 bajtówDefiniuje funkcję pobierającą listę liczb zmiennoprzecinkowych i zwracającą listę z pięcioma środkami.
Ciekawostka: Mathematica ma wbudowane wszystkie 5 środków (i to było moje oryginalne przesłanie), ale trzy z nich można zaimplementować za pomocą mniejszej liczby znaków niż nazwy funkcji.
Matlab,
6563 bajtówŻąda wprowadzenia danych jako tablicy liczb od użytkownika i wypisuje pięć środków indywidualnie.
Dzięki za ulepszenia Dennisa Jaheruddina.
PHP ≥ 5,4,
152149143 bajtówTa sama funkcjonalna implementacja, co wcześniejsze.
Dzięki za ulepszenia Ismaela Miguela.
Python 2, 127 bajtów
Ta sama funkcjonalna implementacja, co wcześniejsze.
Rubin,
129118 bajtówTa sama funkcjonalna implementacja, co wcześniejsze.
źródło
norm(l)/n^.5
zamiastnorm(l)/sqrt(n)
.4 języki
J -
3228 znaków!Funkcja przyjmująca listę liczb za swój jedyny argument.
a
tutaj jest przysłówek, który jest zajęciem J funkcji drugiego rzędu.+/ % #
jest pociągiem w J, co oznacza Sumę podzieloną przez liczbę, definicję średniej arytmetycznej.&.:
jest koniunkcją zwaną Under, gdzieu&.:v(y)
jest równoważnavi(u(v(y)))
ivi
jest odwrotnością funkcjonalnąv
. Tak, J może przyjmować funkcjonalne odwrotności .W ten sposób
a
przyjmuje funkcję po lewej stronie i zwraca średnią, która „dostosowuje” wartości przez funkcję, przyjmuje średnią arytmetyczną, a następnie cofa regulację później.%a
jest średnią harmoniczną, ponieważ%
oznacza odwrotność i jest własną odwrotnością.^.a
jest średnią geometryczną, ponieważ^.
jest logarytmem naturalnym, a jego odwrotnością jest wykładniczy.(Π x)^(1/n) = exp(Σ log(x)/n)
[a
jest średnią arytmetyczną, ponieważ[
jest funkcją tożsamości.*:a
jest średnią kwadratową, ponieważ*:
jest kwadratem, a jego odwrotnością jest pierwiastek kwadratowy.*:a
podzielone przez ([a
podzielone przez*:a
)). To wygląda jak[a(]%%)*:a
. Chociaż już przy tym jesteśmy, możemy poprzedzić każdy z środków[a(,,]*%~)*:a
.Na koniec używamy przecinków, aby dołączyć pozostałe wyniki razem. Nie wymagamy żadnych dodatkowych części, ponieważ konkatenacja jest (przynajmniej w tym przypadku) asocjacyjna.
W użyciu na J REPL:
Q - 53 znak
Funkcja pojedynczego argumentu. Po prostu tworzymy listę wszystkich potrzebnych środków.
To samo w innych wersjach k jest poniżej.
{s:(a:avg)x*x;(%a@%x;exp a log x;a x;sqrt s;s%a x)}
{s:(a:{(+/x)%#x})x*x;(%a@%x;(*/x)^%#x;a x;s^.5;s%a x)}
APL - 42 znaki
Lista przejmująca funkcje jako argument.
Wyjaśnione przez wybuch:
Q'Nial - 68 znaków
Pokochasz ten.
Q'Nial to kolejny język zorientowany na tablice, implementacja Nial , która oparta jest na niejasnej teorii macierzy w taki sam sposób, w jaki Haskell opiera się na teorii kategorii. (Pobierz tutaj .) Różni się bardzo od pozostałych trzech - przede wszystkim analizuje od lewej do prawej! - ale nadal jest z nimi bardziej związany niż z jakimkolwiek innym językiem.
źródło
/⍨
) Prawdopodobnie był przeznaczony do przenoszenia naprawdę starego kodu. Czego używasz? Dyalog? NARS2000? Myślę, że to naprawdę niefortunne, że J przyjął podejście ASCII dotyczące hałasu. Wdrożenie tego języka jest poza tym genialne. Ale nie przeszkadza mi psychiczne analizowanie]a(,,]*%~)*:a
[0.5]
? Ew.) Jednak z praktyką przyzwyczajasz się do ukrywania J. Robi się znacznie gorzej.12 języków
CJam,
454443 bajtyCzyta tablicę pływaków (np.
[1.0 2.0 3.0 4.0 5.0]
) Ze STDIN. Wypróbuj online.APL,
6761535250 bajtówWypróbuj online.
Pyth,
5552 bajtówOdczytuje liczby rozdzielone spacjami (np.
1 2 3 4 5
) Ze STDIN.Oktawa, 68 bajtów
Nie licząc shebang. Odczytuje tablicę (np.
[1 2 3 4 5]
) Ze STDIN.GNU bc, 78 bajtów
Licząc shebang jako 1 bajt (
-l
przełącznik). Odczytuje liczby zmiennoprzecinkowe oddzielone od STDIN, a następnie zero.Awk, 78 bajtów
Nie licząc shebang. Odczytuje jedną liczbę z linii ze STDIN.
GolfScript,
8683 bajtówGolfScript nie ma wbudowanej obsługi liczb zmiennoprzecinkowych, więc kod je analizuje. Dlatego format wejściowy jest raczej restrykcyjny: musisz wprowadzić
1.0
i0.1
zamiast1
,1.
lub.1
.Odczytuje zmiennoprzecinkowe (jak wyjaśniono powyżej) jeden po wierszu, ze STDIN. Wypróbuj online.
Perl,
9085 bajtówLicząc shebang jako 1 bajt (
-n
przełącznik). Odczytuje jedną liczbę z linii ze STDIN.Python 2,
10296 bajtówNie licząc shebang. Czyta listę liczb zmiennoprzecinkowych (np.
1.0,2.0,3.0,4.0,5.0
) Ze STDIN.ECMAScript 6 (JavaScript),
114112 bajtówNie licząc LF. Oczekuje tablicy (np.
[1,2,3,4,5]
) Jako argumentu.PHP, 135 (lub 108?) Bajtów
Nie licząc shebang ani LF. Odczytuje liczby zmiennoprzecinkowe jako argumenty wiersza poleceń.
Mam krótsze rozwiązanie, ale nie wiem, jak policzyć bajty:
Zliczając bajty w każdym ciągu kodu i dodając dwa dla
-R
i-E
, to podejście dałoby wynik 108.C,
172140139137136 bajtówNie licząc LF. Kompiluj z
gcc -lm
. Czyta zmiennoprzecinkowe oddzielone spacje od STDIN.źródło
while(cond)...,n++;
vsfor(;cond;n++)...;
interpreter switches script
przy każdym przesyłaniu. Konwencja jest taka, że linie shebang nie są liczone, chyba że zawierają przełączniki inne niż domyślne. Jak stwierdzono w mojej odpowiedzi, policzyłem#!/usr/bin/awk -f
jako zero bajtów (-f
oznacza odczyt programu z pliku), ale#!/usr/bin/perl -n
jako jeden bajt (-n
oznacza iterację po wierszach wejściowych).-q
na Octave i-lm
C?-q
jest po prostu wyciszony.-lm
jest potrzebny GCC. Inne kompilatory mogą tego wymagać.J (50):
Właśnie w tym jest dobry J:
Jak zawsze: eksplozja w fabryce buźek. Jednak niektóre buźki pozostały nietknięte tym razem:
:)
i:*:
(to facet z czterema oczami i klejnotem osadzonym na twarzy) Moja interaktywna sesja, której użyto do stworzenia tego: http://pastebin.com/gk0ksn2bW akcji:
Wyjaśnienie:
Jak można się spodziewać, w rzeczywistości istnieje 5 funkcji, które są spakowane w listę z ciągiem widelców i haków. (Nie martw się o to, jest to po prostu wygodny sposób na wyprowadzenie wielu funkcji na jedną listę).
Linie, których użyłem, aby J wygenerował tę odpowiedź, mogą być nieco jaśniejsze:
Spójrzmy na nich osobno.
Harmoniczny
#
- Długość (tablicy)%
- Podzielony przez+/@:%
- Suma (+/
lub złożenie+
w tablicy (+/1 2 3 4
==1+2+3+4
)) na szczycie podzielić, ale tym razem w przypadku monadycznym. Oznacza to, że J automatycznie „zgaduje”, że 1 byłby najbardziej użyteczną wartością.Geometryczny
#
- Długość (tablicy)%:
- Korzeń (4 %: 7
oznaczałoby „czwarty (lub tesseract) pierwiastek z siedmiu)*/
- Produkt (*/
ma podobne znaczenie+/
, patrz do tego poprzednia funkcja)Arytmetyka
+/
- suma, powinien być teraz znajomy%
- podzielony przez#
- długośćRoot średni kwadrat
Ehm, tak ...
%:
- Korzeń%@#
- Odwrotna długość*
- Razy+/@:*:
- Suma kwadratów (*:
jest kwadratowa, mimo że*~
również.)Contraharmonic
+/@:*:
- Suma kwadratów%
- podzielony przez+/
- Suma.Gdyby J był tak dobry w przetwarzaniu strun, wygrywalibyśmy o wiele więcej zawodów golfowych ...
źródło
Języki: 5
POV-Ray 3.7 Scena Opis Język: 304 bajty
(POV-Ray SDL nie ma funkcji wprowadzania na konsolę, więc podłożyłem dane wejściowe do pliku. Dane wyjściowe są przesyłane do konsoli, ale są otoczone dużą ilością danych wyjściowych o statusie programu).
Commodore BASIC:
111104 bajtów(Nie wszystkie znaki w tym programie mogą być reprezentowane w Unicode.
|
Służy do reprezentowaniaSHIFT+H
,┌
reprezentowaniaSHIFT+O
,┐
reprezentowaniaSHIFT+P
,/
reprezentowaniaSHIFT+N
. Ze względu na ograniczenia w Commodore Basic I / O, dane wejściowe są wprowadzane pojedynczo, za pomocą danych wejściowych od -1, aby wskazać koniec wprowadzania. Dane wyjściowe są rozdzielane tabulatorami.)QBasic: 96 bajtów
Używa tego samego schematu We / Wy, co wpis DLosc; Grałem w golfa o 15 bajtów, korzystając z faktu, że
INPUT V
zwraca 0 (co daje wartość false), gdy wprowadzana jest pusta linia (przynajmniej w MS-DOS QBasic 1.1 - nie wiem, czy to działa również w QB64).Pascal (kompilator FPC): 172 bajty
Dane wejściowe są oddzielone spacjami, a nie przecinkami, i kończą się znakiem nowej linii. Dane wyjściowe są rozdzielone spacjami.
Erlang: 401 bajtów
Obsługa sznurków w Erlang to królewski ból. W związku z tym wszystkie liczby zmiennoprzecinkowe muszą być wprowadzane co najmniej jedną cyfrą po przecinku -
string:to_float/1
nie będą konwertowane1
, ale zostaną przeliczone1.0
.(Więcej w przyszłości, zwłaszcza jeśli wymyślę, jak to zrobić w RoboTalk, języku bez operacji zmiennoprzecinkowych ani we / wy)
źródło
(Q/N)^.5
do mojegoSQR(q/n)
, ale to nie wpływa na długość. Może moglibyśmy podzielić się liderem? (wc
) zawiera końcowy znak nowej linii, który, jak przypuszczam, daje nam wiodącą rolę - przynajmniej dopóki nie wymyślę, jak pozbyć się tego duplikatuINPUT V
.GOTO
s zamiast pętli, ale nie mogłem uzyskać dalszej redukcji.Języki: 3
O ile nie zaznaczono inaczej, liczby muszą być oddzielone spacją.
C:
181163Pobiera liczby do końca wprowadzania.
(ISO) C ++: 195
Pobiera liczby do końca wprowadzania.
Haskell:
185180164159149140Pobiera dowolnie wiele list liczb oddzielonych znakiem nowej linii.
Realizacja
5041 bajków (dzięki shiona) jest tylko dla IO: /.Przykład
(
echo
Aka PowershellWrite-Output
drukuje każdy parametr w jednym wierszu)źródło
;c=t/a
w klauzuli let, pisz[h,g,a/z,r,t/a]
poin
.s$m(1/)x
jest krótsze niżs.m(1/)$x
jests$m(^2)x
.fromIntegral.length$x
przezfoldr(\_ x->x+1)0x
.s$m(const 1)x
.Języki - 4
Zawsze lubię wymówkę, aby wyciągnąć stare dobre
QBasic,
11296 bajtówQBasic nie jest dobry ze zmienną liczbą wejść, więc program wymaga jednej liczby na linię, zakończonej 0 lub pustą linią. Dane wyjściowe są oddzielone spacjami.
(Skrócone, gdy zdałem sobie sprawę, że 0 nie jest prawidłową liczbą i może być użyte do zakończenia wejścia.)
Testowane przy użyciu QB64 :
Common Lisp, 183 bajtów
Z jakiegoś powodu spodziewałem się, że będzie to krótsze. Nie jestem ekspertem od Lisp, więc wskazówki są mile widziane. Wersja bez golfa:
Prawdopodobnie najlepszym sposobem na przetestowanie jest wklejenie funkcji do
clisp
REPL, na przykład:Uwielbiam sposób, w jaki Lisp używa dokładnych ułamków zamiast liczb zmiennoprzecinkowych przy dzieleniu dwóch liczb całkowitych.
Prolog, 235 bajtów
Prolog nie jest świetny z matematyki, ale i tak go wykorzystamy. Testowane z SWI-Prolog. Myślę, że
sumlist
predykat może nie być standardowym Prologiem, ale cokolwiek, używam go.Nie golfowany:
W systemie Linux, z kodem w pliku o nazwie
means.pro
, przetestuj w następujący sposób:Daje poprawny, ale raczej zabawny wynik, gdy jest tylko jedna liczba:
Python 3, 103 bajty
Ta sama strategia, co wersja Dennisa w Python 2. Pobiera listę liczb oddzieloną przecinkami; obsługuje zarówno ints, jak i floaty. Wprowadzanie pojedynczej liczby musi być owinięte w nawiasy kwadratowe (zawsze może być lista liczb ); poprawka kosztowałaby 4 bajty.
źródło
8 języków
Fortran 77 - 286
BBC BASIC - 131
Wydajność:
C ++ - 292
Python 3 - 151
Wydajność:
Java - 421
JavaScript - 231
Nie jestem Javascripter, więc wszelkie wskazówki będą mile widziane
Algoid - 337
Zajrzyj do sklepu Google Play lub Raspberry Pi Store
var'aQ - 376
Jest to poprawne składniowo i wszystko, ale wszyscy obecni tłumacze po prostu nie działają ...
źródło
sqrt(b4/l)
zamiast(b4/l)**0.5
i wiele więcej za pomocąa
,b
,c
,d
zamiastb1-4
. Sprawiasz, że płaczę, używając 77 zamiast bardziej nowoczesnego F90 +.var
:var l=readline(),b=0,d=1,e=0,f=0;
. Nie jestem jednak pewien, jakareadline
jest funkcja.Length of sequence?
lub przynajmniej zmniejszając je.Języki: 3
CJam, 58
TI-Basic, 85
Java, 457
źródło
{dim(Ans)/sum(Ansֿ¹),dim(Ans)√(prod(Ans)),mean(Ans),√(mean(Ans²)),mean(Ans²)/mean(Ans
Języki - 2
Kobra - 132
Python - 129
źródło
1 język
R
9291Pobiera wektor wartości i wyprowadza wektor środków.
źródło
d=s(x^2)
i zastąpienie dwóch ostatnich zastosowańs(x^2)
zd
.1 język
Golfscript, 162
Tak, jest ogromny. I zdecydowanie można go zmniejszyć. Co zrobię później. Wypróbuj tutaj .
Oczekuje, że dane wejściowe zostaną rozdzielone znakiem nowej linii. Jeśli nie jest to dozwolone, naprawię to (+2 znaki). Wypisuje rozdzieloną listę nowej linii.
Oto nieco bardziej czytelna wersja:
źródło
l*l
razy wyższy, gdziel
jest liczba liczb zmiennoprzecinkowych.Języki 2
Fortran: 242
Odkryłem to dla jasności, ale liczy się wersja golfowa. najpierw musisz wprowadzić liczbę wartości do dodania, a następnie wartości.
wxMaxima 134
Skopiuj to do edytora,
ctrl+enter
a następnie wywołaj przez,m([1,2,3,4,5]),numer
aby uzyskać wynik zmiennoprzecinkowy (w przeciwnym razie otrzymasz wynik symboliczny).źródło
Perl,
8676Wprowadzanie: jedna liczba na linię.
EDYCJA: jest to jedna postać dłużej, ale ponieważ najwyraźniej linie shebang nie są wliczane do sumy, ostatecznie jest lepiej:
źródło
T-SQL,
136122Z listami numerów zapisanymi w tabeli S, gdzie I (liczba całkowita) identyfikuje listę, a V (liczba zmiennoprzecinkowa) wartość.
SQLFiddle
Ocalono 14 dzięki Alchymist
źródło
Języki: 5
Niektóre wpisy starają się unikać błędów zaokrąglania (do 4 miejsc po przecinku), używając BigDecimal Java zamiast float / double i akceptują reguły IO na OP.
Nowsze wpisy rozluźniają zarówno reguły IO, jak i BigDecimal.
Groovy -
409400164157 znakówprzykładowy przebieg:
Java -
900235 znakówprzykładowy przebieg:
Clojure -
524324 znakówprzykładowy przebieg (na końcu ma przecinek końcowy):
Scala -
841663230 znakówprzykładowy przebieg:
JRuby - 538 znaków
Nie jest jasne, czy JRuby różni się od Ruby: to musi działać na JVM. Jest to jednak składnia Rubiego. Tak czy inaczej, włączam to w duchu kamienia z Rosetty.
uruchomienie próbne (wyświetla ostrzeżenie do stderr):
źródło
Języki 1
lua - 113
źródło
Języki - 1
Groovy:
źródło
2 języki
Java - 243 bajty
rozszerzony:
vba - excel, 387 bajtów
Wpisz wartości w pierwszej kolumnie, a następnie naciśnij przycisk (który uruchamia ten kod), a wyświetli wartości w drugiej kolumnie.
źródło
1 język
Rdza - 469
(
rustc 0.11.0-pre (3851d68 2014-06-13 22:46:35 +0000)
)Wersja bez golfa:
Kompaktowa wersja 430 bajtów bez pętli lub wejścia, do testowania w trybie odtwarzania :
Zaktualizowano dla nowszej rdzy:
Nie golfowany:
Gra w golfa (402 bajty):
źródło
Języki: 4
CoffeeScript, 193
Pobiera oddzielony przecinkami ciąg danych wejściowych:
JavaScript (ES5), 256
Ponownie pobiera ciąg danych wejściowych oddzielony przecinkami:
PHP, 252
Ta sama koncepcja:
TypeScript, 393 *
Ponieważ TypeScript jest nadzbiorem JavaScriptu, mogłem właśnie przesłać ten sam kod, ale teraz nie byłoby to uczciwe. Oto zminimalizowany kod TypeScript ze wszystkimi funkcjami, zmiennymi i parametrami w pełni wpisanymi:
Mógł też oszukiwać i używać tego typu
any
... ale wiesz.źródło
Excel - 120
Nie jestem pewien, czy liczy się to jako język „programowania”, ale pomyślałem, że ludzie mogą faktycznie używać arkusza kalkulacyjnego do tego typu rzeczy
Z liczbami w A2: J2
źródło
A:A
aby objąć całą kolumnęA
.VBA (Excel) - 105
Nie golfowany:
Ten kod musi zostać uruchomiony w bezpośrednim oknie, a tablica musi mieć nazwę i . Ponieważ nie ma gromadzenia błędów, czyszczenia, żadnych zmiennych upuszczania / zwalniania, jeśli chcesz przetestować ten kod, możesz użyć następującego fragmentu kodu (po prostu wklej w bezpośrednim oknie i uruchom wiersze w kolejności):
Nic specjalnego, tylko wybór bezpośredniego okna : do zastąpienia podziałów linii, co pozwala zaoszczędzić kilka bajtów w porównaniu do ustawienia podrzędnej lub funkcji i zamknięcia jej; za pomocą ? drukować zamiast debug.print (tylko w bezpośrednim oknie); i poleganie na tym, jak vba określa wartości niejawne (dodanie wartości do zmiennej nieustawionej zwraca wartość) i operacje niejawne (wszystko, co obejmuje łańcuch, jest niejawnie konkatenacją).
źródło