ความอยากรู้อยากเห็นฆ่าแมว


20

บางคนบอกว่าอยากรู้อยากเห็นฆ่าแมว อื่น ๆ บอกว่ามันเป็นกล่องและพิษ RSPCA บอกว่า Erwin Schrödingerจำเป็นต้องสูญเสียสิทธิในการเป็นเจ้าของสัตว์เลี้ยง

พร้อมด้วยนักเคลื่อนไหวเพื่อสิทธิสัตว์นอกบ้านของเขา แมวฆาตกรนักวิทยาศาสตร์Schrödingerได้ในที่สุดเกิดขึ้นกับสิ่งประดิษฐ์ที่ยิ่งใหญ่ที่สุดของเขา การผสมกัมมันตภาพรังสีพิเศษของ unobtanium และ handwavium ที่สามารถมีครึ่งชีวิตได้และผลิตภัณฑ์หนึ่งกรัมสามารถฆ่าสิ่งมีชีวิตใด ๆ ได้ โชคไม่ดีที่เมื่อเขาพยายามทดสอบแมวตัวสุดท้ายของเขา: บ็อบเขาลืมไปแล้วว่าแมวมีชีวิตอยู่ 9 ชีวิตและต้องฆ่า 9 กรัม ด้วยน้ำ แต่ไม่มีอาหารบ๊อบผู้น่าสงสารจะมีชีวิตอยู่ได้ 1 สัปดาห์ (7 วัน) หากผลิตภัณฑ์ไม่ฆ่าเขาก่อน

ภารกิจ: เมื่อได้รับข้อมูลจำนวนมากในหน่วยมิลลิวินาทีและครึ่งชีวิตในหน่วยมิลลิวินาที - ทั้งจำนวนเต็มที่เกิน 2 ^ 31 เขียนโปรแกรมที่แสดงว่าผลิตภัณฑ์ลึกลับสุดฆ่าแมวหรือไม่หรือเป็นเวลา 1 สัปดาห์ ขีด จำกัด หมดอายุก่อน สมมติว่าเป็นจริง / ใช่ / 1 / ทุกอย่างที่ระบุในคำตอบนั้นใช้สำหรับเมื่อเขาไม่ตายจากการขาด

เพื่อให้ผลิตภัณฑ์ฆ่าเขาจะต้องสลายตัวทั้งหมด 9 กรัม ดังนั้นจากตัวอย่าง 18 กรัมจะต้องผ่านไปครึ่งชีวิตหนึ่ง หากตัวอย่างมีปริมาณน้อยกว่าหรือเท่ากับ 9 กรัมจะไม่สามารถทำได้ดังนั้นจึงสามารถสันนิษฐานได้ว่า 1 สัปดาห์จะผ่านไปก่อนที่จะมีการสลายตัว 9 กรัม

คุณอาจจะ:

  • บ๊อบเสียชีวิตจากไมโครวินาทีถึง 9 กรัม
  • การเปลี่ยนแปลงคือมวลเนื่องจากการสลายตัวไม่สำคัญ
  • ทุกวันและเวลาตามเวลาโลกที่ยอมรับโดยทั่วไป
  • กล่องบ๊อบถูกผนึกในนั้นไม่แตกและไม่สามารถเปิดได้ดังนั้นจึงไม่มีโอกาสตายจากสาเหตุอื่น
  • ออกซิเจนก็ไม่มีปัญหา
  • หากทั้งสองเกิดขึ้นในเวลาเดียวกันเอาท์พุทเป็นที่ยอมรับ
  • อินพุตทั้งหมดควรต่ำกว่า 2 ^ 63-1

กรณีทดสอบ:

ตัวอย่าง:

18000 604800001

สำหรับการสลายตัว 9 กรัมจะต้องผ่าน 1 ครึ่งชีวิตเท่านั้น (18000/2 = 9000 มิลลิกรัมหรือ 9 กรัม) 1 ครึ่งชีวิตคือ 604800001 มิลลิวินาทีหรือ 168 ชั่วโมงและ 1 มิลลิวินาทีหรือ 1 สัปดาห์และ 1 มิลลิวินาที เนื่องจากบ๊อบเสียชีวิตจากความอดอยากในเวลา 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

การให้คะแนน: โดยธรรมชาติแล้วเราต้องการให้ความทุกข์ของบ็อบจบลงอย่างรวดเร็วและครึ่งชีวิตที่สั้นกว่าก็ดีที่สุด Half-life และไบต์ทั้งสองจบใน E ดังนั้นชัดเจนนับไบต์ที่สั้นที่สุดชนะ


6
คุณรู้ว่าสารกัมมันตรังสีไม่สลายตัวเต็มที่
Rohan Jhunjhunwala

1
ฉันไม่รู้ว่าเราต้องทำอะไรที่นี่ ... คุณสามารถผ่านแต่ละขั้นตอนเพื่อดูว่าผลลัพธ์ควรเป็นtrueหรือfalse?
Beta Decay

สวัสดีและยินดีต้อนรับสู่ PPCG! อย่างที่คนอื่นพูดนี่อาจใช้ความกระจ่างมากกว่านี้สักหน่อย หากคุณพูดถึงประเด็นที่กล่าวมาข้างต้นฉันคิดว่านี่อาจเป็นความท้าทายที่เรียบร้อยและมันจะเปิดขึ้นอีกครั้ง สำหรับการอ้างอิงในอนาคตเรามีSandboxให้บริการเพื่อให้ผู้เขียนสามารถรับข้อเสนอแนะเกี่ยวกับความท้าทายก่อนโพสต์ลงในเว็บไซต์หลัก
AdmBorkBork

3
คุณช่วยให้เราสมการที่ผลลัพท์เป็น True?
xnor

1
@xnor สำหรับครึ่งชีวิตλและมวลm, m-m*(1/2)**(604800000/λ) > 9000(หรือตั้งแต่กรณีขอบสามารถไปทางใดทางหนึ่ง)
Mego

คำตอบ:


9

Python 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
Daniel

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 ไบต์

ฉันต้องยอมรับว่าฉันไม่เข้าใจโปรแกรมนี้ ... ส่วนใหญ่เป็นเพียงการแปลรหัส Python ของ TheNumberOne

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

โปรดทราบว่านี่เป็นโปรแกรมแรกที่ฉันเขียนสำหรับ PPCG ซึ่งใช้@ฟังก์ชั่นเอาต์พุตที่ชัดเจน

ลองออนไลน์!


4
ชื่อผู้ใช้ที่เหมาะสม ...
ojdo

@ojdo Haha ใช่: 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*  ½สู่พลังของ

6048E5÷⊢ 604800000 หารด้วยอาร์กิวเมนต์ที่ถูกต้อง (ครึ่งชีวิต)

ไม่จำเป็นต้องใส่วงเล็บเนื่องจาก APL เป็นขวาไปซ้ายอย่างเคร่งครัด

ลองใช้ออนไลน์!


1
19 ไบต์ นั่นคือ dyabolical
C. Tewalt

@matrixugly ในกรณีนี้ฉันจะถามว่าทำไมภาษาอื่นมีความอ่อนนุ่มมาก ฉันมีตัวละครหนึ่งตัวต่อ "สิ่ง" ในสัญกรณ์ที่ค่อนข้างปกติ (เช่นคณิตศาสตร์)
อดัม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.