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


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.