Niektórzy mówią, że ciekawość zabiła kota. Inni mówią, że to było pudełko i trucizna. RSPCA twierdzi, że Erwin Schrödinger musi stracić prawo do posiadania zwierząt domowych.
Z działaczami na rzecz praw zwierząt przed jego domem. Kot morderca naukowiec Schrödinger wreszcie wymyślić swojego największego wynalazku. Specjalna, radioaktywna mieszanka unobtanium i handwavium, która może mieć dowolny okres półtrwania, a jeden gram produktu jest w stanie zabić każde żywe stworzenie. Niestety, kiedy próbował przetestować go na swoim ostatnim kocie: Bobie, zapomniał, że koty mają 9 żyć, a więc potrzebuje 9 gramów, aby zabić. Przy odrobinie wody, ale bez jedzenia, biedny Bob przeżyje dokładnie 1 tydzień (7 dni), jeśli produkt nie zabije go pierwszy.
Zadanie: Biorąc pod uwagę wkład masy w miligramach i okres półtrwania w milisekundach - obie liczby całkowite, które mogą przekraczać 2 ^ 31, napisz program, który wyświetli, czy tajemniczy super produkt zabije kota, czy też jest to 1 tydzień limit wygasa pierwszy. Załóżmy, że prawda / tak / 1 / wszystko określone w odpowiedzi dotyczy sytuacji, gdy nie umrze on z głodu.
Aby produkt go zabił, musi zepsuć się łącznie 9 gramów. Tak więc z próbki 18 gramów musi upłynąć 1 okres półtrwania. Jeśli próbka zawiera mniej niż 9 gramów, nigdy nie zostanie to osiągnięte, dlatego można natychmiast założyć, że minie 1 tydzień, zanim rozpadnie się 9 gramów.
Możesz założyć:
- Bob umiera, mikrosekunda 9 gramów uległa rozkładowi.
- Zmiana jest masowa z powodu rozkładu nie ma znaczenia.
- Wszystkie dni i godziny następują po ogólnie przyjętym czasie na ziemi.
- Pudełko, w którym zaplombowany jest Bob, jest nie do złamania i nie można go otworzyć, więc nie ma szans na śmierć z innych przyczyn.
- Tlen również nie stanowi problemu.
- Jeśli oba wystąpią dokładnie w tym samym czasie, każde wyjście jest akceptowalne.
- Wszystkie dane wejściowe powinny być poniżej 2 ^ 63-1
Przypadki testowe:
Przykład:
18000 604800001
Aby rozpadło się 9 gramów, musi upłynąć dokładnie 1 okres półtrwania (18000/2 = 9000 miligramów lub 9 gramów). 1 okres półtrwania wynosi 604800001 milisekund lub 168 godzin i 1 milisekundę, lub dokładnie 1 tydzień i 1 milisekundę. Ponieważ Bob umiera z głodu dokładnie w 1 tygodniu, wynik jest fałszywy, ponieważ zmarł z głodu tuż przed osiągnięciem limitu produktu 9 gramów
8000 40000 false
70000 800 true
18000 604800000 either
18000 604800001 false
18000 604799999 true
1 1 false
100000 1 true
1000000000 1000000000 true
Punktacja: Oczywiście chcemy, aby cierpienie Boba szybko się skończyło, dlatego najlepszy jest krótszy okres półtrwania. Okres półtrwania i bajt kończą się na E, więc wyraźnie wygrywa najkrótsza liczba bajtów.
true
czyfalse
?λ
i masym
,m-m*(1/2)**(604800000/λ) > 9000
(lub≥
, w przypadku, ponieważ krawędź może przejść w obu kierunkach).Odpowiedzi:
Python 3, 33 bajty
Wyjaśnienie:
Wypróbuj tutaj
źródło
lambda a,b:2**(-6048e5/b)+9e3/a<1
CJam (22 bajty)
Demo online
Sekcja
Szybkie wyjaśnienie matematyki: jeśli okres połowicznego rozpadu jest
λ
wtedy, po pewnym czasiet
pozostaje(1/2)^(t/λ)
proporcja pozostałego materiału radioaktywnego , więc proporcja ulega rozkładowi1 - (1/2)^(t/λ)
.źródło
Fourier, 51 bajtów
Muszę przyznać, że nie do końca rozumiem ten program ... Głównie tylko tłumaczenie kodu Python TheNumberOne.
Zauważ, że jest to pierwszy program, który napisałem dla PPCG, który korzysta
@
z funkcji Clear Output.Wypróbuj online!
źródło
Właściwie 20 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Dyalog APL , 19 bajtów
9E3≤
jest 9000 mniejszy lub równy⊣-
lewy argument (masa) minus⊣×
czasy lewych argumentów.5*
½ do potęgi6048E5÷⊢
604800000 podzielone przez odpowiedni argument (okres półtrwania)Nie potrzeba nawiasów, ponieważ APL jest ściśle od prawej do lewej.
Wypróbuj APL online!
źródło