호기심이 고양이를 죽였다?


20

어떤 사람들은 호기심이 고양이를 죽였다고 말합니다. 다른 사람들은 그것이 상자와 독이었다고 말합니다. RSPCA는 Erwin Schrödinger가 애완 동물을 소유 할 권리를 잃을 필요가 있다고 말합니다.

그의 집 밖에서 동물 권리 운동가들과 함께. 고양이 살인자의 과학자 슈뢰딩거는 마침내 자신의 가장 큰 발명에 도달했습니다. 반 생명을 가질 수있는 unobtanium과 handwavium의 특수한 방사성 혼합물과 1 그램의 제품은 모든 생명체를 죽일 수 있습니다. 불행히도, 그의 마지막 고양이 밥을 시험해 보려고했을 때, 그는 고양이가 9 마리의 생명을 가졌다는 것을 잊었으므로 죽이기 위해서는 9 그램이 필요합니다. 물이 있지만 음식이없는 상태에서 가난한 밥은 제품이 먼저 그를 죽이지 않으면 정확히 1 주일 (7 일) 살 것입니다.

과제 : 밀리그램 단위의 질량 입력과 밀리 초 단위의 반감기-2 ^ 31을 초과 할 수있는 정수, 미스터리 슈퍼 제품이 고양이를 죽일 지 여부 또는 1 주일인지 여부를 출력하는 프로그램 작성 한계가 먼저 만료됩니다. 대답에 명시된 true / yes / 1 / any는 기아로 죽지 않을 때를위한 것이라고 가정합니다.

제품이 그를 죽이려면 총 9 그램이 부패해야합니다. 따라서 18g의 표본 중 1 반감기가 통과해야합니다. 샘플에 9 그램 이하가 포함되어 있으면 절대 달성 할 수 없으므로 1 주일이 지나면 9 그램이 붕괴되기 전에 즉시 가정 할 수 있습니다.

당신은 가정 할 수 있습니다 :

  • 밥은 마이크로 그램 9 그램이 부패한 것으로 죽습니다.
  • 붕괴로 인한 질량 변화는 중요하지 않습니다.
  • 모든 요일과 시간은 일반적으로 허용되는 지구 시간을 따릅니다.
  • Bob이 봉인 된 상자는 깨지지 않으며 열 수 없으므로 다른 원인으로 사망 할 가능성이 없습니다.
  • 산소도 문제가되지 않습니다.
  • 둘 다 정확히 동시에 발생하면 어느 쪽이든 출력이 허용됩니다.
  • 모든 입력은 2 ^ 63-1 미만이어야합니다

테스트 사례 :

예:

18000 604800001

9 그램이 붕괴 되려면 정확히 반감기가 18000/2 = 9000 밀리그램 또는 9 그램이어야합니다. 반감기는 604800001 밀리 초 또는 168 시간 1 밀리 초 또는 정확히 1 주 1 밀리 초입니다. Bob은 정확히 1 주일에 기아로 사망하기 때문에 9 그램의 제품 한도에 도달하기 직전에 기아로 사망 한 결과는 허위입니다.

8000 40000 false

70000 800 true

18000 604800000 either

18000 604800001 false

18000 604799999 true

1 1 false

100000 1 true

1000000000 1000000000 true

채점 : 당연히 Bob의 고통이 빨리 끝나기를 바랍니다. 따라서 짧은 반감기가 가장 좋습니다. 반감기와 바이트는 모두 E로 끝나므로 바이트 수가 가장 짧습니다.


6
당신은 방사성 물질이 완전히 붕괴되지 않는다는 것을 알고 있습니다
Rohan Jhunjhunwala

1
우리가 여기서 무엇을해야할지 모르겠습니다 ... 각 단계를 거쳐 출력이되어야하는지 true또는 false?
Beta Decay

PPCG에 오신 것을 환영합니다! 다른 사람들이 말했듯이 이것은 조금 더 설명을 사용할 수 있습니다. 위에서 제기 한 사항을 해결하면 이것이 어려운 과제라고 생각하며 다시 열릴 것입니다. 나중에 참조 할 수 있도록 샌드 박스를 사용할 수 있으므로 작성자는 주요 사이트에 게시하기 전에 문제에 대한 피드백을받을 수 있습니다.
AdmBorkBork

3
출력이 True를 제공하는 방정식을 알려주시겠습니까?
xnor

1
@xnor 반감기 λ와 질량의 m경우 m-m*(1/2)**(604800000/λ) > 9000(또는 엣지 케이스는 어느 쪽이든 갈 수 있으므로).
Mego

답변:


9

파이썬 3, 33 바이트

lambda a,b:a-a*.5**(6048e5/b)>9e3

설명:

         6048e5         # number of milliseconds in 1 week
               /b       # half-lifes per week
  a*.5**(        )      # mgs of substance remaining after 1 week
a-                      # mgs of substance decayed after one week
                  >9e3  # return true if more than 9000mgs has decayed in 1 week

여기를보십시오


또한 33 바이트 :lambda a,b:2**(-6048e5/b)+9e3/a<1
다니엘

5

CJam (22 바이트)

q~dX.5@6048e5\/#-*9e3>

온라인 데모

해부

수학에 대한 간단한 설명 : 만약 반감기가 λ시간 t이 지나면 남은 방사성 물질 (1/2)^(t/λ)의 비율은이므로 쇠퇴 비율은 1 - (1/2)^(t/λ)입니다.

q~d         e# Parse input, ensuring that the later division will use doubles
X.5@6048e5\ e# Rearrange stack to: m 1 0.5 6048e5 λ
/#-*        e# Div, pow, sub, mul, giving the total mass decayed after a week
9e3>        e# Is it OVER 9000! ?

5

푸리에, 51 바이트

나는이 프로그램을 완전히 이해하지 못한다는 것을 인정해야한다. 주로 TheNumberOne의 파이썬 코드를 번역 한 것이다.

oI~M~NI~H604800000~G>H{1}{G/H^(M/2~Mi^~i)N-M>9000@o}

이것은 @명확한 출력 기능 을 사용하는 PPCG 용으로 작성한 첫 번째 프로그램입니다 .

온라인으로 사용해보십시오!


4
맞춤 사용자 이름 ...
ojdo

@ojdo Haha yes : D
Beta Decay

4

실제로 20 바이트

5╤:6048*/1½ⁿ1-*93╤*<

온라인으로 사용해보십시오!

설명:

5╤:6048*/1½ⁿ1-*93╤*<
5╤                    10**5
  :6048               6048
       *              6048*10**5 (milliseconds in 1 week)
        /             divide by half-life
         1½ⁿ          (1/2)**(^)
            1-        1-(^) (% of sample decayed after 1 week)
              *       multiply by sample mass (mass decayed after 1 week)
               93╤*   9*10**3 (9000)
                   <  is 9000 < sample mass decayed?

3

Dyalog APL , 19 바이트

9E3≤⊣-⊣×.5*6048E5÷⊢

9E3≤ 9000보다 작거나 같습니다

⊣- 왼쪽 인수 (질량) 빼기

⊣× 왼쪽 논쟁 시간

.5*  힘의 1/2

6048E5÷⊢ 올바른 인수로 나눈 604800000 (반감기)

APL은 오른쪽에서 왼쪽으로 엄격하므로 괄호가 필요하지 않습니다.

TryAPL 온라인!


1
19 바이트 그것은 신진 대사입니다.
C. Tewalt

@matrixugly이 경우 다른 언어에 왜 보풀이 많은지 묻습니다. 수학과 같은 매우 일반적인 표기법에서 "사물"당 정확히 하나의 문자가 있습니다.
Adám
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.