Grawitacyjna energia wiązania planety to ilość energii potrzebnej do rozdzielenia każdy skrawek z nim tak, że nie będzie kawałek orbicie lub zderzyć się z innym elementem. W przypadku jednolitej kuli Wikipedia podaje następującą formułę:
Gdzie G jest stałą grawitacji (6.672e-11 m 3 • kg -1 • s -2 ), M jest masą, a R jest promieniem.
I może dokonać tego tylko Wyzwaniem obliczaniu tego w dżulach (kg • m 2 • y -2 ), a ..., które byłyby nudna . Poza tym nie wszyscy rozumieją dżule.
Zamiast tego przekonwertujmy to na następujące jednostki:
- Kilotony TNT (4.184 bilionów dżuli, stenografia
kilotons
) - Broń jądrowa Hiroszimy (62,76 biliona dżuli, stenografia
nukes
) - Hostess ™ Twinkies (560 000 dżuli, stenografia
twinkies
) - Kilowatogodzin (dokładnie 3,6 miliona dżuli, stenografia
kWh
) - Kilogramy energii masowej (1 kg energii masowej = 299,792,458 2 dżule, stenografia
kg
)
Więc weź następujące dane wejściowe:
- masa w kilogramach
- promień w metrach
- jedno z sześciu różnych danych wejściowych reprezentujących używaną jednostkę
I wyprowadzaj energię wiązania w określonych jednostkach. Dołącz stenograficzną jednostkę na końcu wyjścia.
Zasady
- Skrót dla dżulów to
J
. - Dowolna biała spacja jest dozwolona, o ile nie dzieli jednostki stenograficznej ani liczby.
- Notacja naukowa jest dozwolona, niezależnie od formatu używanego przez Twój język.
- Potrzebujesz tylko 4 znaczących liczb. Zdecydowanie zalecane są zmiennoprzecinkowe .
- Bla bla, najkrótsza odpowiedź w bajtach.
Przypadki testowe
Wygenerowano z tego arkusza kalkulacyjnego .
Mass (kg) Radius (m) J kilotons nukes twinkies kWh kg
3.302E+23 2440000 1.789E+30 4.275E+17 2.850E+16 3.194E+24 4.969E+23 1.990E+13
4.869E+24 6052000 1.568E+32 3.748E+19 2.499E+18 2.800E+26 4.356E+25 1.745E+15
5.974E+24 6371000 2.242E+32 5.360E+19 3.573E+18 4.004E+26 6.229E+25 2.495E+15
6.419E+23 3390000 4.866E+30 1.163E+18 7.753E+16 8.689E+24 1.352E+24 5.414E+13
1.899E+27 69911000 2.065E+36 4.935E+23 3.290E+22 3.687E+30 5.736E+29 2.298E+19
5.685E+26 58232000 2.222E+35 5.310E+22 3.540E+21 3.968E+29 6.172E+28 2.472E+18
8.683E+25 25360000 1.190E+34 2.845E+21 1.896E+20 2.125E+28 3.306E+27 1.324E+17
1.024E+26 24620000 1.705E+34 4.075E+21 2.717E+20 3.045E+28 4.736E+27 1.897E+17
1.311E+22 1186000 5.801E+27 1.387E+15 9.244E+13 1.036E+22 1.611E+21 6.455E+10
1.989E+30 696300000 2.274E+41 5.436E+28 3.624E+27 4.062E+35 6.318E+34 2.531E+24
7.350E+22 1737000 1.245E+29 2.976E+16 1.984E+15 2.223E+23 3.458E+22 1.385E+12
Inspirowany Powering the Death Star with Twinkies Scott Manley.
Odpowiedzi:
05AB1E ,
5654 bajtówPobiera dane wejściowe jako
unit, radius, mass
Wypróbuj online!
Zaoszczędzono 2 bajty dzięki Erikowi outgolferowi (kodowanie bazy 255
4184
i6276
).źródło
JavaScript (ES6), 78 bajtów
Pobiera dane wejściowe jako 3 różne zmienne
(mass, radius, unit)
.Przypadki testowe
Poniższy fragment kodu uruchamia wszystkie przypadki testowe w dostarczonym arkuszu kalkulacyjnym.
Pokaż fragment kodu
W jaki sposób?
Jest to dość podobne do odpowiedzi C @ ColeraSu , z przyjazną dla JS funkcją skrótu, która działa na całym łańcuchu jednostki.
źródło
Galaretka , 78 bajtów
Wypróbuj online!
Rzeczy związane ze sznurkami nie są tak naprawdę wyzwaniem Jelly ...
-7 bajtów dzięki dla user202729 (dzięki za pomoc w tym, aby nie zostać pobitym przez JavaScript: D)
źródło
C, 113 bajtów
Hash drugi znak, używając końcowego znaku
'\0'
o"J"
. Używana jest tablica wbudowana w C.Zauważ, że musimy pomnożyć drugą
M
ostatnią, bo inaczej przepełni sięinf
.Wypróbuj online!
źródło
APL (Dyalog Unicode) ,
153 7169 bajtówWypróbuj online!
Dzięki @ Adám za absolutne zmiażdżenie mojej starej odpowiedzi na tę. Dzięki @ngn za 2 bajty.
Ta „funkcja” to tak naprawdę operator o nazwie
op
. Wszystkie wartości jednostek miary zostały przekształcone w notację naukową.Jak to działa:
źródło
Python 3,
112106108101 bajtówCałkiem prosto. Wykorzystuje
e
notację Pythona . Korzysta ze słownika, który rozróżnia jednostkę na podstawie drugiej litery i dzieli przez wartość odpowiadającą.u[1:2]
jest w zasadzieu[1]
spodziewaj się, że zwróci''
zamiast błędu (którego dopiero się nauczyłem). Następnie stosuje formułę z kilkoma uproszczeniami.edycja: do 106 dzięki całkowicie ludzkiemu, z powrotem do 108 z powodu nowej wartości nuklearnej i do 101 dzięki Colera Su.
Wypróbuj online!
źródło
Excel (Office 365),
10610197 bajtówZakładając, że komórką
A1
jest masa,A2
promień iB1
jednostka, zapisana jako skrót dla wyniku.Excel, 130 bajtów
Staromodny Excel nie ma tej
SWITCH
funkcji, więc maszźródło
299792E3^2
z89876E12
Podzielić wszystkie wartości przez (nadal na tyle dokładnych wymagań zapytania.)1000
Zapisuje kolejne 2:=40032E-19*A1^2/(A2*SWITCH(MID(B1,2,1),"u",6276E6,"w",56,"W",360,"g",89876E8,"i",4184E5,1E-4))&B1
Switch()
funkcja jest dostępna dla kopii Excela na pulpicie i została wprowadzona wraz z pakietem Office 2016.Rubin,
8382 bajtówUżywa niestandardowego skrótu do indeksowania LUT dla jednostek (
i * k mod m
formuła). Liczby zostały znalezione przy użyciu siły brutalnej.źródło
Excel, 94 bajty
Odbiera Mszę od
A1
, Promień odB1
, Jednostka wC1
. Spójrz na2*Code(Unit) + Length(Unit) modulo 11
.źródło
Galaretka , 59 bajtów
Chciałem tylko wypróbować inną dziwną metodę konwersji jednostek. Ale reszta kodu jest prawdopodobnie źle zagrana w golfa.
Wypróbuj online!
W jaki sposób?
Budujemy „podpis” ciągu jednostkowego na podstawie jego kodów ASCII. Interpretujemy to jako wartość binarną i stosujemy modulo, aby uzyskać końcowy indeks w tabeli odnośników.
Łącze pomocnicze daje następujące wskaźniki dla każdej jednostki:
źródło