W tym pytaniu skupimy się na utracie wagi tylko podczas ćwiczeń, chociaż nadal istnieje wiele sposobów, aby schudnąć.
Różne sporty spalają różną ilość kalorii.
Na przykład gra w bilard przez godzinę może spalić 102 kalorie [1] , podczas gdy gra w koszykówkę przez 15 minut może już spalić 119 kalorii [1] , które ułatwiają utratę wagi, grając w koszykówkę, przynajmniej z pewnych perspektyw.
Dokładny sposób ważenia łatwości polega na podzieleniu ilości spalonych kalorii przez potrzebny czas, co daje nam wskaźnik łatwości (EI).
Na przykład ogrodzenie przez 15 minut może spalić 85 kalorii, co daje EI 85/15.
Otrzymasz listę w tym formacie:
[["fencing",15,85],["billiards",60,102],["basketball",15,119]]
lub inny żądany format.
Następnie wygenerujesz sporty o najwyższym EI.
TL; DR
Biorąc pod uwagę listę [name,value1,value2]
wyjściowych krotek, name
gdzie value2/value1
jest najwyższe.
Ograniczenia
- W tym procesie nie można wygenerować żadnej liczby rzeczywistej, która nie jest liczbą całkowitą.
- Być może nie używać żadnych frakcji wbudowany.
Dane techniczne (specyfikacje)
- Jeśli istnieje więcej niż jedna nazwa, która odpowiada wynikowi, możesz wypisać dowolny niepusty ich podzbiór lub dowolny element.
- Nazwa będzie pasować do wyrażenia regularnego
/^[a-z]+$/
, co oznacza, że będzie się składać tylko z łacińskiego standardowego alfabetu. - Lista nie będzie pusta.
Testcase
Wejście:
[["fencing",15,85],["billiards",60,102],["basketball",15,119]]
Wynik:
basketball
Bibliografia
źródło
Odpowiedzi:
Python 2, 51 bajtów
Czy oczywiste jest znalezienie wpisu o największym współczynniku, ale omija zakaz pływaków, najpierw mnożąc licznik przez ogromną zależną od wejścia moc 10 przed podzieleniem podłogi.
Udowodnię, że ten współczynnik jest wystarczająco duży, aby podział podłogi działał tak samo, jak podział bez podłogi.
Twierdzenie: Jeśli a 1 / b 1 > a 2 / b 2 , to podłoga (Na 1 / b 1 )> podłoga (Na 2 / b 2 ) dla dowolnego N≥b 1 b 2 .
Dowód: Zauważ, że a 1 / b 1 - a 2 / b 2 jest wielokrotnością 1 / b 1 b 2 , więc a 1 / b 1 - a 2 / b 2 > 0 oznacza, że
Następnie mnożąc obie strony przez N,
Tak więc, ponieważ Na 1 / b 1 i Na 2 / b 2 różnią się co najmniej o 1, ich odpowiednie podłogi są różne. ∎
Teraz zauważ, że iloczyn b 1 b 2 ma długość cyfr co najwyżej całkowitą długość cyfr, która jest mniejsza niż długość ciągu wejściowego. Ponieważ wejście znajduje się w podstawie 10, wystarczy użyć 10 do potęgi jego długości,
N=10**len(`l`)
aby utworzyć liczbę z większą liczbą cyfr niż to, co gwarantuje warunek.źródło
9
Może zadziałać zamiast10
?[('y', 10**296+1, 1), ('x', 10**296, 1)]
.JavaScript (ES6), 43 bajty
Lub alternatywnie
Sortowanie jest oczywiście przesadne, ale
reduce
zajęłoby 46 bajtów:źródło
MATL , 8 bajtów
Wszystkie obliczone liczby są liczbami całkowitymi. Najpierw oblicza się iloczyn mianowników (jest to liczba całkowita). Ten produkt jest podzielony przez każdy mianownik (który daje również liczbę całkowitą). Każdy wynik jest następnie mnożony przez odpowiedni licznik. Daje to liczbę całkowitą proporcjonalną do pierwotnego ułamka.
Format wejściowy to: tablica liczbowa z mianownikami, tablica liczbowa z licznikami, tablica komórek ciągów o nazwach sportowych:
Jeśli istnieje kilka minimalizatorów, pierwszy jest generowany.
Wypróbuj online!
źródło
Dyalog APL , 18 bajtów
Monituje o czasy, następnie o kalorie, a następnie o nazwy działań.
⎕
monit (na czas)(∧/÷⊢)
LCM∧/
czasów podzielonych przez÷
czasy⊢
(więc nie ma pływaków)⎕×
monit (dla kalorii) i pomnóż je(⊢⍳⌈/)
w tym⊢
uzyskaj pozycję⍳
wartości maksymalnej⌈/
⎕⊃⍨
monit (dla działań), a następnie wybierz n ty.Przykładowy przebieg:
źródło
Brachylog , 42 bajty
Wypróbuj online!
/
Powyższe dzielenia całkowitego, ponieważ obaJ*D
iI
są liczbami całkowitymi (D
jest wielokrotnościąI
w rzeczywistości).Wyjaśnienie
Główny predykat:
Input = [["string":mins:cals]:...]
Predykat 1:
źródło
Siatkówka ,
6462 bajtówLiczba bajtów zakłada kodowanie ISO 8859-1.
Dane wejściowe to jeden sport na linię, w formacie
value1 value2 name
. Wyjście jest jednym z maksymalnych wyników (jeśli istnieje remis, daje ten z największym,value1
a jeśli te są również powiązane, jeśli daje leksykograficznie większyname
).Pamiętaj, że jest to bardzo wolne (z tych samych powodów, co wczorajsza przerwa w stosie wymiany ). Aby uruchomić go w rozsądnym czasie, możesz dodać
\b
przed nim(0+)
(co nie wpłynie wcale na sposób, w jaki przetwarza dane wejściowe, ale poważnie ogranicza cofanie wyrażenia regularnego). Zrobiłem to w linku testowym poniżej.Wypróbuj online!
źródło
Python 2,
5554 bajtówDzięki @xnor za grę w golfa na 1 bajcie!
Przetestuj na Ideone .
źródło
sorted
można wziąć funkcję komparatora z dwoma wejściami, zamierzałem to zhakować razem.lambda(a,b,c),(d,e,f):b*f-c*e
.Haskell
7270 bajtówStosowanie :
źródło
Mathematica, 46 bajtów
Kolejność krotek powinna być
{value1,value2,name}
. Zwraca pełny zestaw wszystkich maksymalnych wyników.Pracuję nad wykorzystaniem ułamków mnożąc licznik przez LCM wszystkich
value1
s przed podziałem.źródło
R,
4240 bajtówPobiera dane wejściowe w postaci ramki danych z kolumnami typu ciąg (działa również z czynnikami), numeryczny, numeryczny.
%/%
jest dzieleniem całkowitym.To jest moje pierwsze zgłoszenie, daj mi znać, czy jest zgodne z zasadami.
Edycja: Okazuje się, że nawiasy klamrowe nie są potrzebne do zdefiniowania funkcji jednowierszowej.
źródło
C ++ 14, 89 bajtów
Funkcja Lambda:
Nie golfowany:
Stosowanie:
źródło
Haskell, 46 bajtów
EDYCJA: To rozwiązanie nie działa, jak wskazał Damien, to nie rozwiązuje problemu. Szukam dobrej poprawki.
źródło
s(_,(x,y))=divMod y x
jest krótszys(n,(x,y))=(divMod y x,n)
g=snd.maximum.map s
też ..divMod a b < divMod c d
nie jest równoważnea/b < c/d
.divMod 19 4 < divMod 55 12
ale19/4 > 55/12
VBA Excel, 109 bajtów
Wywołaj w komórce arkusza kalkulacyjnego odwołując się do tabeli działań i parametrów:
źródło
05AB1E ,
67 bajtów+1 bajt, aby naprawić błąd w moim podejściu divmod ( patrz ten komentarz do innej odpowiedzi ) przez portowanie @LuisMendo „s Mátl odpowiedź , więc upewnij się, aby go upvote!
Dane wejściowe są podobne do jego odpowiedzi: trzy oddzielne listy, będące całkowitą listą mianowników; całkowita lista nominatorów; i ciąg nazwisk.
Wypróbuj online lub sprawdź więcej przypadków testowych .
Wyjaśnienie:
źródło
Java 8, 128 bajtów
źródło
Rubinowy, 72 bajty
Naprawdę myślałem, że to będzie krótsze ...
Dane wejściowe są pobierane ze STDIN w formacie
name time calories
No cóż, każda pomoc w skróceniu jest doceniana.
źródło
Clojure, 63 bajty
źródło
PHP , 98 bajtów
Użyłem prostszego formatu wejściowego niż w przykładzie, tak jak poniżej:
ogrodzenie, 15,85, bilard, 60,102, koszykówka, 15,119
Wypróbuj online!
źródło